Skip to content

N+7

n_plus_7 · word · validated

Replace every noun with the seventh noun following it in a chosen dictionary.

Provenance

  • Source: Jean Lescure, in Oulipo, La Littérature potentielle (1973)
  • Attribution: primary — a named author, work and year this catalogue stands behind
  • Checkability: source — decidable against the source text it was made from
  • Attested: author-stated — the originator set this rule down

Details

  • Kind: both
  • Languages: en, de, fr
  • Requires: tokens, lexicon.nouns
  • Deterministic: yes
  • Also known as: N+7
  • In other languages: N+7 (de), S+7 (fr)

Notes

s_plus_7 is the same displacement under a second name, and runs this row's implementation rather than one of its own. See that row's note for what the two share and why both are catalogued.

Prompt hint

Replace each noun with the seventh noun after it in the dictionary, keeping everything else.

Parameters

Name Type Default Description
ambiguous_nouns string free What an unchanged word that the dictionary lists means: leave the position unscored (undecidable), accept it (free), or fail it (strict).
dictionary — None The ordered word list to displace within. Defaults to the pack's nouns. Order is the contract: N+7 walks the seventh entry after a word, so a supplied list's order is the caller's editorial choice.
offset integer 7 How many nouns to count forward.
source string — The text this one was made from.

Examples

displaced-by-seven

en — this text satisfies the procedure.

the catacomb satchmo on the tablespoonful

Parameters: source='the cat sat on the table'

Source: constructed example; the procedure is Jean Lescure's (1961). Computed by calling n_plus_7's displace against the Open English WordNet 2024 noun list (task 3's migration off Princeton WordNet 3.1 shifted this displacement: "cat" -> "catacomb", not "catafalque").

a-non-noun-changed

en — this text does not satisfy the procedure.

a cat sat on the table

Parameters: source='the cat sat on the table'

Source: constructed counterexample

german-displaced-by-seven

de — this text satisfies the procedure.

Die Katzenbesitzerin schläft auf dem Tischbürste.

Parameters: source='Die Katze schläft auf dem Tisch.'

Source: constructed example; computed by calling n_plus_7.check directly. Katze (noun_index 79197) and Tisch (noun_index 157569) are each displaced 7 entries forward in nouns() to Katzenbesitzerin and Tischbürste — verified against the lexicon and the procedure, not hand-written.

german-non-noun-changed

de — this text does not satisfy the procedure.

Eine Katze schläft auf dem Tisch.

Parameters: source='Die Katze schläft auf dem Tisch.'

Source: constructed counterexample; computed by calling n_plus_7.check directly. "Die" is changed to "Eine", a non-noun substitution the checker flags.

francais-deplace-de-sept

fr — this text satisfies the procedure.

le chatons dort

Parameters: source='le chat dort'

Source: constructed example; produced by apply("n_plus_7", "le chat dort", lang="fr") rather than hand-written. chat (noun_index 7980) is displaced seven entries forward in nouns() to chatons; le and dort are not in the noun list and stay as they are.

francais-non-substantif-change

fr — this text does not satisfy the procedure.

un chatons dort

Parameters: source='le chat dort'

Source: constructed counterexample; the displacement above with le changed to un, a non-noun substitution the checker flags.

elided-proclitic-displaced-by-the-default-offset

fr — this text satisfies the procedure.

l'amidon

Parameters: source="l'ami"

Source: constructed example; produced by apply("n_plus_7", "l'ami", lang="fr"). ami (noun_index 1291) is displaced seven entries forward in nouns() to amidon; the l' proclitic is not a noun and stays as it is.