Q&A — Phase 27.1 DomainMapper #600
Unanswered
web3guru888
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Frequently Asked Questions
Q1: Why structure mapping instead of embedding similarity?
Embedding similarity captures surface-level patterns (shared vocabulary, statistical co-occurrence). Structure mapping captures relational isomorphisms — the deep structural parallels that make analogies productive. The solar-system/atom analogy works because both share
attracts(center, orbiter)+revolves(orbiter, center), not because "sun" and "nucleus" have similar word embeddings.Q2: How is the one-to-one constraint enforced?
During the merge phase, each entity in the source can map to at most one entity in the target (and vice versa). The greedy merge algorithm maintains a
used_source: setandused_target: set. Any match hypothesis that would violate one-to-one is discarded. This prevents degenerate many-to-one mappings.Q3: What happens when no good mapping exists?
If the best mapping's structural score falls below a configurable threshold (default: 0.2),
map_domainsreturns a DomainMapping withconfidence=0.0and emptytransferred_inferences. The caller (typically GeneralizationOrchestrator) interprets this as "domains are too dissimilar for productive transfer."Q4: How does the LRU cache work?
The mapping cache is keyed on
(source.domain_id, target.domain_id). Since DomainSchema is frozen, its identity is stable. The cache usesfunctools.lru_cachewith a configurablemaxsize(default: 128). Cache invalidation happens when a domain's schema is updated (detected via schema hash).Q5: Can DomainMapper handle partial domains?
Yes. If the target domain has fewer entities/relations than the source, the mapping will have
unmapped_sourceentries. These unmapped elements are precisely whattransfer_knowledgeuses to generate candidate inferences — they represent knowledge the source has that the target might benefit from.Q6: How does this integrate with ConceptGraph (26.1)?
ConceptGraph provides the raw material: entities as concept nodes, relations as edges.
DomainSchema.from_concept_graph(graph, domain_filter)extracts a domain-specific subgraph and wraps it as a DomainSchema. This bridges Phase 26's knowledge representation with Phase 27's transfer machinery.Q7: What are the computational complexity bounds?
Issue: #594 | Show & Tell: #599
Beta Was this translation helpful? Give feedback.
All reactions