2 KiB
2 KiB
Mapping Specificity Rule: Broad vs Narrow vs Exact Mappings
🚨 CRITICAL: Mapping Semantics
When mapping LinkML classes to external ontologies, you MUST distinguish between equivalence, hypernyms (broader concepts), and hyponyms (narrower concepts).
The Rule
-
Exact Mappings (
skos:exactMatch): Use ONLY when the external concept is semantically equivalent to your class.- Example:
hc:Personexact_mappingsschema:Person.
- Example:
-
Broad Mappings (
skos:broadMatch): Use when the external concept is a hypernym (a broader, more general category) of your class.- Example:
hc:AcademicArchiveRecordSetTypebroad_mappingsrico:RecordSetType. - Rationale: An academic archive record set is a record set type, but
rico:RecordSetTypeis broader. - Common Hypernyms:
skos:Concept,prov:Entity,schema:Thing,schema:Organization,rico:RecordSetType.
- Example:
-
Narrow Mappings (
skos:narrowMatch): Use when the external concept is a hyponym (a narrower, more specific category) of your class.- Example:
hc:Organizationnarrow_mappingshc:Library(if mapping inversely).
- Example:
Common Violations to Avoid
❌ WRONG:
AcademicArchiveRecordSetType:
exact_mappings:
- rico:RecordSetType # WRONG: This implies AcademicArchiveRecordSetType == RecordSetType
✅ CORRECT:
AcademicArchiveRecordSetType:
broad_mappings:
- rico:RecordSetType # CORRECT: RecordSetType is broader
❌ WRONG:
SocialMovement:
exact_mappings:
- schema:Organization # WRONG: SocialMovement is a specific TYPE of Organization
✅ CORRECT:
SocialMovement:
broad_mappings:
- schema:Organization # CORRECT
Verification Checklist
- Does the
exact_mappingrepresent the exact same scope? - If the external term is a generic parent class (e.g.,
Type,Concept,Entity), move it tobroad_mappings. - If the external term is a specific instance or subclass, check
narrow_mappings.