refactor: follow carry semantics, remove keyword matching entirely
The mapper was still trying to TF-IDF match carry entity names to
island vertex titles, producing garbage like "Vect" matching
"disinformation vector". The fundamental problem: carry entity URLs
and island vertex URLs have zero overlap — they track different things
(homepages vs articles).
Solution: follow carry semantics directly. A carry connection is
source → relation → target. If one side is in the island, create a
bridge. If neither side is in the island, emit as a "nearby" connection
that expands the knowledge graph. No keyword matching at all.
Changes:
- Remove TF-IDF scoring, tokenization, findBestVertexMatch
- Remove keywordOverlapSets, computeIdf, tfidfScore
- matchCarryData now only checks URL overlap and emits carry triples
- Fix synthesis to use deduped count (was showing 53, now shows 20)
Result: 20 connections, all real carry semantic triples:
- Cosmik Network → built → Semble
- Dialog DB → related-to → Ink and Switch
- Astera Institute → related-to → Arcadia Science
etc.
None bridge to the island (zero URL overlap) — honest result.
Tested locally with docker run -v carry-vault:/data/carry.
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
refactor: follow carry semantics, remove keyword matching entirely
The mapper was still trying to TF-IDF match carry entity names to
island vertex titles, producing garbage like "Vect" matching
"disinformation vector". The fundamental problem: carry entity URLs
and island vertex URLs have zero overlap — they track different things
(homepages vs articles).
Solution: follow carry semantics directly. A carry connection is
source → relation → target. If one side is in the island, create a
bridge. If neither side is in the island, emit as a "nearby" connection
that expands the knowledge graph. No keyword matching at all.
Changes:
- Remove TF-IDF scoring, tokenization, findBestVertexMatch
- Remove keywordOverlapSets, computeIdf, tfidfScore
- matchCarryData now only checks URL overlap and emits carry triples
- Fix synthesis to use deduped count (was showing 53, now shows 20)
Result: 20 connections, all real carry semantic triples:
- Cosmik Network → built → Semble
- Dialog DB → related-to → Ink and Switch
- Astera Institute → related-to → Arcadia Science
etc.
None bridge to the island (zero URL overlap) — honest result.
Tested locally with docker run -v carry-vault:/data/carry.
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>