Expand description
§okf: the Open Knowledge Format, in pure Rust
A pure Rust implementation of the Open Knowledge Format (OKF) v0.2, Google’s open, human- and agent-friendly format for representing knowledge as a directory of markdown files with YAML frontmatter.
This crate is the user-facing entry point of the OKF workspace. It ships
the okf command-line tool (cargo install okf) and re-exports the entire
API of the okf-core crate and the
okf-validator crate.
use okf::{Bundle, validate_bundle};
let bundle = Bundle::load("./my_bundle")?;
println!("{} concepts", bundle.len());
let report = validate_bundle(&bundle);
if report.is_conformant() {
println!("conformant OKF v0.2 bundle");
}See the okf-core documentation for the full model: Bundle, Document,
Frontmatter, ConceptId, the provenance/trust/attestation families,
validate_bundle conformance checker, and lint_bundle multi-language
syntax and hygiene checks.
Modules§
- actor
- The actor convention: who or what performed an action.
- bundle
- Loading and traversing an OKF bundle: a directory tree of markdown files.
- computation
- Attested Computation concepts.
- concept_
id - Concept identifiers and their mapping to/from file paths.
- date
- Calendar dates and ISO-8601 datetimes for the trust and lifecycle families.
- diff
- Bundle-level diff: an OKF-semantics diff between two
Bundles. - document
- The OKF concept document: YAML frontmatter + markdown body.
- error
- Error types for the crate.
- fix
- Automated remediation and migrations for OKF concepts, bundles, and logs.
- footnotes
- Markdown footnotes, the carrier for per-claim attribution.
- frontmatter
- Typed, order-preserving access to a concept’s YAML frontmatter.
- index
- Generation of
index.mddirectory listings. - links
- Markdown link extraction, classification, and path-valued fields.
- lint
- Opinionated bundle health checks, beyond conformance and validation.
- log
- Parsing, building, and updating
log.mdupdate histories. - markdown
- Markdown scanning, link rewriting, heading extraction, and anchor slugs.
- provenance
- Provenance: the
sourcesfrontmatter family and per-claim attribution. - refactor
- Knowledge refactoring, concept relocation, deletion, splitting, and merging.
- scaffold
- Scaffolding and initialization utilities for OKF bundles and concept documents.
- syntax
- Multi-language syntax validation for Attested Computations and embedded scripts.
- trust
- Trust and lifecycle frontmatter:
generated,verified,status, andstale_after. - validate
- Conformance checking and structural validation against OKF v0.2.
- yaml
- A small YAML subset parser used for OKF frontmatter.
Structs§
- Actor
- A parsed actor string, retaining the text exactly as written.
- Attested
Computation - The contract of an
Attested Computationconcept: its top-level frontmatter plus the computation itself. - Attester
- The deterministic check.
- Attribution
- A body claim attributed to a source, produced by joining footnote labels to
sources[].id. - Bundle
- A loaded OKF bundle.
- Bundle
Diff - A bundle-level diff.
- Bundle
FixReport - Remediation report for a whole bundle.
- Bundle
Init Options - Options for initializing a new OKF bundle.
- Citation
- A numbered entry under a legacy v0.1
# Citationsheading. - Concept
- A single concept within a bundle (one markdown document).
- Concept
Id - A concept identifier: an ordered list of path segments (e.g.
["tables", "users"]fortables/users). - Concept
IdError - Error returned when a concept-id segment is malformed.
- Concept
Options - Options for creating a new concept document.
- Date
- A proleptic-Gregorian calendar date (
YYYY-MM-DD). - Date
Field - A frontmatter date field: the scalar exactly as written, plus its parse.
- Date
Time - An ISO-8601 datetime: a
Date, an optional time of day, and an optional UTC offset. - Date
Time Field - A frontmatter datetime field: the scalar exactly as written, plus its parse.
- Diagnostic
- A single finding about a bundle.
- Document
- A parsed OKF concept document.
- Executor
- How the computation is run.
- Fenced
Code Block - A parsed fenced code block from markdown.
- File
FixReport - Remediation report for a single file.
- FixOptions
- Options controlling automated remediation and migration.
- Footnote
Def - A
[^label]: textdefinition line. - Footnote
Ref - A
[^label]reference in the body prose. - Frontmatter
- A concept’s frontmatter: an ordered key/value mapping with typed accessors for the well-known OKF fields.
- Frontmatter
Change - Frontmatter key changes for a concept present in both bundles.
- Generated
- How the current content was produced:
generated: { by, at }. - Inline
Computation - A computation held in the body under
# Computation. - Link
- A markdown link found in a concept body.
- Log
- A parsed
log.md. - LogDay
- All entries recorded under a single date heading.
- LogEntry
- A single log bullet.
- Mapping
- An ordered YAML mapping (preserves insertion / source order, like the
reference implementation which dumps with
sort_keys=False). - Markdown
Heading - A parsed markdown heading.
- Merge
Options - Options for merging one concept into another.
- Merge
Report - Summary report of a merge operation.
- Move
Options - Options for moving or renaming a concept.
- Move
Report - Summary report of a move/rename operation.
- Parameter
- One typed, named hole an agent may fill.
- Parse
Actor Kind Error - Error returned when a string cannot be parsed into an
ActorKind. - Parse
Link Kind Error - Error returned when a string cannot be parsed into a
LinkKind. - Parse
Severity Error - Error returned when a string cannot be parsed into a
Severity. - Parse
Trust Tier Error - Error returned when a string cannot be parsed into a
TrustTier. - Remediation
- A single remediation action applied to a document or file.
- Remove
Options - Options for removing a concept.
- Remove
Report - Summary report of a removal operation.
- Rename
- A rename detected by matching content hash between a removed and an added concept.
- Rename
Section Options - Options for renaming a section heading within a concept.
- Rename
Section Report - Summary report of a section rename operation.
- Report
- The result of validating a bundle.
- Resolved
Link - A cross-link from one concept to another, after resolution.
- Resolved
Source - A
sourcesentry resolved against the bundle. - Source
- One entry in the
sourceslist: a material the concept derives from. - Split
Options - Options for splitting a concept section into a new concept.
- Split
Report - Summary report of a split operation.
- Syntax
Error - A syntax diagnostic produced by static AST parsing.
- Trust
Change - A trust tier or status change for a concept present in both bundles.
- Usage
Window - The date/time range that frames
usage_count. - Verification
- A single verification event:
{ by, at }.
Enums§
- Actor
Kind - The category an actor string falls into.
- Bundle
Error - Errors raised when loading or operating on a bundle on disk.
- Computation
Source - Where the sanctioned computation lives.
- Document
Error - Errors raised when parsing or validating a single OKF concept document.
- Language
- Supported languages for static syntax checking.
- Link
Kind - How a link target is interpreted.
- Link
Rewrite Action - Action to perform on a detected markdown link during rewrite.
- Refactor
Error - Error returned when a refactoring operation fails.
- Remediation
Kind - What kind of remediation or migration was applied.
- Resource
Kind - What kind of thing a
sources[].resourcenames. - Severity
- Severity of a diagnostic.
- Status
- A concept’s lifecycle
status. An absent key meansStatus::Stable. - Trust
Tier - A concept’s trust tier, derived from
verified. - Value
- A parsed YAML value.
Constants§
- ATTESTED_
COMPUTATION_ TYPE - The
typevalue that marks a concept as an Attested Computation. - KNOWN_
FRONTMATTER_ KEYS - Every frontmatter key the specification gives a meaning to, across all families. Anything else is a producer extension.
- LEGACY_
FRONTMATTER_ KEYS - Keys v0.2 retired but consumers may still encounter in v0.1 documents.
timestampis superseded bygenerated.at. - OKF_
VERSION - The OKF specification version this crate implements.
- PREFERRED_
KEY_ ORDER - The key order the reference implementation writes documents in (its
_PREFERRED_KEY_ORDER): identity first, then lifecycle, trust, and provenance. - RECOMMENDED_
FRONTMATTER_ KEYS - Keys a producer should fill in before publishing, in the order
Document::missing_recommendedreports them. - REQUIRED_
FRONTMATTER_ KEYS - The only frontmatter key OKF always requires: a concept carrying
nothing but
typeis fully conformant. - RESERVED_
FILENAMES - Reserved filenames with defined meaning at any level.
- SUPPORTED_
OKF_ VERSIONS - Specification versions this crate can consume.
Functions§
- append_
log_ entry - Appends an entry to
log.mdin the bundle root, creating the file if needed. - bundle_
diff - Computes the OKF-semantics diff between two bundles.
- check_
syntax - Checks the syntax of
sourcefor the givenlanguagetag or name. - compute_
relative_ path - Computes the relative markdown link path from
from_concepttoto_concept. - create_
concept - Creates a new concept markdown file with proper frontmatter and heading.
- default_
author - Returns a default author actor string based on system user environment
variables or
"human:author". - extract_
fenced_ code_ blocks - Extracts all fenced code blocks (delimited by 3+ backticks or 3+ tildes) from markdown text.
- extract_
headings - Extracts all markdown headings in document order, ignoring headings inside fenced code blocks.
- field_
path_ candidates - Normalizes a path-valued frontmatter field into the bundle-relative paths it might name, most likely first.
- heading_
slug - Derives a standard Markdown anchor slug from a heading text.
- init_
bundle - Initializes a new OKF bundle at
rootwithindex.md,log.md, and optionally an initial concept. - lint_
bundle - Lints a loaded bundle, returning all findings.
- lint_
bundle_ at - Lints a bundle, returning all opinionated formatting and style findings.
- matches_
heading - Checks whether a heading text matches a search query by title, slug, or normalized spacing.
- merge_
concepts - Merges
sourceconcept intotargetconcept and deletessource. - move_
concept - Moves or renames a concept, rewriting all incoming links and rebasing outgoing links.
- normalize_
iso_ datetime - Normalizes a date or datetime string to an ISO-8601 datetime with an explicit UTC offset (
Z). - parse_
heading_ line - Parses a single line as an ATX heading (
#through######). - rebase_
relative_ path - Rebases a relative file/resource path from
old_dirtonew_dir. - remediate_
bundle - Remediates an entire bundle directory tree.
- remediate_
document - Remediates and migrates a single
Document. - remediate_
file - Remediates a single file on disk.
- remediate_
log - Remediates a parsed
log.mdfile (consolidating duplicate date headings). - remove_
concept - Safely removes a concept from the bundle.
- rename_
section - Renames a section heading within a concept and updates all internal and external anchor links.
- rewrite_
markdown_ links - Rewrites inline markdown links in a document body using a callback function.
- split_
concept - Splits a section from an existing concept into a new concept.
- validate_
bundle - Validates a loaded bundle, returning all findings.
- validate_
bundle_ at - Validates a bundle, additionally reporting concepts that are stale on
today.