Inference

31 terms described. A term is a word of the business with its definition, its aliases and the words it relates to.

TermaliasesFirst lineLinks
Accompanying wordcompanion word, accompanying wordsA word shown on a keyword page because it is named in the same paragraphs as the expression: an entity of the dictionary or another keyword page, counted once per paragraph the two share, the way the co-occurrence neighbourhood counts its neighbours. The page shows the twelve most frequent, each sized from one to five by the rank of its count among them and followed by that count in plain text, so that size is never the only cue. An accompanying word is a lead, not a relation: nothing on the page asserts that the two belong together.
Aliasother name, alternative nameAnother name of an entity, declared under aliases in the frontmatter of its note. An alias enters the dictionary with the title and is recognised the same way, compared without regard to case, accents or the plural; it weighs 4 in the search index where the title weighs 5. An alias that another entity carries as its title or alias makes the two homonyms.
Candidate expressioncandidate term, term candidate, recurring expressionAn expression of one to four words that the keyword discovery kept because it recurs without a note: at least three occurrences in two distinct files, neither starting nor ending with a stopword, not made only of digits, not shorter than three characters, absent from the dictionary and from the rejected terms of the lock. Each candidate is scored by its C-value times its inverse document frequency; from inference.candidate_score, 4.0 by default, it yields W-TERM-UNDEFINED, and above the publication threshold it gets a keyword page. The candidates are listed under candidates.terms of the model with their score, counts and contexts.
Co-occurrencecooccurrence, shared paragraphTwo entities named in the same paragraph, counted once per paragraph however many times each is mentioned there. Every pair gives one undirected related link at the cooccurrence confidence of 0.40, emitted once from the lower identifier, with the number of shared paragraphs as the count of its single provenance; the relation typing may refine related from the type pair. Co-occurrence is accumulated per node in a bounded neighbourhood of fifty neighbours, never as a full matrix, and feeds the accompanying words of a keyword page.
Comparison formnormalised form, normalized formThe shape in which two texts are compared: lower-cased, accents stripped, apostrophes unified, each word singularised by the suffix rules of the language pack. "Keyword Page", "keyword pages" and "keyword page" have one comparison form and are one term. Titles and aliases enter the dictionary in this form, stopwords are compared in it, a candidate expression is grouped by it, the search index stores every word with it, and the twin resources comparison reads texts in it. Hyphens and apostrophes stay part of a word.
Confidenceconfidence score, scoreA value between 0 and 1 that expresses how reliable the method that produced a link is. A written link scores 1.00, a frontmatter reference 0.90, a mention in a mapped section 0.70, an occurrence 0.60 and more, a co-occurrence 0.40. When several methods agree, their confidences combine. The first version stores the score, uses it to order mentions, and does not show it.
Contractinterface contract, API contractThe machine-readable description of an API that a note declares in its contract attribute, as a URL or a path: an OpenAPI 3 document or a WSDL. The build imports it through a plugin, produces one operation per operation it declares, caches it by the fingerprint of its bytes and records its title, version and import date in the model. The page of the API shows the contract without copying it into the note: its operations as a plain list, a link to download the original, and a viewer that loads the signatures and schemas on demand.
Dictionaryrecognition dictionaryThe list of the words the occurrence scan looks for: the titles and aliases of every entity of a locale, keyed by their comparison form, one dictionary per locale of the corpus. Glossary sources come first, so that their titles win when a form names several entities; a stopword never enters it, nor a form shorter than three characters unless inference.short_terms allows it; a form shared by several entities is flagged as a homonym. The dictionary is built once per build, after typing and contract import, and before the scan.
EntitynodeA node of the model: an instance of a type of the profile. An entity is nothing more than a keyword that owns a file of its name; a keyword page is what an entity becomes when nobody wrote that file.
Frontmatter referencefrontmatter ref, declared referenceA value of a reference-typed attribute of the frontmatter, reads, roles, rules, consumers, affects, broader among others, that names another note by its identifier, by its path relative to the source root, or by its exact title. The reference produces a link at confidence 0.90 whose relation the attribute declares, never overturned by inference. A value that matches nothing, or several notes by title, yields W-REF-UNRESOLVED; one that reaches a note of a type the relation does not allow yields E-META-REL.
Homonymhomonyms, shared formTwo entities whose title or alias share one comparison form: a term and a business object both called "Source", or two terms whose aliases meet. The tool keeps both, reports I-TERM-HOMONYM with the form and the identifiers, and links every occurrence of the form to each entity at half the confidence it would have with one target, glossary entities first. A ## Not to be confused with section in each note tells the reader which is which; this glossary carries three such pairs on purpose, source, link and index.
Inferenceinference block, inference chainThe part of the pipeline that turns occurrences into links, keyword pages and twin resources, and the inference: block of the configuration that tunes it: glossary_sources, stopwords, short_terms and type_prefixes for the dictionary; cross_source_links for links across sources; ngrams and candidate_score for the candidate expressions; keyword_pages for the publication threshold; neighbours for the bounded neighbourhood; duplicates for the reconciliation of twin resources. Inference reads the model and the profile and nothing else, so two builds infer the same links.
Keywordnoteless word, word without a noteA word or expression the discovery kept because it recurs in the corpus without a note defining it: a candidate expression above the publication threshold has a keyword page, whose badge reads "Keyword"; below it, the keyword stays searchable without a page. The to-do page lists the keywords with their counts, so that the glossary owner turns the frequent ones into terms.
Language packpack, locale packThe data that describes a language to the engine, never code: a folder holding pack.yaml (the name of the language, its apostrophes, its collation options, its plural suffix rules, validated by language-pack.schema.json) and stopwords.txt. The engine ships en and fr; a regional variant such as fr-CA uses the pack of its language until a plugin registers a more specific one; another language comes as a pack shipped by a plugin. Each source selects its pack through its BCP 47 locale, which decides its comparison form, its stopwords, its word segmentation and the collation of its index.
Linktyped link, model linkA typed relation between two entities, carrying a confidence and at least one provenance. A link is produced by a written markdown link, a frontmatter reference, a mention in a mapped section, an occurrence or a co-occurrence.
Linkwritten link, explicit linkA markdown link written by an author in a note, such as [publication threshold](../rules/publication-threshold.rule.md). It is the strongest evidence the tool knows: a written link produces a typed link at confidence 1.00, above anything inferred. On the entity page it is rendered as a plain underlined link to the page of its target, which tells it apart from a recognised word.
Mentioncitation, mentions panel entryOne place where another file cites an entity: the citing file, the line, the words around the citation and a link to the passage. A mention is either a link an author wrote, in the text or in the frontmatter, or a recognised word the scan found in a mapped section or in prose; the entity page keeps the two apart, a written link marked "cited", because the first is what someone asserted and the second what the tool inferred, and shows the mentions grouped by citing page as its related pages. The first twenty of an entity are in its page and the rest in its fragment, fragments/<id>.mentions.json, one file per entity and never a global index.
Modelcanonical model, model.jsonThe result of a build: every entity, every link with its provenance, every finding, the term candidates and the neighbourhoods, serialised to a single model.json file in canonical order. Two builds on the same sources produce the same file byte for byte. The site is rendered from it without reading the sources again.
Neighbourhooddisplayed neighbourhood, one-hop neighboursThe entities one link away from an entity, as the page shows them: six at most, each with its title, its type, the nature of the link and the confidence of the strongest link between the two. The order is type-driven: the profile declares, for each type, which neighbour types come first (operations on an API, accessed objects on a screen, what it applies to on a rule); every neighbour carries the rank of its type, unlisted types and keyword pages come last, confidence decides within a group, and the list is cut after this ordering. A type without a declaration lists its neighbours by decreasing confidence. The neighbourhood is computed at build and written to the model, never in the browser, and the page renders it twice from the same data: as a map, the entity at the centre and the neighbours on a ring in the order received, each named in plain text beside its node, a typed entity a circle holding the glyph of its type, a keyword page a dashed square at the end of a dashed edge, no label overlapping another; and as the list that is its textual equivalent, a separator marking each change of rank. When the model holds more neighbours than the map may show, the map gives way to a pointer to the mentions panel and the list stays. Not to be confused with the bounded neighbourhood of co-occurrence, which keeps the fifty best co-occurring entities per node and feeds the links.
Occurrencehit, matchOne place where a word of the dictionary appears in a file: the file, the line, the position, the words as written, the enclosing section and eighty characters of context. Occurrences are what the tool records first; everything else, links, keyword pages, the to-do page, derives from them. Code blocks, URLs, frontmatter and link targets never yield occurrences. An expression contained in a longer recognised expression is not counted twice ("keyword page" counts once, not also as "page"); two expressions that only partly overlap, such as "build log" and "log summary" in "the build log summary", are each counted.

20 inference of 31 — pagination by twenty. The Links column counts the related pages, which brings the most central inference of the journey to the top.