Relationship Types
MIF provides an extensible relationship type system. Implementations SHOULD support the core types for interoperability, but MAY define custom relationship types for domain-specific needs.
Relationship Type Architecture
Section titled “Relationship Type Architecture”Relationship types are not hard-coded. They are defined in vault configuration and can be extended per-project:
relationship_types: # Core types (RECOMMENDED for interoperability) - name: RelatesTo description: General semantic relationship symmetric: true - name: DerivedFrom description: Memory created based on source inverse: Derives - name: Supersedes description: Replaces an older memory inverse: SupersededBy - name: ConflictsWith description: Contradicts another memory symmetric: true - name: PartOf description: Component of a larger whole inverse: Contains - name: Implements description: Realizes a concept or pattern inverse: ImplementedBy - name: Uses description: Utilizes a technology or tool inverse: UsedBy - name: Created description: Authored by an entity inverse: CreatedBy - name: MentionedIn description: Referenced within a memory inverse: Mentions
# Custom types (domain-specific) - name: Reinforces namespace: subcog description: Strengthens confidence in another memory inverse: ReinforcedBy - name: Contradicts namespace: subcog description: Provides evidence against another memory inverse: ContradictedBy - name: BreedsWith namespace: farm description: Animal breeding relationship symmetric: false properties: - name: breeding_date type: date - name: success type: booleanCore Relationship Types (Recommended)
Section titled “Core Relationship Types (Recommended)”For maximum interoperability, implementations SHOULD recognize these nine core types:
| Type | Description | Inverse | Symmetric |
|---|---|---|---|
RelatesTo | General relationship | RelatesTo | Yes |
DerivedFrom | Created based on source | Derives | No |
Supersedes | Replaces older memory | SupersededBy | No |
ConflictsWith | Contradicts another memory | ConflictsWith | Yes |
PartOf | Component of larger whole | Contains | No |
Implements | Realizes a concept/pattern | ImplementedBy | No |
Uses | Utilizes a technology/tool | UsedBy | No |
Created | Authored by entity | CreatedBy | No |
MentionedIn | Referenced in memory | Mentions | No |
Custom Relationship Types
Section titled “Custom Relationship Types”Providers MAY define additional relationship types using namespaced URIs:
# Custom relationship type definitionrelationship_types: - name: Contradicts namespace: farm # Results in URI: farm:Contradicts description: Provides conflicting evidence inverse: ContradictedBy properties: - name: contradiction_type type: string enum: [direct, indirect, partial] - name: severity type: decimal range: [0.0, 1.0]JSON-LD representation of custom relationship types:
{ "@context": [ "https://mif-spec.dev/schema/context.jsonld", {"farm": "https://example.org/farm/"} ], "relationships": [ { "@type": "Relationship", "relationshipType": "farm:BreedsWith", "target": {"@id": "urn:mif:entity:animal:ram-001"}, "strength": 1.0, "farm:breeding_date": "2025-10-15", "farm:success": true } ]}Relationship Schema
Section titled “Relationship Schema”Markdown syntax:
Relationships use a simple type [[target]] format in a dedicated section:
## Relationships
- relates-to [[Other Memory]]- derived-from [[Source Memory]]- supersedes [[Old Memory]]- conflicts-with [[Contradicting Memory]]- part-of [[Parent Memory]]The relationship type name is converted to kebab-case in Markdown. The target uses wiki-link syntax [[]] which resolves to the memory’s @id or title.
JSON-LD schema:
"relationships": [ { "@type": "Relationship", "relationshipType": "DerivedFrom", "target": {"@id": "urn:mif:memory:source-memory"}, "strength": 0.9, "metadata": { "reason": "Extracted key insight", "extractedAt": "2026-01-15T10:30:00Z" } }]Relationship Properties
Section titled “Relationship Properties”| Property | Type | Required | Description |
|---|---|---|---|
@type | String | Yes | Always "Relationship" |
relationshipType | URI/Vocab | Yes | Type identifier (core or custom) |
target | URI Reference | Yes | Target memory or entity URI |
strength | Decimal | No | Relationship strength (0.0-1.0) |
metadata | Object | No | Additional relationship metadata |