Skip to content

Markdown Format

---
# YAML Frontmatter (required)
id: uuid-here
type: semantic
created: 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]]
---
# === REQUIRED ===
id: 550e8400-e29b-41d4-a716-446655440000 # UUID v4
type: semantic # Base type: semantic|episodic|procedural
created: 2026-01-15T10:30:00Z # ISO 8601 datetime
# === RECOMMENDED ===
modified: 2026-01-20T14:22:00Z # Last modification
ontology: # 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 scope
title: "Human-readable title" # Display title
tags: # 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
---

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"]]

Blocks can be referenced for granular linking:

This is an important statement. ^important-point
- Key insight about the system ^insight-1

Referenced as: [[Memory Name#^important-point]]

Citations provide structured references to external sources that inform, support, or relate to the memory content. Citations are a Level 3 (Full) optional feature.

# === 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: Annotation
FieldRequiredTypeDescription
typeREQUIREDEnumSource category (see Citation Types)
titleREQUIREDStringCitation title
urlREQUIREDURIValid URL or URI
roleREQUIREDEnumRelationship to memory (see Citation Roles)
authorOPTIONALStringEntity reference or plain text
dateOPTIONALDatePublication date (ISO 8601)
accessedOPTIONALDateAccess date (ISO 8601)
relevanceOPTIONALDecimalRelevance score (0.0-1.0)
noteOPTIONALStringFree-form annotation
TypeDescriptionExample
articleJournal article, blog postarXiv paper, Medium article
bookPublished bookO’Reilly book, academic text
paperConference/research paperACM paper, IEEE publication
websiteGeneral websiteDocumentation site, homepage
documentationTechnical documentationAPI docs, user guides
repositoryCode repositoryGitHub repo, GitLab project
videoVideo contentYouTube tutorial, conference talk
podcastPodcast episodeTech podcast, interview
specificationTechnical specificationW3C spec, RFC document
datasetData sourceKaggle dataset, research data
toolSoftware tool or serviceSaaS product, CLI tool
otherMiscellaneous sourceCatch-all category

Custom types MAY use namespace prefixes: acme:internal-memo, research:lab-notes

RoleDescriptionUse Case
supportsProvides supporting evidenceConfirming research, alignment
refutesContradicts or disputesOpposing viewpoint, correction
backgroundGeneral context/referenceRelated reading, foundation
methodologyMethod or approach sourceTechnique borrowed, framework
contradictsConflicts with claimsDisagreement, alternative view
extendsBuilds upon cited workEvolution, expansion
derivedDirect derivation sourceAdapted from, based on
sourcePrimary source materialOriginal data, quote
exampleIllustrative exampleCase study, demo
reviewCritical review/analysisCritique, evaluation

Custom roles MAY use namespace prefixes: research:replicates, legal:cites-precedent

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.

Authors MAY use wiki-link syntax to reference MIF entities:

# Single author entity
author: "@[[Jane Smith|Person]]"
# Multiple authors (comma-separated)
author: "@[[Jane Smith|Person]], @[[John Doe|Person]]"
# Organization author
author: "@[[Anthropic|Organization]]"
# Plain text (no entity reference)
author: "Jane Smith et al."

Implementations SHOULD validate citations according to these rules:

Required Field Constraints:

FieldConstraint
typeMUST be a value from Citation Types or a custom namespaced type (e.g., acme:memo)
titleMUST be a non-empty string
urlMUST be a valid URI (http, https, or custom schemes)
roleMUST be a value from Citation Roles or a custom namespaced role (e.g., legal:precedent)

Optional Field Constraints:

FieldConstraint
authorSHOULD be entity reference(s) @[[Name|Type]] or plain text; multiple authors comma-separated
dateMUST be ISO 8601 date format (YYYY-MM-DD)
accessedMUST be ISO 8601 date format (YYYY-MM-DD)
relevanceMUST be decimal between 0.0 and 1.0 inclusive
noteSHOULD be under 1000 characters; longer notes SHOULD use body section

Validation Errors:

ErrorSeverityAction
Missing required fieldErrorReject citation
Invalid type valueWarningAccept with type: "other" fallback
Invalid role valueWarningAccept with role: "background" fallback
Malformed URLErrorReject citation
relevance out of rangeWarningClamp to 0.0-1.0
Invalid date formatWarningAccept as plain text

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.

FieldRequiredTypeDescription
summaryOPTIONALStringConcise 2-3 sentence summary (max 500 characters)
compressed_atOPTIONALDateTimeWhen 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:00Z

Implementations MAY apply compression when memories meet these criteria:

ConditionThreshold
Age AND SizeAge > 30 days AND content > 100 lines
Decay AND SizeStrength < 0.3 AND content > 100 lines
  • The content field SHOULD be replaced with the compressed summary
  • The original content MAY be preserved in extensions.original_content
  • The summary field contains the generated summary text
  • The compressed_at timestamp indicates when compression occurred
  • Compressed memories retain all other metadata (relationships, entities, etc.)
FieldConstraint
summaryMUST be 500 characters or fewer
compressed_atMUST be ISO 8601 datetime format