## Turtle — Open Knowledge Format (OKF) Instance Data
## 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 okf:    <https://linkeddata.uriburner.com/DAV/demos/daas/okf-open-knowledge-format-ontology.ttl#okf-> .
@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 foaf:   <http://xmlns.com/foaf/0.1/> .
@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, owl:Ontology ;
    schema:name "Open Knowledge Format (OKF) — Instance Data"@en ;
    schema:description "RDF instance data describing the OKF v0.1 specification, its authors, design principles, example knowledge bundles, and reference implementations — as reported in the Google Cloud blog post of June 12, 2026."@en ;
    schema:dateCreated "2026-06-13T00:00:00Z"^^xsd:dateTime ;
    schema:dateModified "2026-06-15T00:00:00Z"^^xsd:dateTime ;
    schema:author <https://www.linkedin.com/in/kidehen#this> ;
    schema:isBasedOn :okfBlogPost ;
    prov:wasGeneratedBy <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator#this> ;
    schema:about :OKFSpecification ;
    owl:imports <https://linkeddata.uriburner.com/DAV/demos/daas/okf-open-knowledge-format-ontology.ttl> .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 1: Source Blog Post
# ══════════════════════════════════════════════════════════════════════════════

:okfBlogPost a schema:BlogPosting ;
    schema:name "Introducing the Open Knowledge Format"@en ;
    schema:description "Google Cloud's announcement of OKF v0.1 — an open specification that formalizes the LLM-wiki pattern into a portable, interoperable, vendor-neutral format for AI knowledge sharing."@en ;
    schema:url <https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing/> ;
    schema:datePublished "2026-06-12"^^xsd:date ;
    schema:publisher :GoogleCloud ;
    schema:author :SamMcVeety, :AmirHormati ;
    schema:keywords "OKF"@en, "Open Knowledge Format"@en, "BigQuery"@en, "AI agents"@en, "knowledge sharing"@en, "data catalog"@en, "LLM wiki"@en ;
    schema:about :OKFSpecification ;
    schema:isPartOf <https://cloud.google.com/blog/products/data-analytics/> .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 2: Authors
# ══════════════════════════════════════════════════════════════════════════════

:SamMcVeety a schema:Person, foaf:Person ;
    schema:name "Sam McVeety"@en ;
    schema:jobTitle "Tech Lead, Data Analytics, Engineering, Data Cloud"@en ;
    schema:worksFor :GoogleCloud ;
    schema:affiliation :GoogleCloudDataAnalytics ;
    foaf:name "Sam McVeety" .

:AmirHormati a schema:Person, foaf:Person ;
    schema:name "Amir Hormati"@en ;
    schema:jobTitle "Tech Lead, BigQuery, Engineering, Data Cloud"@en ;
    schema:worksFor :GoogleCloud ;
    schema:affiliation :GoogleCloudDataAnalytics ;
    foaf:name "Amir Hormati" .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 3: Organizations
# ══════════════════════════════════════════════════════════════════════════════

:GoogleCloud a schema:Organization ;
    schema:name "Google Cloud"@en ;
    schema:description "Google's cloud computing division, providing infrastructure, data analytics, AI, and developer tools."@en ;
    schema:url <https://cloud.google.com/> ;
    schema:parentOrganization :Google .

:Google a schema:Organization ;
    schema:name "Google"@en ;
    schema:url <https://www.google.com/> .

:GoogleCloudDataAnalytics a schema:Organization ;
    schema:name "Google Cloud Data Analytics"@en ;
    schema:description "The Data Cloud engineering division at Google Cloud, responsible for BigQuery, Looker, and data analytics services."@en ;
    schema:parentOrganization :GoogleCloud .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 4: The OKF Specification
# ══════════════════════════════════════════════════════════════════════════════

:OKFSpecification a schema:TechArticle, schema:SoftwareSourceCode ;
    schema:name "Open Knowledge Format (OKF) v0.1"@en ;
    schema:description "A vendor-neutral, open specification for representing metadata, context, and curated knowledge that modern AI systems need. OKF formalizes the LLM-wiki pattern into a portable, interoperable format using Markdown files with YAML frontmatter."@en ;
    schema:version "0.1"@en ;
    schema:datePublished "2026-06-12"^^xsd:date ;
    schema:creator :GoogleCloud ;
    schema:codeRepository <https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf> ;
    schema:license <https://opensource.org/licenses/Apache-2.0> ;
    okf:isVendorNeutral true ;
    okf:requiresSDK false ;
    schema:encodingFormat "text/markdown"@en, "application/yaml"@en ;
    schema:hasPart :OKFDesignPrinciples, :OKFCoreStructure, :OKFReferenceImplementations, :OKFFAQ, :OKFGlossary .

:OKFDesignPrinciples a schema:ItemList ;
    schema:name "OKF Design Principles"@en ;
    schema:description "The three foundational design principles of OKF v0.1."@en ;
    schema:itemListElement :PrincipleMinimallyOpinionated, :PrincipleProducerConsumerIndependence, :PrincipleFormatNotPlatform .

:PrincipleMinimallyOpinionated a schema:ListItem, schema:PropertyValue ;
    schema:position 1 ;
    schema:name "Minimally Opinionated"@en ;
    schema:value "Requires only one field ('type'). Everything else — types, additional fields, body sections — is left to the producer. The spec defines the interoperability surface, not the content model."@en .

:PrincipleProducerConsumerIndependence a schema:ListItem, schema:PropertyValue ;
    schema:position 2 ;
    schema:name "Producer/Consumer Independence"@en ;
    schema:value "Separates knowledge writing from consumption. Human-authored bundles can be consumed by AI agents; metadata exports can be browsed by visualizers; one LLM can synthesize knowledge for another LLM to consume."@en .

:PrincipleFormatNotPlatform a schema:ListItem, schema:PropertyValue ;
    schema:position 3 ;
    schema:name "Format, Not Platform"@en ;
    schema:value "Not tied to any cloud provider, database engine, model provider, or agent framework. No proprietary accounts, services, or SDKs required. Published as an open standard for broad adoption."@en .

# ── Core Structure ────────────────────────────────────────────────────────────

:OKFCoreStructure a schema:HowTo ;
    schema:name "OKF Core Document Structure"@en ;
    schema:description "The minimal structural conventions of an OKF ConceptDocument: YAML frontmatter with typed fields followed by a Markdown body."@en ;
    schema:step :StepYAMLFrontmatter, :StepMarkdownBody, :StepRelativeLinks .

:StepYAMLFrontmatter a schema:HowToStep ;
    schema:position 1 ;
    schema:name "YAML Frontmatter"@en ;
    schema:text "Every OKF document begins with a YAML block delimited by '---'. Required field: 'type' (string, producer-defined). Optional standard fields: 'title', 'description', 'resource' (URL), 'tags' (list), 'timestamp' (ISO 8601)."@en .

:StepMarkdownBody a schema:HowToStep ;
    schema:position 2 ;
    schema:name "Markdown Body"@en ;
    schema:text "Following the YAML block, the document body is standard GitHub-Flavored Markdown. Typical sections include Schema (table definitions), Joins, Sample Queries, Notes, and Related Documents."@en .

:StepRelativeLinks a schema:HowToStep ;
    schema:position 3 ;
    schema:name "Relative Links for Cross-Document Navigation"@en ;
    schema:text "Documents within a bundle reference each other via relative Markdown links (e.g., [customers](/tables/customers.md)). This preserves portability across hosting environments."@en .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 5: Example Knowledge Bundle — ACME Sales
# ══════════════════════════════════════════════════════════════════════════════

:AcmeSalesBundle a okf:KnowledgeBundle ;
    schema:name "ACME Sales Knowledge Bundle"@en ;
    schema:description "Example OKF bundle from the Google Cloud blog post illustrating the directory structure: a sales domain with datasets, tables (orders, customers), and metrics (weekly_active_users)."@en ;
    okf:bundleVersion "0.1"@en ;
    okf:isVendorNeutral true ;
    okf:hasIndex :SalesIndexDoc ;
    okf:hasDocument :SalesIndexDoc, :OrdersDbDatasetDoc, :OrdersTableDoc, :CustomersTableDoc, :WeeklyActiveUsersMetricDoc .

:SalesIndexDoc a okf:IndexDocument ;
    schema:name "Sales Domain Index"@en ;
    schema:description "Root index.md for the sales/ directory, listing all sub-domains (datasets, tables, metrics)."@en ;
    okf:documentType "Index"@en ;
    okf:isDocumentOf :AcmeSalesBundle .

:OrdersDbDatasetDoc a okf:DatasetDocument ;
    schema:name "Orders Database"@en ;
    schema:description "Dataset document for the ACME orders relational database, enumerating its tables and their relationships."@en ;
    okf:documentType "BigQuery Dataset"@en ;
    okf:resourceURL "https://console.cloud.google.com/bigquery?p=acme&d=sales"^^xsd:anyURI ;
    schema:keywords "sales"@en, "revenue"@en, "orders"@en ;
    okf:isDocumentOf :AcmeSalesBundle ;
    okf:hasDocument :OrdersTableDoc, :CustomersTableDoc .

:OrdersTableDoc a okf:TableDocument ;
    schema:name "Orders Table"@en ;
    schema:description "One row per completed customer order. Primary key: order_id. Contains foreign key to customers table on customer_id."@en ;
    okf:documentType "BigQuery Table"@en ;
    okf:resourceURL "https://console.cloud.google.com/bigquery?p=acme&d=sales&t=orders"^^xsd:anyURI ;
    schema:keywords "sales"@en, "revenue"@en ;
    schema:dateModified "2026-05-28T14:30:00Z"^^xsd:dateTime ;
    okf:joinsWith :CustomersTableDoc ;
    okf:joinKey "customer_id"@en ;
    okf:hasColumn :ColOrderId, :ColCustomerId, :ColOrderDate, :ColRevenue ;
    okf:isDocumentOf :AcmeSalesBundle .

:CustomersTableDoc a okf:TableDocument ;
    schema:name "Customers Table"@en ;
    schema:description "One row per registered customer. Primary key: customer_id. Referenced by orders table as a foreign key."@en ;
    okf:documentType "BigQuery Table"@en ;
    okf:resourceURL "https://console.cloud.google.com/bigquery?p=acme&d=sales&t=customers"^^xsd:anyURI ;
    schema:keywords "sales"@en, "customers"@en ;
    okf:joinsWith :OrdersTableDoc ;
    okf:joinKey "customer_id"@en ;
    okf:hasColumn :ColCustId, :ColCustName, :ColEmail, :ColSignupDate ;
    okf:isDocumentOf :AcmeSalesBundle .

:WeeklyActiveUsersMetricDoc a okf:MetricDocument ;
    schema:name "Weekly Active Users"@en ;
    schema:description "Count of distinct customers who placed at least one order in a given 7-day calendar week."@en ;
    okf:documentType "Metric"@en ;
    schema:keywords "kpi"@en, "users"@en, "sales"@en ;
    okf:definesMetric :OrdersTableDoc ;
    okf:isDocumentOf :AcmeSalesBundle .

# ── Column Definitions ────────────────────────────────────────────────────────

:ColOrderId a okf:ColumnDefinition ;
    okf:columnName "order_id"@en ;
    okf:columnDataType "STRING"@en ;
    schema:description "Globally unique order identifier."@en .

:ColCustomerId a okf:ColumnDefinition ;
    okf:columnName "customer_id"@en ;
    okf:columnDataType "STRING"@en ;
    schema:description "Foreign key referencing the customers table."@en ;
    okf:isForeignKeyTo :CustomersTableDoc .

:ColOrderDate a okf:ColumnDefinition ;
    okf:columnName "order_date"@en ;
    okf:columnDataType "TIMESTAMP"@en ;
    schema:description "UTC timestamp when the order was placed."@en .

:ColRevenue a okf:ColumnDefinition ;
    okf:columnName "revenue_usd"@en ;
    okf:columnDataType "FLOAT64"@en ;
    schema:description "Total order revenue in US dollars, inclusive of tax."@en .

:ColCustId a okf:ColumnDefinition ;
    okf:columnName "customer_id"@en ;
    okf:columnDataType "STRING"@en ;
    schema:description "Globally unique customer identifier. Primary key."@en .

:ColCustName a okf:ColumnDefinition ;
    okf:columnName "customer_name"@en ;
    okf:columnDataType "STRING"@en ;
    schema:description "Full display name of the customer."@en .

:ColEmail a okf:ColumnDefinition ;
    okf:columnName "email"@en ;
    okf:columnDataType "STRING"@en ;
    schema:description "Customer's primary contact email address."@en .

:ColSignupDate a okf:ColumnDefinition ;
    okf:columnName "signup_date"@en ;
    okf:columnDataType "DATE"@en ;
    schema:description "Calendar date on which the customer registered."@en .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 6: Reference Implementations
# ══════════════════════════════════════════════════════════════════════════════

:OKFReferenceImplementations a schema:ItemList ;
    schema:name "OKF Reference Implementations"@en ;
    schema:description "Three reference tools released by Google alongside OKF v0.1."@en ;
    schema:itemListElement :GoogleEnrichmentAgent, :GoogleStaticVisualizer, :GoogleSampleBundles .

:GoogleEnrichmentAgent a okf:EnrichmentAgent ;
    schema:name "Google OKF Enrichment Agent"@en ;
    schema:description "Walks BigQuery datasets; drafts OKF concept documents for every table and view; runs a second LLM pass to enrich concepts with citations, schemas, and join paths."@en ;
    schema:creator :GoogleCloud ;
    schema:codeRepository <https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf> ;
    okf:producedBy :GoogleCloud .

:GoogleStaticVisualizer a okf:Visualizer ;
    schema:name "Google OKF Static HTML Visualizer"@en ;
    schema:description "Converts any OKF bundle into an interactive graph view. Outputs a single self-contained HTML file. Requires no backend; data stays on the page."@en ;
    schema:creator :GoogleCloud ;
    schema:codeRepository <https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf> .

:GoogleSampleBundles a schema:DataCatalog ;
    schema:name "OKF Sample Bundles"@en ;
    schema:description "Pre-built OKF knowledge bundles for three public BigQuery datasets: GA4 e-commerce, Stack Overflow, and Bitcoin blockchain."@en ;
    schema:creator :GoogleCloud ;
    schema:hasPart :BundleGA4, :BundleStackOverflow, :BundleBitcoin .

:BundleGA4 a okf:KnowledgeBundle ;
    schema:name "GA4 E-Commerce Sample Bundle"@en ;
    schema:about <https://developers.google.com/analytics/bigquery/web-ecommerce-demo-dataset> .

:BundleStackOverflow a okf:KnowledgeBundle ;
    schema:name "Stack Overflow Public Dataset Bundle"@en ;
    schema:about <https://cloud.google.com/bigquery/public-data/stackoverflow> .

:BundleBitcoin a okf:KnowledgeBundle ;
    schema:name "Bitcoin Blockchain Dataset Bundle"@en ;
    schema:about <https://cloud.google.com/bigquery/public-data/bitcoin-blockchain> .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 7: Problem OKF Addresses
# ══════════════════════════════════════════════════════════════════════════════

:FragmentedContextProblem a schema:DefinedTerm ;
    schema:name "Fragmented Context Landscape"@en ;
    schema:description "The core problem OKF addresses: in most organizations, internal knowledge (table schemas, metric definitions, runbooks, API notices) is scattered across incompatible systems — proprietary metadata catalogs, wikis, code comments, and senior engineers' heads. Every agent builder solves context-assembly from scratch, and knowledge becomes locked behind specific platforms."@en ;
    schema:inDefinedTermSet :OKFProblemSpace ;
    skos:related <http://dbpedia.org/resource/Information_silo>,
                 <http://www.wikidata.org/entity/Q6031230> .

:PlatformLockInProblem a schema:DefinedTerm ;
    schema:name "Platform Lock-In"@en ;
    schema:description "Knowledge becomes inaccessible when stored in proprietary systems with vendor-specific APIs. Moving teams, organizations, or tools requires expensive migrations or context re-assembly."@en ;
    schema:inDefinedTermSet :OKFProblemSpace ;
    skos:related <http://dbpedia.org/resource/Vendor_lock-in>,
                 <http://www.wikidata.org/entity/Q1503227> .

:WikiAbandonmentProblem a schema:DefinedTerm ;
    schema:name "Wiki Abandonment"@en ;
    schema:description "Human-maintained wikis go stale because humans find bookkeeping (updating cross-references, touching multiple files for a single change) tedious. LLMs excel at precisely this class of task."@en ;
    schema:inDefinedTermSet :OKFProblemSpace .

:OKFProblemSpace a schema:DefinedTermSet ;
    schema:name "Problems Addressed by OKF"@en ;
    schema:hasDefinedTerm :FragmentedContextProblem, :PlatformLockInProblem, :WikiAbandonmentProblem .

# ── User of OKF (Kingsley's perspective) ─────────────────────────────────────

<https://www.linkedin.com/in/kidehen#this> a schema:Person, foaf:Person ;
    schema:name "Kingsley Uyi Idehen"@en ;
    schema:jobTitle "Founder & CEO"@en ;
    schema:worksFor <http://dbpedia.org/resource/OpenLink_Software> ;
    schema:description "Semantic Web pioneer and creator of Virtuoso — the triplestore and universal data server. Noted for championing Linked Data principles and SPARQL as the standard for structured knowledge representation since the early 2000s."@en ;
    foaf:name "Kingsley Uyi Idehen" ;
    owl:sameAs <https://x.com/kidehen#this>, <https://substack.com/@kidehen#this> .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 8: FAQ
# ══════════════════════════════════════════════════════════════════════════════

:OKFFAQ a schema:FAQPage ;
    schema:name "Frequently Asked Questions: Open Knowledge Format"@en ;
    schema:description "Common questions and answers about Google Cloud's Open Knowledge Format (OKF v0.1) specification."@en ;
    schema:mainEntity :FAQ-WhatIsOKF, :FAQ-WhatProblem, :FAQ-MandatoryFields,
                      :FAQ-DocumentTypes, :FAQ-VsDataCatalog,
                      :FAQ-ProducersConsumers, :FAQ-VsRDF .

:FAQ-WhatIsOKF a schema:Question ;
    schema:name "What is the Open Knowledge Format (OKF)?"@en ;
    schema:acceptedAnswer :Ans-WhatIsOKF ;
    schema:inDefinedTermSet :OKFFAQ .

:Ans-WhatIsOKF a schema:Answer ;
    schema:text "OKF is a vendor-neutral, minimally opinionated specification for packaging knowledge as Markdown files with YAML frontmatter. Each file is a typed knowledge document — concept, dataset, table, metric, index, or runbook — and the only mandatory field is type. OKF is designed so that LLM producers can generate and maintain bundles without human bookkeeping overhead."@en .

:FAQ-WhatProblem a schema:Question ;
    schema:name "What problem does OKF solve?"@en ;
    schema:acceptedAnswer :Ans-WhatProblem ;
    schema:inDefinedTermSet :OKFFAQ .

:Ans-WhatProblem a schema:Answer ;
    schema:text "OKF addresses the fragmented context landscape: in most organizations, internal knowledge (table schemas, metric definitions, runbooks, API notices) is scattered across incompatible proprietary systems. Every AI agent builder must re-assemble context from scratch, and knowledge becomes locked behind platform-specific APIs. OKF gives any agent or tool a portable, human-readable, LLM-friendly knowledge starting point."@en .

:FAQ-MandatoryFields a schema:Question ;
    schema:name "What is the only mandatory field in an OKF document?"@en ;
    schema:acceptedAnswer :Ans-MandatoryFields ;
    schema:inDefinedTermSet :OKFFAQ .

:Ans-MandatoryFields a schema:Answer ;
    schema:text "The only mandatory field is type, specified in the YAML frontmatter. All other fields — title, description, resource, join, columns, formula, etc. — are optional and contextually meaningful based on the declared document type. This minimally opinionated design lowers the barrier to producing OKF-compliant knowledge documents."@en .

:FAQ-DocumentTypes a schema:Question ;
    schema:name "What document types does OKF define?"@en ;
    schema:acceptedAnswer :Ans-DocumentTypes ;
    schema:inDefinedTermSet :OKFFAQ .

:Ans-DocumentTypes a schema:Answer ;
    schema:text "OKF defines six core document types: concept (narrative definitions and explanations), dataset (pointers to tabular data sources), table (relational schemas with column definitions and FK relationships), metric (business metric formulas and aggregation logic), index (bundle manifests that group related documents), and runbook (operational procedures and step-by-step guides)."@en .

:FAQ-VsDataCatalog a schema:Question ;
    schema:name "How does OKF differ from a traditional data catalog?"@en ;
    schema:acceptedAnswer :Ans-VsDataCatalog ;
    schema:inDefinedTermSet :OKFFAQ .

:Ans-VsDataCatalog a schema:Answer ;
    schema:text "Traditional data catalogs are platform-specific SaaS products with vendor APIs and proprietary storage. OKF documents are plain Markdown files readable by humans, LLMs, and any text-processing tool without licensing, SDKs, or vendor lock-in. The core design principle is Format Not Platform: the specification is a file format, not a product."@en .

:FAQ-ProducersConsumers a schema:Question ;
    schema:name "What is producer/consumer independence in OKF?"@en ;
    schema:acceptedAnswer :Ans-ProducersConsumers ;
    schema:inDefinedTermSet :OKFFAQ .

:Ans-ProducersConsumers a schema:Answer ;
    schema:text "Producer/consumer independence means knowledge producers (data engineers, domain experts, LLMs) write OKF Markdown files without knowing how consumers will use them. Consumers (LLMs, BI tools, enrichment agents, SPARQL endpoints) read standard OKF documents without depending on the producer's toolchain. Each side evolves independently, reducing coupling and increasing reuse."@en .

:FAQ-VsRDF a schema:Question ;
    schema:name "How does OKF relate to RDF and SPARQL?"@en ;
    schema:acceptedAnswer :Ans-VsRDF ;
    schema:inDefinedTermSet :OKFFAQ .

:Ans-VsRDF a schema:Answer ;
    schema:text "OKF and RDF/SPARQL are complementary layers: OKF is the authoring layer optimized for human and LLM production via simple Markdown + YAML; RDF/SPARQL is the query and integration layer enabling Web-scale federation, SPARQL reasoning, and global linking via HTTP IRIs. OKF bundles can be extracted to RDF triples by mapping type fields to ontology classes and minting dereferenceable IRIs, combining OKF's ease of production with RDF's power for knowledge consumption."@en .

# ══════════════════════════════════════════════════════════════════════════════
# SECTION 9: OKF Glossary
# ══════════════════════════════════════════════════════════════════════════════

:OKFGlossary a schema:DefinedTermSet ;
    schema:name "OKF Vocabulary Glossary"@en ;
    schema:description "Key terms defined by or central to the Open Knowledge Format (OKF v0.1) specification."@en ;
    schema:hasDefinedTerm :TermKnowledgeBundle, :TermEnrichmentAgent, :TermKnowledgeConsumer,
                          :TermLLMWikiPattern, :TermYAMLFrontmatter,
                          :TermProducerConsumerIndependence, :TermFormatNotPlatform .

:TermKnowledgeBundle a schema:DefinedTerm ;
    schema:name "Knowledge Bundle"@en ;
    schema:description "An OKF index document that groups related typed knowledge documents into a coherent, portable unit. The bundle manifest defines the scope and inter-document relationships, enabling any consumer to discover and load the complete context without platform dependencies."@en ;
    schema:inDefinedTermSet :OKFGlossary .

:TermEnrichmentAgent a schema:DefinedTerm ;
    schema:name "Enrichment Agent"@en ;
    schema:description "An AI agent or automated pipeline that reads OKF knowledge bundles and produces derived artefacts — summaries, embeddings, additional semantic metadata, resolved FK relationships, or RDF triples. Enrichment agents are knowledge consumers that also act as producers of higher-order knowledge."@en ;
    schema:inDefinedTermSet :OKFGlossary .

:TermKnowledgeConsumer a schema:DefinedTerm ;
    schema:name "Knowledge Consumer"@en ;
    schema:description "Any system or agent that reads OKF-formatted documents to retrieve and apply structured knowledge. Consumers include LLMs loading context, BI tools visualizing metrics, SPARQL query engines processing extracted triples, and enrichment pipelines producing derived knowledge."@en ;
    schema:inDefinedTermSet :OKFGlossary .

:TermLLMWikiPattern a schema:DefinedTerm ;
    schema:name "LLM Wiki Pattern"@en ;
    schema:description "The OKF design principle that delegates cross-reference maintenance and bookkeeping — the tasks that make traditional human-authored wikis go stale — to LLMs. LLMs excel at structured-update tasks: updating index files when a document is added, refreshing FK references when a schema changes, and propagating renames across the bundle."@en ;
    schema:inDefinedTermSet :OKFGlossary .

:TermYAMLFrontmatter a schema:DefinedTerm ;
    schema:name "YAML Frontmatter"@en ;
    schema:description "The structured metadata block at the top of an OKF Markdown file, delimited by triple dashes (---). Contains typed key-value pairs: the mandatory type field and optional fields such as title, description, resource, join, columns, formula, and tags. YAML frontmatter is both human-editable and machine-parseable, making it the bridge between OKF's human authoring surface and automated consumption."@en ;
    schema:inDefinedTermSet :OKFGlossary ;
    skos:related <http://www.wikidata.org/entity/Q24033349> .

:TermProducerConsumerIndependence a schema:DefinedTerm ;
    schema:name "Producer/Consumer Independence"@en ;
    schema:description "OKF design principle ensuring that knowledge producers write OKF files without coupling to any specific consumer toolchain, and knowledge consumers read OKF files without depending on any specific producer's system or API. Independence reduces integration friction and allows both sides to evolve separately."@en ;
    schema:inDefinedTermSet :OKFGlossary .

:TermFormatNotPlatform a schema:DefinedTerm ;
    schema:name "Format Not Platform"@en ;
    schema:description "OKF design principle asserting that the specification is a portable file format (Markdown + YAML), not a SaaS platform, proprietary product, or vendor API. Any tool that reads text files can produce or consume OKF knowledge without licensing fees, SDK dependencies, or platform lock-in."@en ;
    schema:inDefinedTermSet :OKFGlossary .

## ─────────────────────────────────────────────────────────────────────────────
## SECTION 10 — Instance Data: Customer and Order Records
## Enables real metric computation via SPARQL (JOIN, aggregation, WAU counting)
## Added: 2026-06-15 | Model: Claude Sonnet 4.6 | Env: Claude Code
## ─────────────────────────────────────────────────────────────────────────────

## ── 10.1  Customer Records ───────────────────────────────────────────────────

:Cust_CUST001 a okf:CustomerRecord ;
    okf:customerId "CUST001"^^xsd:string ;
    okf:customerName "Alice Johnson"^^xsd:string ;
    okf:email "alice@example.com"^^xsd:string ;
    okf:signupDate "2025-01-15"^^xsd:date ;
    okf:isRowOf :CustomersTableDoc .

:Cust_CUST002 a okf:CustomerRecord ;
    okf:customerId "CUST002"^^xsd:string ;
    okf:customerName "Bob Smith"^^xsd:string ;
    okf:email "bob@example.com"^^xsd:string ;
    okf:signupDate "2025-02-20"^^xsd:date ;
    okf:isRowOf :CustomersTableDoc .

:Cust_CUST003 a okf:CustomerRecord ;
    okf:customerId "CUST003"^^xsd:string ;
    okf:customerName "Carol White"^^xsd:string ;
    okf:email "carol@example.com"^^xsd:string ;
    okf:signupDate "2025-03-10"^^xsd:date ;
    okf:isRowOf :CustomersTableDoc .

:Cust_CUST004 a okf:CustomerRecord ;
    okf:customerId "CUST004"^^xsd:string ;
    okf:customerName "Dave Brown"^^xsd:string ;
    okf:email "dave@example.com"^^xsd:string ;
    okf:signupDate "2025-04-05"^^xsd:date ;
    okf:isRowOf :CustomersTableDoc .

:Cust_CUST005 a okf:CustomerRecord ;
    okf:customerId "CUST005"^^xsd:string ;
    okf:customerName "Eve Davis"^^xsd:string ;
    okf:email "eve@example.com"^^xsd:string ;
    okf:signupDate "2025-05-12"^^xsd:date ;
    okf:isRowOf :CustomersTableDoc .

## ── 10.2  Order Records — Week 1 (2026-06-01 to 2026-06-07) ─────────────────
## Distinct customers: CUST001, CUST002, CUST003, CUST004 → WAU = 4

:Order_ORD001 a okf:OrderRecord ;
    okf:orderId "ORD001"^^xsd:string ;
    okf:customerId "CUST001"^^xsd:string ;
    okf:orderDate "2026-06-01"^^xsd:date ;
    okf:revenueUSD "125.50"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD002 a okf:OrderRecord ;
    okf:orderId "ORD002"^^xsd:string ;
    okf:customerId "CUST002"^^xsd:string ;
    okf:orderDate "2026-06-02"^^xsd:date ;
    okf:revenueUSD "89.99"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD003 a okf:OrderRecord ;
    okf:orderId "ORD003"^^xsd:string ;
    okf:customerId "CUST001"^^xsd:string ;
    okf:orderDate "2026-06-03"^^xsd:date ;
    okf:revenueUSD "210.00"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD004 a okf:OrderRecord ;
    okf:orderId "ORD004"^^xsd:string ;
    okf:customerId "CUST003"^^xsd:string ;
    okf:orderDate "2026-06-05"^^xsd:date ;
    okf:revenueUSD "45.00"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD005 a okf:OrderRecord ;
    okf:orderId "ORD005"^^xsd:string ;
    okf:customerId "CUST004"^^xsd:string ;
    okf:orderDate "2026-06-07"^^xsd:date ;
    okf:revenueUSD "320.75"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

## ── 10.3  Order Records — Week 2 (2026-06-08 to 2026-06-14) ─────────────────
## Distinct customers: CUST001, CUST002, CUST003, CUST005 → WAU = 4

:Order_ORD006 a okf:OrderRecord ;
    okf:orderId "ORD006"^^xsd:string ;
    okf:customerId "CUST002"^^xsd:string ;
    okf:orderDate "2026-06-08"^^xsd:date ;
    okf:revenueUSD "67.50"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD007 a okf:OrderRecord ;
    okf:orderId "ORD007"^^xsd:string ;
    okf:customerId "CUST005"^^xsd:string ;
    okf:orderDate "2026-06-09"^^xsd:date ;
    okf:revenueUSD "155.00"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD008 a okf:OrderRecord ;
    okf:orderId "ORD008"^^xsd:string ;
    okf:customerId "CUST001"^^xsd:string ;
    okf:orderDate "2026-06-10"^^xsd:date ;
    okf:revenueUSD "88.00"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD009 a okf:OrderRecord ;
    okf:orderId "ORD009"^^xsd:string ;
    okf:customerId "CUST003"^^xsd:string ;
    okf:orderDate "2026-06-11"^^xsd:date ;
    okf:revenueUSD "199.99"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .

:Order_ORD010 a okf:OrderRecord ;
    okf:orderId "ORD010"^^xsd:string ;
    okf:customerId "CUST005"^^xsd:string ;
    okf:orderDate "2026-06-14"^^xsd:date ;
    okf:revenueUSD "75.25"^^xsd:decimal ;
    okf:isRowOf :OrdersTableDoc .
