Vault-LD
Brain spec
First committed by dfreytag
Published in The-Knowledge-Graph-Guys/vault-ld. Publisher page
246 GitHub stars
What it is
Vault-LD: an open spec for Markdown vaults as linked data. YAML-LD frontmatter + a shared `@context` = an RDF knowledge graph. Prose for humans and LLMs, triples for machines.
AutoGineer overview, from the brain’s own files
Vault-LD provides a standardized way to bridge human-readable Markdown notes with machine-readable RDF knowledge graphs. By utilizing YAML-LD in the frontmatter of Markdown files and a shared context, it allows for a seamless roundtrip between prose and structured data. This enables AI agents and other systems to reason over a vault's contents as a graph while maintaining a format that remains easy for humans to edit and version control in Git. The specification includes reference tools for exporting vaults to RDF and ingesting RDF into vault structures, ensuring full fidelity in both directions.
How it works
Memory model: LLM wiki
AutoGineer overview, from the brain’s own files
Vault-LD organizes information in a folder-based structure of Markdown files. Each file uses YAML-LD frontmatter to define its properties and relationships, which are resolved against a shared context file. The system uses reference scripts to convert these Markdown files into RDF triples (schema and data layers) and vice versa, allowing the vault to function as both a human-editable wiki and a structured knowledge graph.
| Folder | Role | Files |
|---|---|---|
| .github | agent-config | 11 |
| docs | docs | 39 |
| images | attachments | 3 |
| scripts | scripts | 7 |
| Vault-LD Example | folder | 14 |
The agent writes
- .github/ evidence: AGENTS.md
Requirements
Works with: OpenAI Codex, GitHub Copilot, Cursor, Kiro, OpenCode, Amp, Cline, JetBrains Junie, Devin (ex-Windsurf)
Set it up
Clone the repository at the commit AutoGineer scanned:
git clone https://github.com/The-Knowledge-Graph-Guys/vault-ld.git && cd vault-ld && git checkout 025e71be8d810e387dc451c920e05472d1c47170Point Claude Code at AGENTS.md: it does not read that file on its own.
cd vault-ld && claude
AutoGineer scanned these files at commit 025e71b.
First committed by dfreytag. Published in The-Knowledge-Graph-Guys/vault-ld. Licence: Apache License 2.0.
Usage
AutoGineer overview, from the brain’s own files
- Defining business semantics and ontologies within a Markdown-based wiki.
- Enabling AI agents to perform graph-based reasoning over local note collections.
- Synchronizing external RDF data sources with a human-friendly Markdown vault.
- Maintaining a version-controlled knowledge base that is simultaneously readable by humans and machines.
- “List all recipes in the vault that require chickpeas.”
- The agent queries the RDF graph derived from the Markdown frontmatter to identify all notes with type 'Recipe' and 'requiresIngredient' set to 'Chickpeas'.
- “Update the prep time for the Hummus recipe to 30 minutes.”
- The agent modifies the 'prepTimeMinutes' field in the YAML frontmatter of the Hummus.md file, ensuring the change is reflected in both the prose and the underlying knowledge graph.
Documentation by dfreytag
<div align="center">
<picture> <source media="(prefers-color-scheme: dark)" srcset="images/logo-dark.svg"> <img src="images/logo-light.svg" alt="Vault-LD logo" width="140"> </picture>
Vault-LD
An open format for knowledge that two very different readers can share at once:<br>a person editing notes, and a machine reasoning over a graph.
Image: CI Image: Release Image: Docs Image: License Image: GitHub stars Image: Issues Image: Contributions welcome
Specification · Docs site · Example vault · Contributing
</div>
RDF in the Vault
Karpathy's "LLM wiki" idea points at something real: a directory of plain Markdown notes is one of the most powerful ways to work with LLMs. It is readable by you, chunkable by a model, and diffable in git, with no database required. The YAML frontmatter at the centre of this approach carries a hidden pattern: it can map onto YAML-LD (JSON-LD with a YAML serialization). Resolve that frontmatter through one shared context and your notes stop being tagged text. They become linked data.
This matters for anyone already invested in RDF-based ontologies. Your business semantics (your classes, properties, and controlled vocabularies) drop straight into the wiki your team already uses, much as schema.org gave web pages a shared vocabulary without asking authors to leave HTML. The benefit runs both ways: business semantics arrive inside the wiki, and the ontology gains a human-friendly surface, where classes and properties can be read and edited as notes rather than as raw Turtle.
Both directions work because of the roundtrip. Since the frontmatter is YAML-LD, a note and an ontology definition are the same kind of object, and either can be projected losslessly to RDF and back. An ontology can enter as Turtle, be edited as Markdown, and leave as Turtle again, or the reverse, with no canonical "real" form privileged over the other.
What's here
SPEC.md: the normative reference. It defines how frontmatter becomes a knowledge graph (§4) and how any RDF graph round-trips through the vault format with full fidelity (§5), along with terminology, directory structure, conformance criteria, and a compatibility profile for lifting OKF-style Markdown bundles into linked data (Appendix B).
Vault-LD Example/: a complete, copyable vault that demonstrates every rule in the spec. It holds one ontology (Culinary), one controlled vocabulary (Difficulty Levels), and one instance (hummus). Its rootcontext.jsonldcomposes the Culinary ontology's own context, showing how multiple contexts compose (SPEC §4.2).scripts/vault_to_rdf.py: a reference exporter that projects a vault to RDF — see Exporting to RDF below.scripts/rdf_to_vault.py: the reference ingester running the other way, RDF → vault — see Ingesting RDF below. Together the two tools close the roundtrip.
Exporting to RDF
The repo ships scripts/vault_to_rdf.py, a small Python tool that reads a vault and emits Turtle, split by layer into two files:
schema.ttl— the schema layer (classes, properties, concepts), each ontology in its own namespace (cul:,diff:, …),data.ttl— the instance layer (typed notes) under the vault base, each IRI minted from the note's vault-relative path.
It classifies each note by its folder, mints each subject under the @base of its governing context (schema notes from their file name, instances from their vault-relative path — SPEC §4.5), resolves frontmatter through the vault's composed @context, and flags anything it can't map rather than dropping it. Export the example vault to build/ in one line:
pip install rdflib pyyaml && python scripts/vault_to_rdf.py "Vault-LD Example" --out-dir buildSee EXPORT.md for the full usage guide, flags, and how layer classification and context composition work.
Ingesting RDF
The reverse direction, scripts/rdf_to_vault.py, projects any RDF graph into the vault format (SPEC §5.5) — one note per subject, hierarchy in frontmatter, IRI objects as wiki links. Point it at an existing vault and it updates notes in place, preserving bodies, tags:, and folder structure, and leaving unchanged notes untouched; point it at an empty directory and it builds the whole vault, synthesizing a composed context.jsonld when none exists. Predicates the context doesn't map get a short name coined and added to the right context document; anything the format can't express (blank nodes, language tags) is flagged, never dropped (SPEC §5.6). Import a foreign ontology in one line:
python scripts/rdf_to_vault.py MyVault foreign-ontology.ttlSee INGEST.md for the full usage guide and the fidelity rules. Because the two tools are inverses, vault → RDF → vault is a no-op and RDF → vault → RDF is graph-isomorphic.
A taste
Read this note:
---
type: "[[Recipe]]"
requiresIngredient: "[[Chickpeas]]"
prepTimeMinutes: 25
---
# Hummus
A smooth purée of chickpeas, tahini, lemon, and garlic.You have just read these triples:
@prefix : <https://example.org/> .
:Hummus a :Recipe ;
:requiresIngredient :Chickpeas ;
:prepTimeMinutes 25 .The frontmatter is the graph; the body is prose for human and machine readers. One shared context.jsonld supplies the IRIs, datatypes, and prefixes, so authors write short, clean names while the semantics are supplied for them. See the Vault-LD Specification for the full rules.
Contributing
Vault-LD is an open standard and contributions are welcome: see CONTRIBUTING.md. Spec changes start life as an issue using the Spec change proposal template; fixes to the reference tools, example vault, and docs can go straight to a pull request.
License
<div align="center">
If Vault-LD is useful to you, a ⭐ on GitHub helps others find it.
</div>
LICENSE
Shown as plain text.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Copyright 2026 The Knowledge Graph Guys
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
85 files · 5 not served here
- .github/.release-please-manifest.json
- .github/CHANGELOG.md
- .github/CODEOWNERS
- .github/ISSUE_TEMPLATE/bug-report.md
- .github/ISSUE_TEMPLATE/spec-change.md
- .github/PULL_REQUEST_TEMPLATE.md
- .github/release-please-config.json
- .github/workflows/ci.yml
- .github/workflows/pages.yml
- .github/workflows/pr-check.yml
- .github/workflows/release.yml
- .gitignore
- AGENTS.md
- ATTRIBUTION.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- HISTORY.md
- LICENSE
- Makefile
- README.md
- SECURITY.md
- SPEC.md
- Vault-LD Example/Ingredients/Chickpeas.md
- Vault-LD Example/Ontologies/Culinary/Classes/CreativeWork.md
- Vault-LD Example/Ontologies/Culinary/Classes/Ingredient.md
- Vault-LD Example/Ontologies/Culinary/Classes/Recipe.md
- Vault-LD Example/Ontologies/Culinary/Culinary.md
- Vault-LD Example/Ontologies/Culinary/Properties/prepTimeMinutes.md
- Vault-LD Example/Ontologies/Culinary/Properties/requiresIngredient.md
- Vault-LD Example/Ontologies/Culinary/context.jsonld
- Vault-LD Example/Recipes/hummus.md
- Vault-LD Example/Vocabularies/DifficultyLevels/Beginner.md
- Vault-LD Example/Vocabularies/DifficultyLevels/DifficultyLevels.md
- Vault-LD Example/Vocabularies/DifficultyLevels/NoCook.md
- Vault-LD Example/Vocabularies/DifficultyLevels/context.jsonld
- Vault-LD Example/context.jsonld
- docs/assemble.mjs
- docs/docusaurus.config.js
- docs/package-lock.json
- docs/package.json
- docs/sidebars.js
- docs/src/css/custom.css
- docs/src/theme/NotFound/Content/index.js
- docs/static/CNAME
- docs/static/img/favicon.svg
- docs/static/img/social-card.png (not served here)
- docs/static/robots.txt
- docs/versioned_docs/version-0.3.0/CONTRIBUTING.md
- docs/versioned_docs/version-0.3.0/HISTORY.md
- docs/versioned_docs/version-0.3.0/SECURITY.md
- docs/versioned_docs/version-0.3.0/SPEC.md
- docs/versioned_docs/version-0.3.0/images/Vault-LD.png (not served here)
- docs/versioned_docs/version-0.3.0/images/logo-dark.svg
- docs/versioned_docs/version-0.3.0/images/logo-light.svg
- docs/versioned_docs/version-0.3.0/index.md
- docs/versioned_docs/version-0.4.0/CONTRIBUTING.md
- docs/versioned_docs/version-0.4.0/HISTORY.md
- docs/versioned_docs/version-0.4.0/SECURITY.md
- docs/versioned_docs/version-0.4.0/SPEC.md
- docs/versioned_docs/version-0.4.0/images/Vault-LD.png (not served here)
- docs/versioned_docs/version-0.4.0/images/logo-dark.svg
- docs/versioned_docs/version-0.4.0/images/logo-light.svg
- docs/versioned_docs/version-0.4.0/index.md
- docs/versioned_docs/version-0.5.0/CONTRIBUTING.md
- docs/versioned_docs/version-0.5.0/HISTORY.md
- docs/versioned_docs/version-0.5.0/SECURITY.md
- docs/versioned_docs/version-0.5.0/SPEC.md
- docs/versioned_docs/version-0.5.0/images/Vault-LD.png (not served here)
- docs/versioned_docs/version-0.5.0/images/logo-dark.svg
- docs/versioned_docs/version-0.5.0/images/logo-light.svg
- docs/versioned_docs/version-0.5.0/index.md
- docs/versioned_sidebars/version-0.3.0-sidebars.json
- docs/versioned_sidebars/version-0.4.0-sidebars.json
- docs/versioned_sidebars/version-0.5.0-sidebars.json
- docs/versions.json
- images/Vault-LD.png (not served here)
- images/logo-dark.svg
- images/logo-light.svg
- scripts/EXPORT.md
- scripts/INGEST.md
- scripts/compare_builds.py
- scripts/rdf_to_vault.py
- scripts/requirements.txt
- scripts/test_security.py
- scripts/vault_to_rdf.py
Advantages
- Enables lossless roundtripping between Markdown notes and RDF graphs. evidence: README.md
- Allows business semantics to be edited as human-friendly Markdown rather than raw Turtle. evidence: README.md
- Supports composition of multiple contexts for complex knowledge modeling. evidence: README.md
Limitations
- Requires adherence to specific YAML-LD frontmatter and context structures. evidence: README.md
- Certain RDF features like blank nodes or language tags may require specific handling or flagging. evidence: README.md
Security
Risk level: Low risk
This brain runs
Agent instructions that run or fetch something (3)
AGENTS.md:This is the repo's institutional memory, and it is load-bearing: contributors are expected to point their own agent at HISTORY.md (plus `git log`) to produce commits and PRs that match this repo's standards.AGENTS.md:**Security guarantees are pinned as tests** (`scripts/test_security.py`, run via `make test` in CI).AGENTS.md:**`make test` and `make roundtrip` must be green** before proposing a change.
- Low risk: network-instructions (Makefile:38)
Attribution and licence
- First committed by
dfreytag
- Publisher
- The Knowledge Graph Guys (Community)
- Source
- The-Knowledge-Graph-Guys/vault-ld · commit 025e71b
- Licence
- Apache License 2.0 (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- C-HORNB, dfreytag, roelofsmn, tonyseale
AutoGineer is not affiliated with or endorsed by dfreytag or The Knowledge Graph Guys.
Install from source
5 of its files are not served here, so there is no ZIP. The-Knowledge-Graph-Guys/vault-ld at 025e71b