## Turtle — OKF vs RDF/Linked Data/SPARQL: Compare and Contrast
## Source: https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing/
## Generated: 2026-06-13 | Model: Claude Sonnet 4.6 | Env: Claude Code

@prefix :       <#> .
@prefix schema: <http://schema.org/> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:    <http://www.w3.org/2002/07/owl#> .
@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix skos:   <http://www.w3.org/2004/02/skos/core#> .
@prefix prov:   <http://www.w3.org/ns/prov#> .

# ── Self-describing document entity ──────────────────────────────────────────

<> a schema:CreativeWork ;
    schema:name "OKF vs RDF/Linked Data/SPARQL — Compare and Contrast"@en ;
    schema:description "A structured RDF comparison of the Open Knowledge Format (OKF) against RDF, Linked Data principles, and SPARQL — showcasing that RDF-Turtle achieves every goal OKF pursues while adding machine-queryability, formal semantics, global identity, and standards-based interoperability that Markdown+YAML cannot provide."@en ;
    schema:dateCreated "2026-06-13T00:00:00Z"^^xsd:dateTime ;
    schema:dateModified "2026-06-13T00:00:00Z"^^xsd:dateTime ;
    schema:dateModified "2026-06-14T12:00:00Z"^^xsd:dateTime ;
    schema:author <https://www.linkedin.com/in/kidehen#this> ;
    schema:accountablePerson <https://www.linkedin.com/in/kidehen#this> ;
    schema:isBasedOn <https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing/> ;
    prov:wasGeneratedBy [
        a prov:SoftwareAgent ;
        schema:name "kg-generator"@en ;
        schema:url <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator> ;
        prov:actedOnBehalfOf <https://www.linkedin.com/in/kidehen#this>
    ], [
        a prov:SoftwareAgent ;
        schema:name "rdf-infographic-skill"@en ;
        schema:url <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/rdf-infographic-skill> ;
        prov:actedOnBehalfOf <https://www.linkedin.com/in/kidehen#this>
    ] ;
    schema:about :ComparisonStudy .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 1: The Two Approaches Being Compared
# ══════════════════════════════════════════════════════════════════════════════

:OKFApproach a schema:SoftwareApplication, schema:DefinedTerm ;
    schema:name "Open Knowledge Format (OKF)"@en ;
    schema:alternateName "OKF"@en ;
    schema:description "A markdown-and-YAML-based format for representing knowledge bundles for AI agent consumption. Uses directory hierarchies of .md files with YAML frontmatter. Format: text/markdown + application/yaml. Queryable via: file system traversal, grep, LLM prompting."@en ;
    schema:version "0.1"@en ;
    schema:datePublished "2026-06-12"^^xsd:date ;
    schema:creator <https://cloud.google.com/> ;
    schema:codeRepository <https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf> ;
    schema:encodingFormat "text/markdown"@en, "application/yaml"@en .

:RDFLinkedDataApproach a schema:SoftwareApplication, schema:DefinedTerm ;
    schema:name "RDF / Linked Data / SPARQL"@en ;
    schema:alternateName "RDF+LD+SPARQL"@en ;
    schema:description "The W3C standards stack for structured knowledge representation and querying. Uses the Resource Description Framework (RDF) for triple-based data modeling, Linked Data principles (four rules by Tim Berners-Lee) for global dereferenceable identifiers, and SPARQL for declarative querying and federation across knowledge graphs."@en ;
    schema:datePublished "1999"@en ;
    schema:creator <http://dbpedia.org/resource/World_Wide_Web_Consortium> ;
    schema:encodingFormat "text/turtle"@en, "application/ld+json"@en, "application/rdf+xml"@en, "application/n-triples"@en ;
    rdfs:seeAlso <https://www.w3.org/RDF/>, <https://www.w3.org/TR/sparql11-query/>, <https://www.w3.org/DesignIssues/LinkedData.html> ;
    owl:sameAs <http://dbpedia.org/resource/Linked_data>,
               <http://dbpedia.org/resource/Resource_Description_Framework>,
               <http://dbpedia.org/resource/SPARQL>,
               <http://www.wikidata.org/entity/Q515701>,
               <http://www.wikidata.org/entity/Q54872>,
               <http://www.wikidata.org/entity/Q54871> .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 2: Shared Goals (What Both Approaches Pursue)
# ══════════════════════════════════════════════════════════════════════════════

:SharedGoals a schema:ItemList ;
    schema:name "Shared Goals"@en ;
    schema:description "Objectives that both OKF and RDF/Linked Data/SPARQL are designed to address."@en ;
    schema:itemListElement
        :GoalPortability,
        :GoalInteroperability,
        :GoalVendorNeutrality,
        :GoalMachineReadability,
        :GoalKnowledgePersistence,
        :GoalProducerConsumerSeparation .

:GoalPortability a schema:ListItem ;
    schema:position 1 ;
    schema:name "Portability"@en ;
    schema:description "Knowledge should survive moving between systems, organizations, tools, and AI model providers."@en .

:GoalInteroperability a schema:ListItem ;
    schema:position 2 ;
    schema:name "Interoperability"@en ;
    schema:description "Different producers' knowledge should be consumable by different consumers without custom translation."@en .

:GoalVendorNeutrality a schema:ListItem ;
    schema:position 3 ;
    schema:name "Vendor Neutrality"@en ;
    schema:description "The format and tooling should not require a specific cloud provider, database engine, or AI framework."@en .

:GoalMachineReadability a schema:ListItem ;
    schema:position 4 ;
    schema:name "Machine Readability"@en ;
    schema:description "Knowledge should be parseable and processable by software agents without human interpretation."@en .

:GoalKnowledgePersistence a schema:ListItem ;
    schema:position 5 ;
    schema:name "Knowledge Persistence"@en ;
    schema:description "Knowledge should outlive individual tools, teams, and platforms — living alongside code in version control."@en .

:GoalProducerConsumerSeparation a schema:ListItem ;
    schema:position 6 ;
    schema:name "Producer/Consumer Separation"@en ;
    schema:description "Knowledge writers (humans, AI enrichers) should be decoupled from knowledge readers (AI agents, visualizers, search indexes)."@en .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 3: Comparison Matrix (Dimension-by-Dimension)
# ══════════════════════════════════════════════════════════════════════════════

:ComparisonStudy a schema:CreativeWork ;
    schema:name "OKF vs RDF+LD+SPARQL: Structured Comparison"@en ;
    schema:description "A dimension-by-dimension comparison of OKF and RDF/Linked Data/SPARQL across key properties relevant to AI knowledge sharing and semantic interoperability."@en ;
    schema:hasPart
        :DimIdentity,
        :DimQueryability,
        :DimSemanticFidelity,
        :DimFederation,
        :DimInference,
        :DimGlobalLinking,
        :DimVersionControl,
        :DimHumanReadability,
        :DimTooling,
        :DimAdoptionBarrier,
        :DimOntologySupport,
        :DimLLMFriendliness .

# ── Dimension 1: Entity Identity ─────────────────────────────────────────────

:DimIdentity a schema:PropertyValue ;
    schema:name "Entity Identity"@en ;
    schema:description "How entities (tables, metrics, people, datasets) are identified across documents and systems."@en ;
    schema:hasPart :DimIdentityOKF, :DimIdentityRDF .

:DimIdentityOKF a schema:PropertyValue ;
    schema:name "OKF Entity Identity"@en ;
    schema:value "Relative file paths within a bundle (e.g., /tables/customers.md). Breaks when the bundle is restructured, renamed, or moved. No global uniqueness guarantee — two bundles can have identical paths for different entities."@en ;
    schema:additionalType "limitation"@en .

:DimIdentityRDF a schema:PropertyValue ;
    schema:name "RDF Entity Identity"@en ;
    schema:value "IRIs (Internationalized Resource Identifiers) — globally unique, dereferenceable, persistent. An entity like <https://example.com/entity/customer/42> is unambiguous anywhere on the Web, forever. Linked Data Principle 2 (use HTTP URIs) and Principle 3 (dereference them) make IRIs both identifiers and access points."@en ;
    schema:additionalType "advantage"@en ;
    rdfs:seeAlso <https://www.w3.org/DesignIssues/LinkedData.html> .

# ── Dimension 2: Queryability ─────────────────────────────────────────────────

:DimQueryability a schema:PropertyValue ;
    schema:name "Queryability"@en ;
    schema:description "The mechanism and expressiveness of querying knowledge held in each format."@en ;
    schema:hasPart :DimQueryabilityOKF, :DimQueryabilityRDF .

:DimQueryabilityOKF a schema:PropertyValue ;
    schema:name "OKF Queryability"@en ;
    schema:value "File-system traversal, grep, YAML parsing, or passing bundle contents to an LLM context window. No standard query language. Cannot JOIN across documents or aggregate across an entire corpus without custom code. Scales poorly with bundle size."@en ;
    schema:additionalType "limitation"@en .

:DimQueryabilityRDF a schema:PropertyValue ;
    schema:name "RDF/SPARQL Queryability"@en ;
    schema:value "SPARQL 1.1 — a W3C standard declarative query language for RDF. Supports SELECT, CONSTRUCT, ASK, DESCRIBE; OPTIONAL, FILTER, UNION; aggregates (GROUP BY, COUNT, SUM, AVG); property paths (SPARQL 1.1); and federated queries across remote endpoints (SERVICE). Queries are reproducible, auditable, and executable by any standards-compliant triplestore."@en ;
    schema:additionalType "advantage"@en ;
    rdfs:seeAlso <https://www.w3.org/TR/sparql11-query/> .

:SampleSPARQLQuery1 a schema:CreativeWork ;
    schema:name "SPARQL: Find all tables that join with the Orders table"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """
PREFIX okf: <okf-open-knowledge-format-ontology.ttl#okf->
PREFIX schema: <http://schema.org/>

SELECT ?relatedTable ?joinKey WHERE {
  ?table schema:name \"Orders Table\"@en .
  ?table okf:joinsWith ?relatedTable .
  ?table okf:joinKey ?joinKey .
}
    """@en ;
    schema:description "Demonstrates how SPARQL can discover join relationships that OKF can only document in prose."@en .

:SampleSPARQLQuery2 a schema:CreativeWork ;
    schema:name "SPARQL: Find all metrics derived from a given table"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """
PREFIX okf: <okf-open-knowledge-format-ontology.ttl#okf->
PREFIX schema: <http://schema.org/>

SELECT ?metric ?description WHERE {
  ?metric a okf:MetricDocument .
  ?metric okf:definesMetric ?table .
  ?table schema:name ?tableName .
  ?metric schema:description ?description .
  FILTER(CONTAINS(?tableName, \"Orders\"))
}
    """@en ;
    schema:description "A SPARQL query that finds all metrics derived from the Orders table — trivial in RDF, impossible without LLM interpretation in OKF."@en .

:SampleSPARQLQuery3 a schema:CreativeWork ;
    schema:name "SPARQL: Federated query across two knowledge graphs"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """
PREFIX schema: <http://schema.org/>

SELECT ?entity ?label WHERE {
  ?entity schema:name ?label .
  SERVICE <https://dbpedia.org/sparql> {
    ?entity a <http://dbpedia.org/ontology/Company> .
  }
}
    """@en ;
    schema:description "Demonstrates SPARQL federation — a local knowledge graph can be joined with DBpedia or Wikidata in a single query. OKF has no equivalent mechanism."@en .

# ── Dimension 3: Semantic Fidelity ────────────────────────────────────────────

:DimSemanticFidelity a schema:PropertyValue ;
    schema:name "Semantic Fidelity"@en ;
    schema:description "Whether the format can formally express the meaning, type, and relationships of entities."@en ;
    schema:hasPart :DimSemanticFidelityOKF, :DimSemanticFidelityRDF .

:DimSemanticFidelityOKF a schema:PropertyValue ;
    schema:name "OKF Semantic Fidelity"@en ;
    schema:value "Semantics are implicit in prose. The YAML 'type' field is a free-form string — 'BigQuery Table' and 'bq_table' are indistinguishable to software. Relationships between documents are encoded only as relative file-path links, carrying no formal relationship type."@en ;
    schema:additionalType "limitation"@en .

:DimSemanticFidelityRDF a schema:PropertyValue ;
    schema:name "RDF Semantic Fidelity"@en ;
    schema:value "Every entity has an explicit RDF type (rdf:type / a) drawn from formal ontologies (OWL, RDFS, schema.org). Every relationship is a named, typed predicate. Datatypes are XSD-encoded. OWL axioms (subClassOf, equivalentClass, inverseOf, transitiveProperty) enable inference. Semantics are machine-verifiable, not human-interpretable conventions."@en ;
    schema:additionalType "advantage"@en .

# ── Dimension 4: Federation / Cross-Graph Linking ────────────────────────────

:DimFederation a schema:PropertyValue ;
    schema:name "Cross-Graph Federation"@en ;
    schema:description "Whether knowledge from multiple sources can be combined in a single query without pre-merging."@en ;
    schema:hasPart :DimFederationOKF, :DimFederationRDF .

:DimFederationOKF a schema:PropertyValue ;
    schema:name "OKF Federation"@en ;
    schema:value "Not supported natively. To combine two OKF bundles, a consumer must merge directories or custom-code a multi-bundle reader. There is no standard linking mechanism between bundles from different organizations."@en ;
    schema:additionalType "limitation"@en .

:DimFederationRDF a schema:PropertyValue ;
    schema:name "RDF/SPARQL Federation"@en ;
    schema:value "SPARQL 1.1 Federation (SERVICE keyword) allows a query to span multiple remote SPARQL endpoints in a single statement. IRIs create a shared identity layer — the same entity (e.g., <https://www.linkedin.com/in/kidehen#this>) can appear in millions of independent knowledge graphs and be recognized as the same person."@en ;
    schema:additionalType "advantage"@en .

# ── Dimension 5: Inference / Reasoning ──────────────────────────────────────

:DimInference a schema:PropertyValue ;
    schema:name "Inference and Reasoning"@en ;
    schema:description "Whether new knowledge can be automatically derived from existing knowledge using formal rules."@en ;
    schema:hasPart :DimInferenceOKF, :DimInferenceRDF .

:DimInferenceOKF a schema:PropertyValue ;
    schema:name "OKF Inference"@en ;
    schema:value "None. All reasoning must be done by an LLM reading the prose — which is expensive, non-deterministic, and not reproducible. The format carries no formal axioms that enable rule-based deduction."@en ;
    schema:additionalType "limitation"@en .

:DimInferenceRDF a schema:PropertyValue ;
    schema:name "RDF/OWL Inference"@en ;
    schema:value "RDFS inference (subClassOf, domain, range) and OWL inference (inverse properties, transitive properties, equivalentClass, cardinality restrictions) allow new triples to be derived automatically by a reasoner without additional data entry. This is deterministic, auditable, and reproducible."@en ;
    schema:additionalType "advantage"@en .

# ── Dimension 6: Global Linking via Linked Data Principles ──────────────────

:DimGlobalLinking a schema:PropertyValue ;
    schema:name "Global Web-Scale Linking"@en ;
    schema:description "Whether knowledge entities can be linked to external Web resources and other knowledge graphs without breaking portability."@en ;
    schema:hasPart :DimGlobalLinkingOKF, :DimGlobalLinkingRDF .

:DimGlobalLinkingOKF a schema:PropertyValue ;
    schema:name "OKF Global Linking"@en ;
    schema:value "The 'resource' field holds a URL to an external system (e.g., BigQuery console URL). This is a documentation link only — it carries no formal semantic relationship, is not dereferenceable as a knowledge entity, and cannot be traversed by a SPARQL or RDF tool."@en ;
    schema:additionalType "limitation"@en .

:DimGlobalLinkingRDF a schema:PropertyValue ;
    schema:name "RDF/Linked Data Global Linking"@en ;
    schema:value "Tim Berners-Lee's four Linked Data principles: (1) Use IRIs as names for things. (2) Use HTTP IRIs so names can be looked up. (3) When looked up, return useful RDF information. (4) Include links to other IRIs so agents can discover more. This creates a global, traversable knowledge graph — the Web of Data. Any RDF resource can dereference to its description and follow links to connected resources across organizational boundaries."@en ;
    schema:additionalType "advantage"@en ;
    rdfs:seeAlso <https://www.w3.org/DesignIssues/LinkedData.html> .

:LinkedDataPrinciples a schema:ItemList ;
    schema:name "Tim Berners-Lee's Four Linked Data Principles"@en ;
    schema:url <https://www.w3.org/DesignIssues/LinkedData.html> ;
    schema:itemListElement
        :LD_Principle1, :LD_Principle2, :LD_Principle3, :LD_Principle4 ;
    skos:related <http://dbpedia.org/resource/Linked_data>,
                 <http://www.wikidata.org/entity/Q515701> .

:LD_Principle1 a schema:ListItem ;
    schema:position 1 ;
    schema:name "Use IRIs as names for things"@en ;
    schema:description "Every entity — a person, a table, a metric, a concept — must have a globally unique Internationalized Resource Identifier (IRI) as its identity. This makes entities unambiguous across any system."@en .

:LD_Principle2 a schema:ListItem ;
    schema:position 2 ;
    schema:name "Use HTTP IRIs so names can be looked up"@en ;
    schema:description "IRIs should use the HTTP scheme so that any agent can resolve the identifier over the Web to learn about the entity."@en .

:LD_Principle3 a schema:ListItem ;
    schema:position 3 ;
    schema:name "Return useful RDF information when IRIs are dereferenced"@en ;
    schema:description "When an HTTP IRI is dereferenced, the response should include structured RDF data describing the entity — enabling machine-readable discovery."@en .

:LD_Principle4 a schema:ListItem ;
    schema:position 4 ;
    schema:name "Include links to other IRIs"@en ;
    schema:description "RDF descriptions should contain owl:sameAs and other linking predicates to related entities in external knowledge graphs, enabling agents to navigate the Web of Data."@en .

# ── Dimension 7: Version Control Integration ──────────────────────────────────

:DimVersionControl a schema:PropertyValue ;
    schema:name "Version Control Integration"@en ;
    schema:description "How naturally each format integrates with git-based version control workflows."@en ;
    schema:hasPart :DimVersionControlOKF, :DimVersionControlRDF .

:DimVersionControlOKF a schema:PropertyValue ;
    schema:name "OKF Version Control"@en ;
    schema:value "Excellent. Markdown files are human-readable plain text — git diffs are meaningful, PR reviews are natural. This is a genuine strength of OKF and is shared with RDF-Turtle."@en ;
    schema:additionalType "parity"@en .

:DimVersionControlRDF a schema:PropertyValue ;
    schema:name "RDF-Turtle Version Control"@en ;
    schema:value "Excellent. Turtle (.ttl) is human-readable plain text with meaningful diffs. JSON-LD is also diff-friendly. RDF/XML diffs are harder. For the same reason OKF works in git, RDF-Turtle works in git — with the added benefit that the diff of a Turtle file is semantically interpretable by a SPARQL tool."@en ;
    schema:additionalType "parity"@en .

# ── Dimension 8: Human Readability ──────────────────────────────────────────

:DimHumanReadability a schema:PropertyValue ;
    schema:name "Human Readability"@en ;
    schema:description "How naturally a human can read and write the format without specialized tooling."@en ;
    schema:hasPart :DimHumanReadabilityOKF, :DimHumanReadabilityRDF .

:DimHumanReadabilityOKF a schema:PropertyValue ;
    schema:name "OKF Human Readability"@en ;
    schema:value "High. Markdown is the most widely adopted human-readable structured text format. YAML frontmatter is familiar to developers. Any editor renders it."@en ;
    schema:additionalType "advantage"@en .

:DimHumanReadabilityRDF a schema:PropertyValue ;
    schema:name "RDF-Turtle Human Readability"@en ;
    schema:value "Good. Turtle syntax (prefix declarations, subject-predicate-object triples) is considerably more readable than RDF/XML or N-Triples. Editors with Turtle support (VS Code + Stardog RDF extensions) provide syntax highlighting. JSON-LD is machine-generated but readable. The learning curve for RDF's data model is steeper than Markdown for non-technical users."@en ;
    schema:additionalType "tradeoff"@en .

# ── Dimension 9: Ontology / Vocabulary Reuse ─────────────────────────────────

:DimOntologySupport a schema:PropertyValue ;
    schema:name "Ontology and Vocabulary Reuse"@en ;
    schema:description "Whether the format supports formal reuse of shared vocabularies, enabling semantic interoperability across unrelated organizations."@en ;
    schema:hasPart :DimOntologySupportOKF, :DimOntologySupportRDF .

:DimOntologySupportOKF a schema:PropertyValue ;
    schema:name "OKF Ontology Support"@en ;
    schema:value "None. OKF deliberately avoids ontologies to lower adoption barriers. The 'type' field is a free-form string with no shared vocabulary. Two organizations' OKF bundles using 'BigQuery Table' and 'bq-table' represent the same concept but are semantically invisible to software."@en ;
    schema:additionalType "limitation"@en .

:DimOntologySupportRDF a schema:PropertyValue ;
    schema:name "RDF Ontology Support"@en ;
    schema:value "Core strength. Any RDF document can import and use established vocabularies: schema.org (1,000+ terms, used by Google, Microsoft, Yandex), Dublin Core, FOAF, PROV-O, SKOS, OWL, RDFS. Organizations reusing <http://schema.org/Dataset> are automatically interoperable with every other dataset described with schema.org — no custom mapping required."@en ;
    schema:additionalType "advantage"@en .

# ── Dimension 10: LLM Friendliness ──────────────────────────────────────────

:DimLLMFriendliness a schema:PropertyValue ;
    schema:name "LLM Friendliness"@en ;
    schema:description "How naturally the format fits into LLM context windows and agent workflows."@en ;
    schema:hasPart :DimLLMFriendlinessOKF, :DimLLMFriendlinessRDF .

:DimLLMFriendlinessOKF a schema:PropertyValue ;
    schema:name "OKF LLM Friendliness"@en ;
    schema:value "High. Markdown is abundant in LLM training data. YAML frontmatter is well-understood by frontier models. OKF documents fit naturally into context windows. This is OKF's primary design rationale."@en ;
    schema:additionalType "advantage"@en .

:DimLLMFriendlinessRDF a schema:PropertyValue ;
    schema:name "RDF-Turtle LLM Friendliness"@en ;
    schema:value "High. Frontier LLMs (Claude, GPT-4+, Gemini) generate valid Turtle and JSON-LD reliably. SPARQL queries can be generated from natural language with high accuracy. RDF-Turtle is well-represented in training data. The explicit structure of triples (subject/predicate/object) is arguably more parseable by LLMs than prose-embedded YAML because it has no ambiguous nesting."@en ;
    schema:additionalType "advantage"@en .

# ── Dimension 11: Adoption Barrier ───────────────────────────────────────────

:DimAdoptionBarrier a schema:PropertyValue ;
    schema:name "Adoption Barrier"@en ;
    schema:description "The practical effort required for an engineering team to start producing and consuming knowledge in this format."@en ;
    schema:hasPart :DimAdoptionBarrierOKF, :DimAdoptionBarrierRDF .

:DimAdoptionBarrierOKF a schema:PropertyValue ;
    schema:name "OKF Adoption Barrier"@en ;
    schema:value "Very low. Any engineer who knows Markdown and YAML (essentially all web developers) can produce OKF documents with zero new tooling. Consuming is a file-system read. This is intentional and is OKF's core competitive advantage over more formal specifications."@en ;
    schema:additionalType "advantage"@en .

:DimAdoptionBarrierRDF a schema:PropertyValue ;
    schema:name "RDF/LD/SPARQL Adoption Barrier"@en ;
    schema:value "Moderate. Engineers must learn the triple-based data model, IRI conventions, and at minimum Turtle syntax. SPARQL requires learning a new query language. Setting up a triplestore (Virtuoso, Oxigraph, Jena Fuseki) requires infrastructure. However, with LLM assistance generating Turtle and SPARQL from natural language, the practical barrier in 2026 is dramatically lower than in 2010."@en ;
    schema:additionalType "tradeoff"@en .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 4: Synthesis — What RDF/LD/SPARQL Adds That OKF Cannot
# ══════════════════════════════════════════════════════════════════════════════

:RDFAdvantagesSummary a schema:ItemList ;
    schema:name "What RDF/Linked Data/SPARQL Adds Beyond OKF"@en ;
    schema:description "Capabilities present in the RDF+LD+SPARQL stack that the OKF Markdown+YAML approach cannot provide."@en ;
    schema:itemListElement
        :AdvGlobalIdentity,
        :AdvSPARQL,
        :AdvFederation,
        :AdvInference,
        :AdvOntologyReuse,
        :AdvLinkedDataWeb,
        :AdvFormalSemantics,
        :AdvProvenance .

:AdvGlobalIdentity a schema:ListItem ;
    schema:position 1 ;
    schema:name "Global, Dereferenceable Identity"@en ;
    schema:description "IRIs give every entity an identity that is globally unique, Web-resolvable, and stable across organizational boundaries. A table, metric, or person referenced in an OKF bundle has no identity beyond its file path; the same entity in RDF has an IRI that any agent on the Web can look up."@en ;
    skos:related <http://dbpedia.org/resource/Internationalized_resource_identifier>,
               <http://www.wikidata.org/entity/Q424583> .

:AdvSPARQL a schema:ListItem ;
    schema:position 2 ;
    schema:name "Declarative, Standard Query Language"@en ;
    schema:description "SPARQL provides SELECT, CONSTRUCT, ASK, DESCRIBE, aggregates, property paths, and OPTIONAL patterns — a complete query algebra over structured knowledge. OKF's only query mechanism is 'hand the contents to an LLM' or 'write custom parsing code.'"@en ;
    owl:sameAs <http://dbpedia.org/resource/SPARQL>,
               <http://www.wikidata.org/entity/Q54871> .

:AdvFederation a schema:ListItem ;
    schema:position 3 ;
    schema:name "Cross-Graph Federation"@en ;
    schema:description "SPARQL SERVICE allows a single query to span your local knowledge graph, DBpedia, Wikidata, and any other SPARQL endpoint simultaneously. OKF bundles are isolated islands — combining them requires custom engineering."@en ;
    skos:related <http://dbpedia.org/resource/Federated_database> .

:AdvInference a schema:ListItem ;
    schema:position 4 ;
    schema:name "Deterministic Logical Inference"@en ;
    schema:description "OWL and RDFS reasoners can derive new true statements from existing RDF — e.g., that all MetricDocuments are ConceptDocuments (subClassOf), or that if A joinsWith B then B joinsWith A (symmetric property). Inference is deterministic and reproducible; LLM-based reasoning over OKF is probabilistic."@en ;
    skos:related <http://dbpedia.org/resource/Inference_engine>,
               <http://www.wikidata.org/entity/Q1341685> .

:AdvOntologyReuse a schema:ListItem ;
    schema:position 5 ;
    schema:name "Shared Vocabularies and Semantic Interoperability"@en ;
    schema:description "Using schema.org, PROV-O, SKOS, FOAF, and domain ontologies means your knowledge is automatically interoperable with every other publisher using those vocabularies. OKF's free-form 'type' string creates semantic islands."@en ;
    skos:related <http://dbpedia.org/resource/Semantic_interoperability>,
               <http://dbpedia.org/resource/Ontology_(information_science)>,
               <http://www.wikidata.org/entity/Q5258530>,
               <http://www.wikidata.org/entity/Q324254> .

:AdvLinkedDataWeb a schema:ListItem ;
    schema:position 6 ;
    schema:name "Participation in the Web of Data"@en ;
    schema:description "RDF and Linked Data connect your knowledge graph to billions of existing RDF triples in DBpedia, Wikidata, schema.org-annotated web pages, government open data, and scientific datasets. OKF is a closed-world document format with no connection to this existing infrastructure."@en ;
    owl:sameAs <http://dbpedia.org/resource/Linked_data>,
               <http://www.wikidata.org/entity/Q515701> .

:AdvFormalSemantics a schema:ListItem ;
    schema:position 7 ;
    schema:name "Formal, Machine-Verifiable Semantics"@en ;
    schema:description "RDF's semantics are mathematically defined. A SHACL validator can verify that an RDF knowledge graph conforms to a shape — every table has a name, every metric has a definesMetric link, etc. OKF 'validation' means having an LLM check the prose."@en ;
    skos:related <http://dbpedia.org/resource/SHACL>,
               <http://dbpedia.org/resource/Description_logic>,
               <http://www.wikidata.org/entity/Q29377821> .

:AdvProvenance a schema:ListItem ;
    schema:position 8 ;
    schema:name "First-Class Provenance"@en ;
    schema:description "PROV-O (the W3C Provenance Ontology) is natively composable with RDF — every triple or named graph can carry prov:wasGeneratedBy, prov:wasAttributedTo, prov:generatedAtTime. OKF relies on the 'timestamp' YAML field and author conventions."@en ;
    owl:sameAs <http://dbpedia.org/resource/Provenance_(information_science)> .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 5: OKF Advantages OKF Genuinely Has
# ══════════════════════════════════════════════════════════════════════════════

:OKFAdvantagesSummary a schema:ItemList ;
    schema:name "Genuine OKF Advantages"@en ;
    schema:description "Areas where OKF has real advantages over RDF/LD/SPARQL that should be acknowledged."@en ;
    schema:itemListElement :OKFAdvMarkdown, :OKFAdvLowBarrier, :OKFAdvGitDiff, :OKFAdvLLMNative .

:OKFAdvMarkdown a schema:ListItem ;
    schema:position 1 ;
    schema:name "Human Authoring Experience"@en ;
    schema:description "Markdown is the most widely adopted human-readable structured format. Engineers write OKF documents without learning anything new. The barrier to contribution is zero."@en ;
    owl:sameAs <http://dbpedia.org/resource/Markdown>,
               <http://www.wikidata.org/entity/Q1193600> .

:OKFAdvLowBarrier a schema:ListItem ;
    schema:position 2 ;
    schema:name "Near-Zero Tooling Requirement"@en ;
    schema:description "OKF requires no triplestore, no ontology tooling, no SPARQL endpoint. Reading is a file open. Writing is a text editor. This is a real advantage for teams that cannot justify infrastructure."@en .

:OKFAdvGitDiff a schema:ListItem ;
    schema:position 3 ;
    schema:name "Excellent Git Diff Experience"@en ;
    schema:description "Markdown diffs in GitHub pull requests are rendered visually with change highlighting. This makes knowledge review workflows natural for teams already using GitHub."@en ;
    owl:sameAs <http://dbpedia.org/resource/Git>,
               <http://www.wikidata.org/entity/Q186055> .

:OKFAdvLLMNative a schema:ListItem ;
    schema:position 4 ;
    schema:name "LLM-Native from Day One"@en ;
    schema:description "OKF was designed specifically for LLM consumption. Its patterns (bundle directories, YAML frontmatter, relative links) align exactly with how retrieval-augmented generation (RAG) systems chunk and index documents."@en ;
    skos:related <http://dbpedia.org/resource/Large_language_model>,
               <http://dbpedia.org/resource/Retrieval-augmented_generation>,
               <http://www.wikidata.org/entity/Q115305900>,
               <http://www.wikidata.org/entity/Q121362277> .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 6: The Convergence Thesis
# ══════════════════════════════════════════════════════════════════════════════

:ConvergenceThesis a schema:CreativeWork ;
    schema:name "The Convergence Thesis: OKF and RDF as Complementary Layers"@en ;
    schema:description "OKF and RDF/LD/SPARQL are not mutually exclusive. OKF solves the problem of knowledge capture and authoring for teams with zero semantic web expertise. RDF/LD/SPARQL solves the problem of knowledge integration, reasoning, and Web-scale federation. The optimal architecture for enterprise knowledge sharing is OKF-style markdown as the human authoring layer, with an RDF extraction layer that converts OKF bundles into queryable knowledge graphs — combining OKF's ease of production with RDF's power for consumption."@en ;
    schema:author <https://www.linkedin.com/in/kidehen#this> ;
    schema:dateCreated "2026-06-13"^^xsd:date ;
    schema:about :OKFApproach, :RDFLinkedDataApproach .

:RDFAsOKFUpgrade a schema:HowTo ;
    schema:name "How to Upgrade an OKF Bundle to RDF/Linked Data"@en ;
    schema:description "Steps to transform an OKF Markdown+YAML knowledge bundle into a queryable RDF knowledge graph without abandoning the human authoring workflow."@en ;
    schema:step :StepExtractYAML, :StepMapToOntology, :StepMintIRIs, :StepLoadTriplestore, :StepExposeEndpoint .

:StepExtractYAML a schema:HowToStep ;
    schema:position 1 ;
    schema:name "Extract YAML frontmatter"@en ;
    schema:text "Parse the YAML blocks from all OKF .md files into a structured dict/object. This is trivial with Python's frontmatter or yaml libraries."@en .

:StepMapToOntology a schema:HowToStep ;
    schema:position 2 ;
    schema:name "Map YAML fields to RDF properties"@en ;
    schema:text "Map 'type' to rdf:type using a controlled vocabulary (e.g., okf:TableDocument); 'title' to schema:name; 'description' to schema:description; 'resource' to schema:url; 'tags' to schema:keywords; 'timestamp' to schema:dateModified."@en .

:StepMintIRIs a schema:HowToStep ;
    schema:position 3 ;
    schema:name "Mint HTTP IRIs for each document"@en ;
    schema:text "Replace relative file paths with HTTP IRIs. For bundle-local entities, use a base IRI (e.g., <https://knowledge.example.com/sales/tables/orders#this>). For external resources, use the 'resource' URL directly as the IRI."@en .

:StepLoadTriplestore a schema:HowToStep ;
    schema:position 4 ;
    schema:name "Load into a triplestore"@en ;
    schema:text "Load the generated Turtle into a SPARQL-capable triplestore (Virtuoso, Oxigraph, Apache Jena Fuseki, Stardog). The entire OKF bundle is now queryable with full SPARQL 1.1."@en .

:StepExposeEndpoint a schema:HowToStep ;
    schema:position 5 ;
    schema:name "Expose a SPARQL endpoint"@en ;
    schema:text "Make the triplestore's SPARQL endpoint available to AI agents and tools. Agents can now issue precise, reproducible, federable queries instead of relying on LLM-mediated prose interpretation."@en .
