This document defines the YAML frontmatter schema used for semantic knowledge graph functionality.
---
title: "Article Title"
type: ":ArticleType"
summary: "Brief description of the article"
date: 2024-01-01
aliases: ["alternative name", "another alias"]
backlinks: true
relationships:
- predicate: :relationshipType
object: target
description: "Optional description"
semantic_triples:
- subject: source
predicate: :relationshipType
object: target
---relationships:
- predicate: :predicateName
object: targetEntity
description: "Human-readable description"- predicate: The relationship type (prefixed with
:) - object: Target entity (can be file.md or entity name)
- description: Optional human-readable explanation
relationships:
- predicate: :relatedTo
object: KnowledgeGraph.md
description: "Discourse graphs are a specialized form of knowledge graph"
- predicate: :usesTechnology
object: IPFS
description: "Uses IPFS for decentralized storage"semantic_triples:
- subject: subjectEntity
predicate: :predicateName
object: objectEntity- "self": Refers to the current document
- Entity names: External concepts, technologies, organizations
- File references: Other markdown files (with .md extension)
semantic_triples:
# This document is a type of something
- subject: self
predicate: :isa
object: "methodology"
# Something uses this document
- subject: "AI systems"
predicate: :leverages
object: self
# Relationship between external entities
- subject: "Wikipedia"
predicate: :usesTechnology
object: "MediaWiki":relatedTo- General relationship:isa- Type/classification relationship:usesTechnology- Technology dependency:leverages- Building upon or using:enables- Enablement relationship:supports- Support relationship
:exploresConcept- Conceptual exploration:mentions- Mentions or references:implements- Implementation relationship:extends- Extension relationship:influences- Influence relationship
:basedOn- Founded on previous work:validates- Provides validation for:challenges- Challenges or critiques:synthesizes- Combines multiple sources
- Reference other markdown files
- Must include
.mdextension in object field - Automatically creates navigable nodes
- External concepts, technologies, organizations
- No corresponding markdown files
- Creates display-only nodes
- Examples: "React", "IPFS", "Wikipedia", "DAOs"
- Abstract types and categories
- Often used with
:isapredicate - Examples: "methodology", "technology", "framework"
- Use consistent entity names across files
- Prefer specific over generic terms
- Use proper capitalization for known entities
- Choose most specific predicate available
- Use
:relatedToonly when no specific relationship applies - Be consistent with predicate usage across files
- Always include
.mdfor file references - Use exact entity names for consistency
- Consider creating entities for important concepts even without files
- Include description fields for complex relationships
- Use clear, concise language
- Document entity choices in project documentation
predicateis required in all relationships and triples- Either
relationshipsorsemantic_triplesshould be present for knowledge graph participation
descriptionin relationships- All frontmatter fields are optional except those needed for basic Quartz functionality
- Invalid entity references are logged but don't break rendering
- Missing predicates default to
:relatedTo - Malformed YAML is ignored gracefully
Add domain-specific predicates by:
- Using consistent naming convention (
:customPredicate) - Documenting in project schema
- Using consistently across related files
Define entity types for your domain:
- Research areas
- Technologies
- Organizations
- Geographic regions
- Time periods
This schema enables rich semantic modeling while maintaining simplicity and extensibility.