@polycode-projects/the-mechanical-code-talker 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -28
- package/ROADMAP.md +6 -6
- package/bin/tmct.mjs +56 -0
- package/corpus/README.md +77 -5
- package/corpus/conceptnet/README.md +54 -2
- package/corpus/conceptnet/quality-filter.mjs +95 -0
- package/corpus/conceptnet/slice.jsonl +0 -378
- package/corpus/seon/LICENSE-NOTICE +37 -0
- package/corpus/seon/README.md +121 -0
- package/corpus/seon/concepts.jsonl +238 -0
- package/corpus/seon/definitions.jsonl +288 -0
- package/corpus/tier2/aws.jsonl +39 -0
- package/corpus/tier2/generate.mjs +253 -0
- package/corpus/tier2/java.jsonl +31 -0
- package/corpus/tier2/manifest.json +48 -0
- package/corpus/tier2/python.jsonl +30 -0
- package/data/templates/grammar-rules.toml +18 -10
- package/data/templates/responses.jsonl +2 -0
- package/package.json +10 -2
- package/src/ask-vocab.mjs +19 -1
- package/src/ask.mjs +90 -6
- package/src/chat.mjs +647 -60
- package/src/codegraph.mjs +28 -5
- package/src/conformance.mjs +166 -0
- package/src/corpus/conceptnet.mjs +24 -6
- package/src/grammar/lexicon-core.json +8 -0
- package/src/memory/inspect.mjs +25 -0
- package/src/server.mjs +88 -7
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
LICENSE NOTICE — corpus/seon/
|
|
2
|
+
=============================
|
|
3
|
+
|
|
4
|
+
The files in this directory (concepts.jsonl, definitions.jsonl, README.md) are
|
|
5
|
+
ORIGINAL WORK authored by hand for the-mechanical-code-talker (tmct), and are
|
|
6
|
+
licensed under this repository's license, the Mozilla Public License Version 2.0
|
|
7
|
+
(MPL-2.0) — the same terms as the rest of the repository.
|
|
8
|
+
|
|
9
|
+
https://www.mozilla.org/MPL/2.0/
|
|
10
|
+
|
|
11
|
+
They are NOT derived from ConceptNet and are NOT under CC-BY-SA. Do not confuse
|
|
12
|
+
this directory with corpus/conceptnet/, whose slice.jsonl is a CC-BY-SA 4.0
|
|
13
|
+
excerpt of ConceptNet 5 (see corpus/conceptnet/LICENSE-NOTICE).
|
|
14
|
+
|
|
15
|
+
What this is
|
|
16
|
+
------------
|
|
17
|
+
|
|
18
|
+
corpus/seon is tmct's curated tier-1 software-engineering ontology: a hand-
|
|
19
|
+
authored, language-neutral set of concept definitions and relation facts covering
|
|
20
|
+
the vocabulary declared in src/grammar/lexicon-core.json. Every line was written
|
|
21
|
+
and checked by the project, not compiled from an external dataset.
|
|
22
|
+
|
|
23
|
+
On the name "seon"
|
|
24
|
+
------------------
|
|
25
|
+
|
|
26
|
+
The directory is named for SEON (the Software Evolution ONtologies, se-on.org),
|
|
27
|
+
the FAMIX-derived reference vocabulary tmct's code-graph prop tokens borrow term
|
|
28
|
+
IDEAS from (see ontology/tmct-core.ttl). This directory does NOT redistribute
|
|
29
|
+
SEON's published ontology files; it is tmct's own curated ontology, named in
|
|
30
|
+
homage to that reference vocabulary. No SEON content is copied here.
|
|
31
|
+
|
|
32
|
+
Reuse
|
|
33
|
+
-----
|
|
34
|
+
|
|
35
|
+
As MPL-2.0 material, these files may be used, modified, and redistributed under
|
|
36
|
+
the MPL-2.0 terms. Attribution to the-mechanical-code-talker / Polycode is
|
|
37
|
+
appreciated but governed by the license, not by CC-BY-SA share-alike.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# corpus/seon — tmct's curated tier-1 software-engineering ontology
|
|
2
|
+
|
|
3
|
+
A hand-authored, **language-neutral** ontology of the software-engineering concepts
|
|
4
|
+
tmct's grammar lexicon knows about. Its purpose, in the operator's words: *"the chat
|
|
5
|
+
knows about what it knows about."* Every lexicon concept gets
|
|
6
|
+
|
|
7
|
+
1. an **English definition** — what it IS (`definitions.jsonl`), and
|
|
8
|
+
2. **relation facts** — how it RELATES to other concepts (`concepts.jsonl`),
|
|
9
|
+
|
|
10
|
+
so tmct can explain its own vocabulary, and so a Java `class`, a C# `class`, and a
|
|
11
|
+
Python `class` all resolve to the **same** language-neutral concept.
|
|
12
|
+
|
|
13
|
+
This is **tier-1, curated** data: every line is hand-checked and tech-correct — no
|
|
14
|
+
ConceptNet-style noise. It is repo-owned (**MPL-2.0**, see `LICENSE-NOTICE`), *not*
|
|
15
|
+
CC-BY-SA like the ConceptNet slice.
|
|
16
|
+
|
|
17
|
+
## Files
|
|
18
|
+
|
|
19
|
+
| file | shape | count |
|
|
20
|
+
|------|-------|-------|
|
|
21
|
+
| `concepts.jsonl` | relation facts, byte-identical shape to `corpus/conceptnet/slice.jsonl` | 238 facts |
|
|
22
|
+
| `definitions.jsonl` | `{ "term", "definition", "sense": "software" }`, one per line | 288 definitions |
|
|
23
|
+
| `LICENSE-NOTICE` | MPL-2.0 provenance for this directory | — |
|
|
24
|
+
|
|
25
|
+
### `concepts.jsonl` — same shape as the ConceptNet slice
|
|
26
|
+
|
|
27
|
+
Each line is exactly `{ "start", "rel", "end", "weight" }` with `/c/en/<term>`
|
|
28
|
+
endpoints, so the existing `loadSlice` / `loadMap` / `toFacts` / `seedMemory`
|
|
29
|
+
(`src/corpus/conceptnet.mjs`) consume this file with **no code change** — pass it as
|
|
30
|
+
the `slicePath`.
|
|
31
|
+
|
|
32
|
+
```jsonc
|
|
33
|
+
{"start":"/c/en/class","rel":"/r/IsA","end":"/c/en/type","weight":2}
|
|
34
|
+
{"start":"/c/en/method","rel":"/r/PartOf","end":"/c/en/class","weight":2}
|
|
35
|
+
{"start":"/c/en/cache","rel":"/r/UsedFor","end":"/c/en/performance","weight":2}
|
|
36
|
+
{"start":"/c/en/java_class","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Only relations already mapped in `src/corpus/conceptnet-map.toml` are used, so there
|
|
40
|
+
is **no slice/map drift** (verified: the file loads through `toFacts` cleanly). The
|
|
41
|
+
emitted-predicate breakdown:
|
|
42
|
+
|
|
43
|
+
| ConceptNet rel | → predicate | facts | meaning |
|
|
44
|
+
|----------------|-------------|-------|---------|
|
|
45
|
+
| `/r/IsA` | `rdfs:subClassOf` | 109 | taxonomy (`class` ⊑ `type`) — the load-bearing layer the syllogise closure walks |
|
|
46
|
+
| `/r/UsedFor` | `mgx:usedFor` | 48 | purpose (`cache` usedFor `performance`) |
|
|
47
|
+
| `/r/PartOf` | `mgx:partOf` | 35 | meronymy (`method` partOf `class`) |
|
|
48
|
+
| `/r/HasA` | `mgx:hasA` | 11 | holonymy (`class` hasA `method`) |
|
|
49
|
+
| `/r/CapableOf` | `mgx:capableOf` | 8 | behaviour (`cache` capableOf `store data`) |
|
|
50
|
+
| `/r/CreatedBy` | `mgx:createdBy` | 4 | provenance (`commit` createdBy `developer`) |
|
|
51
|
+
| `/r/HasProperty` | `mgx:hasProperty` | 4 | attributes (`cache` hasProperty `fast`) |
|
|
52
|
+
| `/r/RelatedTo` | *(none — non-emitting)* | 19 | weak peer hints (`interface` relatedTo `class`); kept per the map's own note as a future fuzzy-match signal — they load without drift but emit no fact today |
|
|
53
|
+
|
|
54
|
+
`normFactTerm` lowercases and de-underscores endpoints, so `/c/en/java_class` stores
|
|
55
|
+
as the term `java class`.
|
|
56
|
+
|
|
57
|
+
### `definitions.jsonl` — term → English gloss
|
|
58
|
+
|
|
59
|
+
One object per line, tech-domain sense:
|
|
60
|
+
|
|
61
|
+
```jsonc
|
|
62
|
+
{"term":"class","definition":"A class is a template that defines the structure and behaviour of objects; in code it groups methods and attributes under one type.","sense":"software"}
|
|
63
|
+
{"term":"cache","definition":"A cache is a fast, temporary store that keeps copies of recently used data so future requests are served more quickly.","sense":"software"}
|
|
64
|
+
{"term":"deprecated","definition":"Deprecated means an entity is marked obsolete and discouraged, kept for now but scheduled for removal.","sense":"software"}
|
|
65
|
+
{"term":"import","definition":"To import is to bring the definitions of another module into the current one so its code can be used.","sense":"software"}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Covers **every** lexicon term: all 173 nouns, 63 relation verbs (so the chat can
|
|
69
|
+
explain what a relation *means*), and 33 attribute adjectives — plus the
|
|
70
|
+
language-neutral keywords and tmct self-knowledge terms below.
|
|
71
|
+
|
|
72
|
+
## Language-neutral layer
|
|
73
|
+
|
|
74
|
+
Language-specific spellings are linked to the shared concept with `/r/IsA`
|
|
75
|
+
(`rdfs:subClassOf`) edges, so a query about an `object`, `class`, or `function`
|
|
76
|
+
reasons **across languages** through the taxonomy the syllogise closure already walks:
|
|
77
|
+
|
|
78
|
+
- **Same concept, many languages:** `java class`, `python class`, `csharp class`,
|
|
79
|
+
`cpp class`, `ruby class` are each `subClassOf` `class`; likewise the interface,
|
|
80
|
+
method, module and package families.
|
|
81
|
+
- **Keyword → concept:** `def`, `func`, `fn`, `sub` are each `subClassOf` `function`;
|
|
82
|
+
`struct` and `record` are `subClassOf` `class`; `trait` is `subClassOf` `interface`;
|
|
83
|
+
`namespace` is `subClassOf` `module`.
|
|
84
|
+
- Because the specific terms share a parent, `syllogise` connects e.g.
|
|
85
|
+
`java class` → `class` → `type` with no per-language rule.
|
|
86
|
+
|
|
87
|
+
## Orientation (tmct self-knowledge)
|
|
88
|
+
|
|
89
|
+
A handful of facts and definitions give meta-questions real ground to stand on:
|
|
90
|
+
`tmct isa chatbot`; `tmct usedFor answering questions about a code graph`;
|
|
91
|
+
`tmct usedFor explaining its own vocabulary`; `module relatedTo source file`;
|
|
92
|
+
`memory graph usedFor storing facts`; `seon isa ontology` — plus definitions for
|
|
93
|
+
`tmct`, `code graph`, `memory graph`, and `seon`.
|
|
94
|
+
|
|
95
|
+
## How the coordinator should seed this (Wave-2 chat.mjs work — NOT wired here)
|
|
96
|
+
|
|
97
|
+
This directory is **data only**; wiring it into seeding is the coordinator's
|
|
98
|
+
`chat.mjs` / `init.mjs` change. Recommended:
|
|
99
|
+
|
|
100
|
+
1. **Seed `corpus/seon` FIRST, ahead of the ConceptNet slice**, and **exempt it from
|
|
101
|
+
the 500-fact cap** (`SEED_LIMIT`). It is small (238 lines → 219 emitted facts) and
|
|
102
|
+
fully curated, so the whole tier belongs in memory before any capped ConceptNet
|
|
103
|
+
fill. Concretely: call `seedMemory(repo, { slicePath: SEON_CONCEPTS_FILE })` with
|
|
104
|
+
**no `limit`**, then run the existing capped ConceptNet seed after it. The
|
|
105
|
+
idempotent, content-hashed `appendFact` ids mean a term appearing in both tiers
|
|
106
|
+
converges to one fact.
|
|
107
|
+
2. Keep the existing `SEED_PREFER` order
|
|
108
|
+
(`rdfs:subClassOf`, `rdf:type`, `mgx:usedFor`, `mgx:partOf`, `mgx:capableOf`) — it
|
|
109
|
+
already front-loads exactly this file's dominant predicates, though with no cap on
|
|
110
|
+
the seon tier the ordering only affects the ConceptNet tail.
|
|
111
|
+
3. **Provenance caveat:** `toFacts` currently hard-codes the provenance string
|
|
112
|
+
`corpus:conceptnet <rel>`. If the coordinator wants seon facts tagged as their own
|
|
113
|
+
source (`corpus:seon`), that is a one-line parametrisation of `toFacts` /
|
|
114
|
+
`seedMemory` — out of scope for this data-only directory.
|
|
115
|
+
|
|
116
|
+
## Regenerating / extending
|
|
117
|
+
|
|
118
|
+
Add a `[term, definition]` pair (definitions) or a `[start, rel, end]` row (facts) —
|
|
119
|
+
keep every line curated and tech-correct, and only use relations that exist in
|
|
120
|
+
`conceptnet-map.toml` (else `toFacts` throws a drift error). Endpoints are bare terms;
|
|
121
|
+
multiword terms use `_` (they de-underscore on load).
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
{"start":"/c/en/class","rel":"/r/IsA","end":"/c/en/type","weight":2}
|
|
2
|
+
{"start":"/c/en/interface","rel":"/r/IsA","end":"/c/en/type","weight":2}
|
|
3
|
+
{"start":"/c/en/structure","rel":"/r/IsA","end":"/c/en/type","weight":2}
|
|
4
|
+
{"start":"/c/en/struct","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
5
|
+
{"start":"/c/en/record","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
6
|
+
{"start":"/c/en/enum","rel":"/r/IsA","end":"/c/en/type","weight":2}
|
|
7
|
+
{"start":"/c/en/trait","rel":"/r/IsA","end":"/c/en/interface","weight":2}
|
|
8
|
+
{"start":"/c/en/api","rel":"/r/IsA","end":"/c/en/interface","weight":2}
|
|
9
|
+
{"start":"/c/en/object","rel":"/r/IsA","end":"/c/en/value","weight":2}
|
|
10
|
+
{"start":"/c/en/instance","rel":"/r/IsA","end":"/c/en/object","weight":2}
|
|
11
|
+
{"start":"/c/en/function","rel":"/r/IsA","end":"/c/en/routine","weight":2}
|
|
12
|
+
{"start":"/c/en/method","rel":"/r/IsA","end":"/c/en/routine","weight":2}
|
|
13
|
+
{"start":"/c/en/procedure","rel":"/r/IsA","end":"/c/en/routine","weight":2}
|
|
14
|
+
{"start":"/c/en/operation","rel":"/r/IsA","end":"/c/en/routine","weight":2}
|
|
15
|
+
{"start":"/c/en/handler","rel":"/r/IsA","end":"/c/en/routine","weight":2}
|
|
16
|
+
{"start":"/c/en/helper","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
17
|
+
{"start":"/c/en/callback","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
18
|
+
{"start":"/c/en/generator","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
19
|
+
{"start":"/c/en/lambda","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
20
|
+
{"start":"/c/en/closure","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
21
|
+
{"start":"/c/en/coroutine","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
22
|
+
{"start":"/c/en/constructor","rel":"/r/IsA","end":"/c/en/method","weight":2}
|
|
23
|
+
{"start":"/c/en/destructor","rel":"/r/IsA","end":"/c/en/method","weight":2}
|
|
24
|
+
{"start":"/c/en/getter","rel":"/r/IsA","end":"/c/en/method","weight":2}
|
|
25
|
+
{"start":"/c/en/setter","rel":"/r/IsA","end":"/c/en/method","weight":2}
|
|
26
|
+
{"start":"/c/en/controller","rel":"/r/IsA","end":"/c/en/component","weight":2}
|
|
27
|
+
{"start":"/c/en/model","rel":"/r/IsA","end":"/c/en/component","weight":2}
|
|
28
|
+
{"start":"/c/en/view","rel":"/r/IsA","end":"/c/en/component","weight":2}
|
|
29
|
+
{"start":"/c/en/string","rel":"/r/IsA","end":"/c/en/value","weight":2}
|
|
30
|
+
{"start":"/c/en/number","rel":"/r/IsA","end":"/c/en/value","weight":2}
|
|
31
|
+
{"start":"/c/en/list","rel":"/r/IsA","end":"/c/en/value","weight":2}
|
|
32
|
+
{"start":"/c/en/array","rel":"/r/IsA","end":"/c/en/list","weight":2}
|
|
33
|
+
{"start":"/c/en/constant","rel":"/r/IsA","end":"/c/en/variable","weight":2}
|
|
34
|
+
{"start":"/c/en/attribute","rel":"/r/IsA","end":"/c/en/variable","weight":2}
|
|
35
|
+
{"start":"/c/en/field","rel":"/r/IsA","end":"/c/en/attribute","weight":2}
|
|
36
|
+
{"start":"/c/en/property","rel":"/r/IsA","end":"/c/en/attribute","weight":2}
|
|
37
|
+
{"start":"/c/en/parameter","rel":"/r/IsA","end":"/c/en/variable","weight":2}
|
|
38
|
+
{"start":"/c/en/expression","rel":"/r/IsA","end":"/c/en/statement","weight":2}
|
|
39
|
+
{"start":"/c/en/loop","rel":"/r/IsA","end":"/c/en/statement","weight":2}
|
|
40
|
+
{"start":"/c/en/module","rel":"/r/IsA","end":"/c/en/file","weight":2}
|
|
41
|
+
{"start":"/c/en/folder","rel":"/r/IsA","end":"/c/en/directory","weight":2}
|
|
42
|
+
{"start":"/c/en/namespace","rel":"/r/IsA","end":"/c/en/module","weight":2}
|
|
43
|
+
{"start":"/c/en/header","rel":"/r/IsA","end":"/c/en/file","weight":2}
|
|
44
|
+
{"start":"/c/en/docstring","rel":"/r/IsA","end":"/c/en/comment","weight":2}
|
|
45
|
+
{"start":"/c/en/library","rel":"/r/IsA","end":"/c/en/package","weight":2}
|
|
46
|
+
{"start":"/c/en/framework","rel":"/r/IsA","end":"/c/en/library","weight":2}
|
|
47
|
+
{"start":"/c/en/component","rel":"/r/IsA","end":"/c/en/module","weight":2}
|
|
48
|
+
{"start":"/c/en/script","rel":"/r/IsA","end":"/c/en/file","weight":2}
|
|
49
|
+
{"start":"/c/en/compiler","rel":"/r/IsA","end":"/c/en/tool","weight":2}
|
|
50
|
+
{"start":"/c/en/linter","rel":"/r/IsA","end":"/c/en/tool","weight":2}
|
|
51
|
+
{"start":"/c/en/formatter","rel":"/r/IsA","end":"/c/en/tool","weight":2}
|
|
52
|
+
{"start":"/c/en/parser","rel":"/r/IsA","end":"/c/en/tool","weight":2}
|
|
53
|
+
{"start":"/c/en/plugin","rel":"/r/IsA","end":"/c/en/component","weight":2}
|
|
54
|
+
{"start":"/c/en/commit","rel":"/r/IsA","end":"/c/en/change","weight":2}
|
|
55
|
+
{"start":"/c/en/refactor","rel":"/r/IsA","end":"/c/en/change","weight":2}
|
|
56
|
+
{"start":"/c/en/migration","rel":"/r/IsA","end":"/c/en/change","weight":2}
|
|
57
|
+
{"start":"/c/en/merge","rel":"/r/IsA","end":"/c/en/operation","weight":2}
|
|
58
|
+
{"start":"/c/en/patch","rel":"/r/IsA","end":"/c/en/change","weight":2}
|
|
59
|
+
{"start":"/c/en/bug","rel":"/r/IsA","end":"/c/en/defect","weight":2}
|
|
60
|
+
{"start":"/c/en/defect","rel":"/r/IsA","end":"/c/en/issue","weight":2}
|
|
61
|
+
{"start":"/c/en/ticket","rel":"/r/IsA","end":"/c/en/issue","weight":2}
|
|
62
|
+
{"start":"/c/en/regression","rel":"/r/IsA","end":"/c/en/bug","weight":2}
|
|
63
|
+
{"start":"/c/en/exception","rel":"/r/IsA","end":"/c/en/error","weight":2}
|
|
64
|
+
{"start":"/c/en/warning","rel":"/r/IsA","end":"/c/en/message","weight":2}
|
|
65
|
+
{"start":"/c/en/feature","rel":"/r/IsA","end":"/c/en/requirement","weight":2}
|
|
66
|
+
{"start":"/c/en/benchmark","rel":"/r/IsA","end":"/c/en/test","weight":2}
|
|
67
|
+
{"start":"/c/en/assertion","rel":"/r/IsA","end":"/c/en/statement","weight":2}
|
|
68
|
+
{"start":"/c/en/thread","rel":"/r/IsA","end":"/c/en/process","weight":2}
|
|
69
|
+
{"start":"/c/en/worker","rel":"/r/IsA","end":"/c/en/process","weight":2}
|
|
70
|
+
{"start":"/c/en/job","rel":"/r/IsA","end":"/c/en/task","weight":2}
|
|
71
|
+
{"start":"/c/en/triple","rel":"/r/IsA","end":"/c/en/fact","weight":2}
|
|
72
|
+
{"start":"/c/en/fact","rel":"/r/IsA","end":"/c/en/statement","weight":2}
|
|
73
|
+
{"start":"/c/en/question","rel":"/r/IsA","end":"/c/en/utterance","weight":2}
|
|
74
|
+
{"start":"/c/en/answer","rel":"/r/IsA","end":"/c/en/response","weight":2}
|
|
75
|
+
{"start":"/c/en/response","rel":"/r/IsA","end":"/c/en/utterance","weight":2}
|
|
76
|
+
{"start":"/c/en/sentence","rel":"/r/IsA","end":"/c/en/utterance","weight":2}
|
|
77
|
+
{"start":"/c/en/engineer","rel":"/r/IsA","end":"/c/en/developer","weight":2}
|
|
78
|
+
{"start":"/c/en/maintainer","rel":"/r/IsA","end":"/c/en/developer","weight":2}
|
|
79
|
+
{"start":"/c/en/author","rel":"/r/IsA","end":"/c/en/developer","weight":2}
|
|
80
|
+
{"start":"/c/en/reviewer","rel":"/r/IsA","end":"/c/en/developer","weight":2}
|
|
81
|
+
{"start":"/c/en/visitor","rel":"/r/IsA","end":"/c/en/user","weight":2}
|
|
82
|
+
{"start":"/c/en/setting","rel":"/r/IsA","end":"/c/en/configuration","weight":2}
|
|
83
|
+
{"start":"/c/en/option","rel":"/r/IsA","end":"/c/en/setting","weight":2}
|
|
84
|
+
{"start":"/c/en/flag","rel":"/r/IsA","end":"/c/en/option","weight":2}
|
|
85
|
+
{"start":"/c/en/argument","rel":"/r/IsA","end":"/c/en/value","weight":2}
|
|
86
|
+
{"start":"/c/en/sprint","rel":"/r/IsA","end":"/c/en/phase","weight":2}
|
|
87
|
+
{"start":"/c/en/specification","rel":"/r/IsA","end":"/c/en/document","weight":2}
|
|
88
|
+
{"start":"/c/en/endpoint","rel":"/r/IsA","end":"/c/en/route","weight":2}
|
|
89
|
+
{"start":"/c/en/def","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
90
|
+
{"start":"/c/en/func","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
91
|
+
{"start":"/c/en/fn","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
92
|
+
{"start":"/c/en/sub","rel":"/r/IsA","end":"/c/en/function","weight":2}
|
|
93
|
+
{"start":"/c/en/java_class","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
94
|
+
{"start":"/c/en/python_class","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
95
|
+
{"start":"/c/en/csharp_class","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
96
|
+
{"start":"/c/en/cpp_class","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
97
|
+
{"start":"/c/en/ruby_class","rel":"/r/IsA","end":"/c/en/class","weight":2}
|
|
98
|
+
{"start":"/c/en/java_interface","rel":"/r/IsA","end":"/c/en/interface","weight":2}
|
|
99
|
+
{"start":"/c/en/csharp_interface","rel":"/r/IsA","end":"/c/en/interface","weight":2}
|
|
100
|
+
{"start":"/c/en/go_interface","rel":"/r/IsA","end":"/c/en/interface","weight":2}
|
|
101
|
+
{"start":"/c/en/python_method","rel":"/r/IsA","end":"/c/en/method","weight":2}
|
|
102
|
+
{"start":"/c/en/java_method","rel":"/r/IsA","end":"/c/en/method","weight":2}
|
|
103
|
+
{"start":"/c/en/python_module","rel":"/r/IsA","end":"/c/en/module","weight":2}
|
|
104
|
+
{"start":"/c/en/java_package","rel":"/r/IsA","end":"/c/en/package","weight":2}
|
|
105
|
+
{"start":"/c/en/go_package","rel":"/r/IsA","end":"/c/en/package","weight":2}
|
|
106
|
+
{"start":"/c/en/python_package","rel":"/r/IsA","end":"/c/en/package","weight":2}
|
|
107
|
+
{"start":"/c/en/npm_package","rel":"/r/IsA","end":"/c/en/package","weight":2}
|
|
108
|
+
{"start":"/c/en/method","rel":"/r/PartOf","end":"/c/en/class","weight":2}
|
|
109
|
+
{"start":"/c/en/attribute","rel":"/r/PartOf","end":"/c/en/class","weight":2}
|
|
110
|
+
{"start":"/c/en/field","rel":"/r/PartOf","end":"/c/en/structure","weight":2}
|
|
111
|
+
{"start":"/c/en/class","rel":"/r/PartOf","end":"/c/en/module","weight":2}
|
|
112
|
+
{"start":"/c/en/function","rel":"/r/PartOf","end":"/c/en/module","weight":2}
|
|
113
|
+
{"start":"/c/en/variable","rel":"/r/PartOf","end":"/c/en/module","weight":2}
|
|
114
|
+
{"start":"/c/en/constant","rel":"/r/PartOf","end":"/c/en/module","weight":2}
|
|
115
|
+
{"start":"/c/en/statement","rel":"/r/PartOf","end":"/c/en/function","weight":2}
|
|
116
|
+
{"start":"/c/en/expression","rel":"/r/PartOf","end":"/c/en/statement","weight":2}
|
|
117
|
+
{"start":"/c/en/parameter","rel":"/r/PartOf","end":"/c/en/function","weight":2}
|
|
118
|
+
{"start":"/c/en/line","rel":"/r/PartOf","end":"/c/en/file","weight":2}
|
|
119
|
+
{"start":"/c/en/comment","rel":"/r/PartOf","end":"/c/en/file","weight":2}
|
|
120
|
+
{"start":"/c/en/module","rel":"/r/PartOf","end":"/c/en/package","weight":2}
|
|
121
|
+
{"start":"/c/en/file","rel":"/r/PartOf","end":"/c/en/directory","weight":2}
|
|
122
|
+
{"start":"/c/en/endpoint","rel":"/r/PartOf","end":"/c/en/api","weight":2}
|
|
123
|
+
{"start":"/c/en/route","rel":"/r/PartOf","end":"/c/en/api","weight":2}
|
|
124
|
+
{"start":"/c/en/handler","rel":"/r/PartOf","end":"/c/en/controller","weight":2}
|
|
125
|
+
{"start":"/c/en/commit","rel":"/r/PartOf","end":"/c/en/branch","weight":2}
|
|
126
|
+
{"start":"/c/en/branch","rel":"/r/PartOf","end":"/c/en/repository","weight":2}
|
|
127
|
+
{"start":"/c/en/table","rel":"/r/PartOf","end":"/c/en/database","weight":2}
|
|
128
|
+
{"start":"/c/en/index","rel":"/r/PartOf","end":"/c/en/table","weight":2}
|
|
129
|
+
{"start":"/c/en/schema","rel":"/r/PartOf","end":"/c/en/database","weight":2}
|
|
130
|
+
{"start":"/c/en/test","rel":"/r/PartOf","end":"/c/en/suite","weight":2}
|
|
131
|
+
{"start":"/c/en/assertion","rel":"/r/PartOf","end":"/c/en/test","weight":2}
|
|
132
|
+
{"start":"/c/en/job","rel":"/r/PartOf","end":"/c/en/pipeline","weight":2}
|
|
133
|
+
{"start":"/c/en/thread","rel":"/r/PartOf","end":"/c/en/process","weight":2}
|
|
134
|
+
{"start":"/c/en/node","rel":"/r/PartOf","end":"/c/en/graph","weight":2}
|
|
135
|
+
{"start":"/c/en/edge","rel":"/r/PartOf","end":"/c/en/graph","weight":2}
|
|
136
|
+
{"start":"/c/en/fact","rel":"/r/PartOf","end":"/c/en/ontology","weight":2}
|
|
137
|
+
{"start":"/c/en/token","rel":"/r/PartOf","end":"/c/en/sentence","weight":2}
|
|
138
|
+
{"start":"/c/en/utterance","rel":"/r/PartOf","end":"/c/en/session","weight":2}
|
|
139
|
+
{"start":"/c/en/phase","rel":"/r/PartOf","end":"/c/en/roadmap","weight":2}
|
|
140
|
+
{"start":"/c/en/requirement","rel":"/r/PartOf","end":"/c/en/specification","weight":2}
|
|
141
|
+
{"start":"/c/en/developer","rel":"/r/PartOf","end":"/c/en/team","weight":2}
|
|
142
|
+
{"start":"/c/en/cache","rel":"/r/UsedFor","end":"/c/en/performance","weight":2}
|
|
143
|
+
{"start":"/c/en/index","rel":"/r/UsedFor","end":"/c/en/performance","weight":2}
|
|
144
|
+
{"start":"/c/en/queue","rel":"/r/UsedFor","end":"/c/en/buffering","weight":2}
|
|
145
|
+
{"start":"/c/en/test","rel":"/r/UsedFor","end":"/c/en/verification","weight":2}
|
|
146
|
+
{"start":"/c/en/test","rel":"/r/UsedFor","end":"/c/en/finding_bugs","weight":2}
|
|
147
|
+
{"start":"/c/en/mock","rel":"/r/UsedFor","end":"/c/en/testing","weight":2}
|
|
148
|
+
{"start":"/c/en/stub","rel":"/r/UsedFor","end":"/c/en/testing","weight":2}
|
|
149
|
+
{"start":"/c/en/fixture","rel":"/r/UsedFor","end":"/c/en/testing","weight":2}
|
|
150
|
+
{"start":"/c/en/snapshot","rel":"/r/UsedFor","end":"/c/en/testing","weight":2}
|
|
151
|
+
{"start":"/c/en/benchmark","rel":"/r/UsedFor","end":"/c/en/measuring_performance","weight":2}
|
|
152
|
+
{"start":"/c/en/coverage","rel":"/r/UsedFor","end":"/c/en/measuring_tests","weight":2}
|
|
153
|
+
{"start":"/c/en/log","rel":"/r/UsedFor","end":"/c/en/debugging","weight":2}
|
|
154
|
+
{"start":"/c/en/metric","rel":"/r/UsedFor","end":"/c/en/monitoring","weight":2}
|
|
155
|
+
{"start":"/c/en/linter","rel":"/r/UsedFor","end":"/c/en/checking_code","weight":2}
|
|
156
|
+
{"start":"/c/en/formatter","rel":"/r/UsedFor","end":"/c/en/formatting_code","weight":2}
|
|
157
|
+
{"start":"/c/en/compiler","rel":"/r/UsedFor","end":"/c/en/compiling_code","weight":2}
|
|
158
|
+
{"start":"/c/en/parser","rel":"/r/UsedFor","end":"/c/en/parsing","weight":2}
|
|
159
|
+
{"start":"/c/en/database","rel":"/r/UsedFor","end":"/c/en/storing_data","weight":2}
|
|
160
|
+
{"start":"/c/en/query","rel":"/r/UsedFor","end":"/c/en/retrieving_data","weight":2}
|
|
161
|
+
{"start":"/c/en/api","rel":"/r/UsedFor","end":"/c/en/communication","weight":2}
|
|
162
|
+
{"start":"/c/en/protocol","rel":"/r/UsedFor","end":"/c/en/communication","weight":2}
|
|
163
|
+
{"start":"/c/en/endpoint","rel":"/r/UsedFor","end":"/c/en/serving_requests","weight":2}
|
|
164
|
+
{"start":"/c/en/server","rel":"/r/UsedFor","end":"/c/en/serving_requests","weight":2}
|
|
165
|
+
{"start":"/c/en/handler","rel":"/r/UsedFor","end":"/c/en/handling_requests","weight":2}
|
|
166
|
+
{"start":"/c/en/controller","rel":"/r/UsedFor","end":"/c/en/handling_requests","weight":2}
|
|
167
|
+
{"start":"/c/en/router","rel":"/r/UsedFor","end":"/c/en/routing_requests","weight":2}
|
|
168
|
+
{"start":"/c/en/worker","rel":"/r/UsedFor","end":"/c/en/processing_jobs","weight":2}
|
|
169
|
+
{"start":"/c/en/queue","rel":"/r/UsedFor","end":"/c/en/scheduling_jobs","weight":2}
|
|
170
|
+
{"start":"/c/en/pipeline","rel":"/r/UsedFor","end":"/c/en/automation","weight":2}
|
|
171
|
+
{"start":"/c/en/build","rel":"/r/UsedFor","end":"/c/en/producing_artifacts","weight":2}
|
|
172
|
+
{"start":"/c/en/deployment","rel":"/r/UsedFor","end":"/c/en/releasing_software","weight":2}
|
|
173
|
+
{"start":"/c/en/migration","rel":"/r/UsedFor","end":"/c/en/changing_schema","weight":2}
|
|
174
|
+
{"start":"/c/en/hook","rel":"/r/UsedFor","end":"/c/en/extension","weight":2}
|
|
175
|
+
{"start":"/c/en/plugin","rel":"/r/UsedFor","end":"/c/en/extension","weight":2}
|
|
176
|
+
{"start":"/c/en/template","rel":"/r/UsedFor","end":"/c/en/generating_output","weight":2}
|
|
177
|
+
{"start":"/c/en/interface","rel":"/r/UsedFor","end":"/c/en/abstraction","weight":2}
|
|
178
|
+
{"start":"/c/en/framework","rel":"/r/UsedFor","end":"/c/en/building_applications","weight":2}
|
|
179
|
+
{"start":"/c/en/library","rel":"/r/UsedFor","end":"/c/en/reusing_code","weight":2}
|
|
180
|
+
{"start":"/c/en/ontology","rel":"/r/UsedFor","end":"/c/en/representing_knowledge","weight":2}
|
|
181
|
+
{"start":"/c/en/grammar","rel":"/r/UsedFor","end":"/c/en/parsing","weight":2}
|
|
182
|
+
{"start":"/c/en/lexicon","rel":"/r/UsedFor","end":"/c/en/recognising_words","weight":2}
|
|
183
|
+
{"start":"/c/en/session","rel":"/r/UsedFor","end":"/c/en/holding_state","weight":2}
|
|
184
|
+
{"start":"/c/en/prototype","rel":"/r/UsedFor","end":"/c/en/validating_ideas","weight":2}
|
|
185
|
+
{"start":"/c/en/benchmark","rel":"/r/UsedFor","end":"/c/en/comparing_performance","weight":2}
|
|
186
|
+
{"start":"/c/en/class","rel":"/r/HasA","end":"/c/en/method","weight":2}
|
|
187
|
+
{"start":"/c/en/class","rel":"/r/HasA","end":"/c/en/attribute","weight":2}
|
|
188
|
+
{"start":"/c/en/module","rel":"/r/HasA","end":"/c/en/function","weight":2}
|
|
189
|
+
{"start":"/c/en/api","rel":"/r/HasA","end":"/c/en/endpoint","weight":2}
|
|
190
|
+
{"start":"/c/en/graph","rel":"/r/HasA","end":"/c/en/node","weight":2}
|
|
191
|
+
{"start":"/c/en/database","rel":"/r/HasA","end":"/c/en/table","weight":2}
|
|
192
|
+
{"start":"/c/en/suite","rel":"/r/HasA","end":"/c/en/test","weight":2}
|
|
193
|
+
{"start":"/c/en/package","rel":"/r/HasA","end":"/c/en/dependency","weight":2}
|
|
194
|
+
{"start":"/c/en/repository","rel":"/r/HasA","end":"/c/en/branch","weight":2}
|
|
195
|
+
{"start":"/c/en/cache","rel":"/r/CapableOf","end":"/c/en/store_data","weight":2}
|
|
196
|
+
{"start":"/c/en/parser","rel":"/r/CapableOf","end":"/c/en/read_input","weight":2}
|
|
197
|
+
{"start":"/c/en/server","rel":"/r/CapableOf","end":"/c/en/handle_requests","weight":2}
|
|
198
|
+
{"start":"/c/en/queue","rel":"/r/CapableOf","end":"/c/en/hold_items","weight":2}
|
|
199
|
+
{"start":"/c/en/function","rel":"/r/CapableOf","end":"/c/en/return_value","weight":2}
|
|
200
|
+
{"start":"/c/en/test","rel":"/r/CapableOf","end":"/c/en/detect_bugs","weight":2}
|
|
201
|
+
{"start":"/c/en/logger","rel":"/r/CapableOf","end":"/c/en/record_messages","weight":2}
|
|
202
|
+
{"start":"/c/en/compiler","rel":"/r/CapableOf","end":"/c/en/translate_code","weight":2}
|
|
203
|
+
{"start":"/c/en/commit","rel":"/r/CreatedBy","end":"/c/en/developer","weight":2}
|
|
204
|
+
{"start":"/c/en/artifact","rel":"/r/CreatedBy","end":"/c/en/build","weight":2}
|
|
205
|
+
{"start":"/c/en/release","rel":"/r/CreatedBy","end":"/c/en/maintainer","weight":2}
|
|
206
|
+
{"start":"/c/en/log","rel":"/r/CreatedBy","end":"/c/en/process","weight":2}
|
|
207
|
+
{"start":"/c/en/cache","rel":"/r/HasProperty","end":"/c/en/fast","weight":2}
|
|
208
|
+
{"start":"/c/en/cache","rel":"/r/HasProperty","end":"/c/en/stale","weight":2}
|
|
209
|
+
{"start":"/c/en/pure_function","rel":"/r/HasProperty","end":"/c/en/deterministic","weight":2}
|
|
210
|
+
{"start":"/c/en/legacy_code","rel":"/r/HasProperty","end":"/c/en/deprecated","weight":2}
|
|
211
|
+
{"start":"/c/en/interface","rel":"/r/RelatedTo","end":"/c/en/class","weight":2}
|
|
212
|
+
{"start":"/c/en/object","rel":"/r/RelatedTo","end":"/c/en/class","weight":2}
|
|
213
|
+
{"start":"/c/en/server","rel":"/r/RelatedTo","end":"/c/en/client","weight":2}
|
|
214
|
+
{"start":"/c/en/request","rel":"/r/RelatedTo","end":"/c/en/response","weight":2}
|
|
215
|
+
{"start":"/c/en/question","rel":"/r/RelatedTo","end":"/c/en/answer","weight":2}
|
|
216
|
+
{"start":"/c/en/mock","rel":"/r/RelatedTo","end":"/c/en/stub","weight":2}
|
|
217
|
+
{"start":"/c/en/error","rel":"/r/RelatedTo","end":"/c/en/bug","weight":2}
|
|
218
|
+
{"start":"/c/en/event","rel":"/r/RelatedTo","end":"/c/en/message","weight":2}
|
|
219
|
+
{"start":"/c/en/hook","rel":"/r/RelatedTo","end":"/c/en/callback","weight":2}
|
|
220
|
+
{"start":"/c/en/iterator","rel":"/r/RelatedTo","end":"/c/en/generator","weight":2}
|
|
221
|
+
{"start":"/c/en/promise","rel":"/r/RelatedTo","end":"/c/en/callback","weight":2}
|
|
222
|
+
{"start":"/c/en/tag","rel":"/r/RelatedTo","end":"/c/en/release","weight":2}
|
|
223
|
+
{"start":"/c/en/issue","rel":"/r/RelatedTo","end":"/c/en/ticket","weight":2}
|
|
224
|
+
{"start":"/c/en/smell","rel":"/r/RelatedTo","end":"/c/en/bug","weight":2}
|
|
225
|
+
{"start":"/c/en/codebase","rel":"/r/RelatedTo","end":"/c/en/repository","weight":2}
|
|
226
|
+
{"start":"/c/en/namespace","rel":"/r/RelatedTo","end":"/c/en/module","weight":2}
|
|
227
|
+
{"start":"/c/en/field","rel":"/r/RelatedTo","end":"/c/en/attribute","weight":2}
|
|
228
|
+
{"start":"/c/en/instance","rel":"/r/RelatedTo","end":"/c/en/object","weight":2}
|
|
229
|
+
{"start":"/c/en/tmct","rel":"/r/IsA","end":"/c/en/chatbot","weight":2}
|
|
230
|
+
{"start":"/c/en/tmct","rel":"/r/UsedFor","end":"/c/en/answering_questions_about_a_code_graph","weight":2}
|
|
231
|
+
{"start":"/c/en/tmct","rel":"/r/UsedFor","end":"/c/en/explaining_its_own_vocabulary","weight":2}
|
|
232
|
+
{"start":"/c/en/code_graph","rel":"/r/UsedFor","end":"/c/en/answering_questions_about_a_repository","weight":2}
|
|
233
|
+
{"start":"/c/en/code_graph","rel":"/r/HasA","end":"/c/en/module","weight":2}
|
|
234
|
+
{"start":"/c/en/module","rel":"/r/RelatedTo","end":"/c/en/source_file","weight":2}
|
|
235
|
+
{"start":"/c/en/memory_graph","rel":"/r/UsedFor","end":"/c/en/storing_facts","weight":2}
|
|
236
|
+
{"start":"/c/en/memory_graph","rel":"/r/HasA","end":"/c/en/fact","weight":2}
|
|
237
|
+
{"start":"/c/en/fact","rel":"/r/PartOf","end":"/c/en/memory_graph","weight":2}
|
|
238
|
+
{"start":"/c/en/seon","rel":"/r/IsA","end":"/c/en/ontology","weight":2}
|