Markdown Format
Structure
Section titled “Structure”---# YAML Frontmatter (required)id: uuid-heretype: semanticcreated: 2026-01-15T10:30:00Z---
# Title (optional, first H1)
Memory content in Markdown format.
## Relationships (optional section)
- relates-to [[Other Memory]]- derived-from [[Source Memory]]
## Entities (optional section)
- mentions @[[Person Name]]- uses @[[Technology Name]]Frontmatter Schema
Section titled “Frontmatter Schema”---# === REQUIRED ===id: 550e8400-e29b-41d4-a716-446655440000 # UUID v4type: semantic # Base type: semantic|episodic|proceduralcreated: 2026-01-15T10:30:00Z # ISO 8601 datetime
# === RECOMMENDED ===modified: 2026-01-20T14:22:00Z # Last modificationontology: # Applied ontology reference id: mif-base # Ontology identifier version: "1.0.0" # Ontology version uri: https://raw.githubusercontent.com/zircote/MIF/main/ontologies/mif-base # Ontology identifier (not a resolvable URL)namespace: org/user/project # Hierarchical scopetitle: "Human-readable title" # Display titletags: # Classification - preference - ui
# === OPTIONAL: Temporal ===temporal: valid_from: 2026-01-15T00:00:00Z # When fact becomes valid valid_until: null # When fact expires (null = indefinite) recorded_at: 2026-01-15T10:30:00Z # When recorded (transaction time) ttl: P90D # Time-to-live (ISO 8601 duration) decay: model: exponential # Decay model halfLife: P7D # Half-life duration strength: 0.85 # Current strength (0-1) access_count: 5 # Times accessed last_accessed: 2026-01-20T14:22:00Z # Last access time
# === OPTIONAL: Provenance ===provenance: source_type: user_explicit # How memory was created source_ref: conversation:conv_456 # Reference to source agent: claude-3-opus # Creating agent confidence: 0.95 # Confidence score (0-1) trust_level: user_stated # Trust classification
# === OPTIONAL: Embedding ===embedding: model: text-embedding-3-small # Embedding model model_version: "2024-01" # Model version dimensions: 1536 # Vector dimensions source_text: "User prefers dark mode" # Text that was embedded # Note: Actual vectors stored externally or in JSON-LD format
# === OPTIONAL: Aliases ===aliases: - "Dark Mode Preference" - "UI Theme Choice"
# === OPTIONAL: Extensions ===extensions: subcog: domain: user hash: sha256:abc123... custom_provider: custom_field: value---Wiki-Link Syntax
Section titled “Wiki-Link Syntax”MIF extends Obsidian wiki-link syntax for typed relationships:
# Basic link (RelatesTo relationship)[[Other Memory]]
# Typed relationship[[Other Memory|derives-from]][[Other Memory|supersedes]]
# Entity reference (prefixed with @)@[[Person Name]]@[[Technology Name|uses]]
# Block reference[[Memory Name#^block-id]]
# With display text[[Other Memory|derives-from|"See also"]]Block References
Section titled “Block References”Blocks can be referenced for granular linking:
This is an important statement. ^important-point
- Key insight about the system ^insight-1Referenced as: [[Memory Name#^important-point]]
Citations (Level 3)
Section titled “Citations (Level 3)”Citations provide structured references to external sources that inform, support, or relate to the memory content. Citations are a Level 3 (Full) optional feature.
Frontmatter Schema
Section titled “Frontmatter Schema”# === OPTIONAL: Citations (Level 3) ===citations: - type: article # REQUIRED: Source category title: "Memory Systems in AI Agents" # REQUIRED: Citation title url: https://arxiv.org/abs/2024.12345 # REQUIRED: Valid URL role: supports # REQUIRED: Relationship to memory author: "@[[Jane Smith|Person]]" # OPTIONAL: Entity ref or text date: 2024-06-15 # OPTIONAL: Publication date accessed: 2026-01-20 # OPTIONAL: Access date relevance: 0.95 # OPTIONAL: Relevance score (0-1) note: "Foundational paper on semantic memory" # OPTIONAL: AnnotationCitation Fields
Section titled “Citation Fields”| Field | Required | Type | Description |
|---|---|---|---|
type | REQUIRED | Enum | Source category (see Citation Types) |
title | REQUIRED | String | Citation title |
url | REQUIRED | URI | Valid URL or URI |
role | REQUIRED | Enum | Relationship to memory (see Citation Roles) |
author | OPTIONAL | String | Entity reference or plain text |
date | OPTIONAL | Date | Publication date (ISO 8601) |
accessed | OPTIONAL | Date | Access date (ISO 8601) |
relevance | OPTIONAL | Decimal | Relevance score (0.0-1.0) |
note | OPTIONAL | String | Free-form annotation |
Citation Types
Section titled “Citation Types”| Type | Description | Example |
|---|---|---|
article | Journal article, blog post | arXiv paper, Medium article |
book | Published book | O’Reilly book, academic text |
paper | Conference/research paper | ACM paper, IEEE publication |
website | General website | Documentation site, homepage |
documentation | Technical documentation | API docs, user guides |
repository | Code repository | GitHub repo, GitLab project |
video | Video content | YouTube tutorial, conference talk |
podcast | Podcast episode | Tech podcast, interview |
specification | Technical specification | W3C spec, RFC document |
dataset | Data source | Kaggle dataset, research data |
tool | Software tool or service | SaaS product, CLI tool |
other | Miscellaneous source | Catch-all category |
Custom types MAY use namespace prefixes: acme:internal-memo, research:lab-notes
Citation Roles
Section titled “Citation Roles”| Role | Description | Use Case |
|---|---|---|
supports | Provides supporting evidence | Confirming research, alignment |
refutes | Contradicts or disputes | Opposing viewpoint, correction |
background | General context/reference | Related reading, foundation |
methodology | Method or approach source | Technique borrowed, framework |
contradicts | Conflicts with claims | Disagreement, alternative view |
extends | Builds upon cited work | Evolution, expansion |
derived | Direct derivation source | Adapted from, based on |
source | Primary source material | Original data, quote |
example | Illustrative example | Case study, demo |
review | Critical review/analysis | Critique, evaluation |
Custom roles MAY use namespace prefixes: research:replicates, legal:cites-precedent
Body Section Syntax
Section titled “Body Section Syntax”An optional ## Citations section MAY appear in the memory body for detailed annotations. When present, corresponding entries MUST exist in frontmatter.
## Citations
- [Memory Systems in AI Agents](https://arxiv.org/abs/2024.12345) by @[[Jane Smith|Person]] (2024) - **Type**: article - **Role**: supports - **Relevance**: 0.95 - Foundational paper on semantic memory structures. Introduces bi-temporal model that informed MIF's temporal design.
- [Obsidian Help](https://help.obsidian.md/) by @[[Obsidian Team|Organization]] - **Type**: documentation - **Role**: background - **Accessed**: 2026-01-18 - Reference for wiki-link syntax and block references.Author Entity References
Section titled “Author Entity References”Authors MAY use wiki-link syntax to reference MIF entities:
# Single author entityauthor: "@[[Jane Smith|Person]]"
# Multiple authors (comma-separated)author: "@[[Jane Smith|Person]], @[[John Doe|Person]]"
# Organization authorauthor: "@[[Anthropic|Organization]]"
# Plain text (no entity reference)author: "Jane Smith et al."Citation Validation
Section titled “Citation Validation”Implementations SHOULD validate citations according to these rules:
Required Field Constraints:
| Field | Constraint |
|---|---|
type | MUST be a value from Citation Types or a custom namespaced type (e.g., acme:memo) |
title | MUST be a non-empty string |
url | MUST be a valid URI (http, https, or custom schemes) |
role | MUST be a value from Citation Roles or a custom namespaced role (e.g., legal:precedent) |
Optional Field Constraints:
| Field | Constraint |
|---|---|
author | SHOULD be entity reference(s) @[[Name|Type]] or plain text; multiple authors comma-separated |
date | MUST be ISO 8601 date format (YYYY-MM-DD) |
accessed | MUST be ISO 8601 date format (YYYY-MM-DD) |
relevance | MUST be decimal between 0.0 and 1.0 inclusive |
note | SHOULD be under 1000 characters; longer notes SHOULD use body section |
Validation Errors:
| Error | Severity | Action |
|---|---|---|
| Missing required field | Error | Reject citation |
Invalid type value | Warning | Accept with type: "other" fallback |
Invalid role value | Warning | Accept with role: "background" fallback |
| Malformed URL | Error | Reject citation |
relevance out of range | Warning | Clamp to 0.0-1.0 |
| Invalid date format | Warning | Accept as plain text |
Compression (Level 3)
Section titled “Compression (Level 3)”Compression allows large memories to be summarized while preserving the original content. Compression is typically applied by garbage collection processes to reduce memory footprint while retaining semantic value.
Compression Fields
Section titled “Compression Fields”| Field | Required | Type | Description |
|---|---|---|---|
summary | OPTIONAL | String | Concise 2-3 sentence summary (max 500 characters) |
compressed_at | OPTIONAL | DateTime | When compression was applied (ISO 8601) |
Frontmatter Schema:
# === OPTIONAL: Compression (Level 3) ===summary: "User prefers dark mode for reduced eye strain during extended coding sessions. Applies to IDE, terminal, and web applications."compressed_at: 2026-01-24T10:00:00ZCompression Criteria
Section titled “Compression Criteria”Implementations MAY apply compression when memories meet these criteria:
| Condition | Threshold |
|---|---|
| Age AND Size | Age > 30 days AND content > 100 lines |
| Decay AND Size | Strength < 0.3 AND content > 100 lines |
Compression Behavior
Section titled “Compression Behavior”- The
contentfield SHOULD be replaced with the compressed summary - The original
contentMAY be preserved inextensions.original_content - The
summaryfield contains the generated summary text - The
compressed_attimestamp indicates when compression occurred - Compressed memories retain all other metadata (relationships, entities, etc.)
Compression Validation
Section titled “Compression Validation”| Field | Constraint |
|---|---|
summary | MUST be 500 characters or fewer |
compressed_at | MUST be ISO 8601 datetime format |