@prefix : <#> .
@prefix schema: <http://schema.org/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix irefde: <https://x.com/kidehen/status/2055725483535282591#> .
@prefix irefde2: <https://x.com/kidehen/status/2055725483535282591##> .
@prefix karp: <https://thecuberesearch.com/319-breaking-analysis-alex-karp-frontier-models-and-the-real-fight-for-enterprise-ai/#> .

<> a schema:CreativeWork ;
    schema:name "Entity Registry: TBox Alignment (Classes & Properties)"@en ;
    schema:description "OWL/RDFS alignment axioms harmonizing locally-minted TBox terms (rdfs:Class / owl:Class / rdf:Property) that were re-minted under disjoint IRIs across the published DAV corpus. Unlike entities/concepts.ttl (ABox-level schema:DefinedTerm instances aligned via owl:sameAs), this registry uses owl:equivalentClass / owl:equivalentProperty — the correct alignment vocabulary for TBox terms, and the form reasoners (Virtuoso inference rules, FuXi) can exploit to merge instance data across named graphs. Discovered via the TBox census of 2026-07-14: 656 locally-minted terms across DAV named graphs, 86 recurring in >= 2 documents. Loadable into Virtuoso as an alignment/inference graph."@en ;
    schema:dateCreated "2026-07-14T00:00:00Z"^^xsd:dateTime ;
    schema:dateModified "2026-07-23T00:00:00Z"^^xsd:dateTime ;
    schema:author <https://linkedin.com/in/kidehen#this> ;
    schema:hasPart :ontology ;
    rdfs:seeAlso <../preferences.ttl>,
        <../howto/cross-document-local-term-reuse.ttl>,
        <../howto/ontology-cross-reference-gate.ttl>,
        <concepts.ttl> .

:ontology a owl:Ontology ;
    rdfs:label "TBox Alignment Registry — Ontology Resource"@en ;
    rdfs:comment "The owl:Ontology resource proper, distinct from the schema:CreativeWork document entity (<>) that describes/contains it. An owl:Ontology must be its own entity — never a second rdf:type conflated onto a resource already typed as something else (e.g. schema:CreativeWork, schema:AnalysisNewsArticle) — because rdfs:isDefinedBy's range is owl:Ontology, and typing the document root as both makes every isDefinedBy target ambiguous between 'this document' and 'this ontology'. Corrected 2026-07-23; see preferences.ttl step-ontologyIsDistinctEntity."@en .

# ═══════════════════════════════════════════════════════════════════════════════
# ── 1. FDE/IRE Ontology: single-# vs double-## IRI repair ──────────────────────
# ═══════════════════════════════════════════════════════════════════════════════
#
# The FDE/IRE Enterprise Skills ontology exists in the corpus under TWO IRI
# families caused by an @prefix declaration ending in "##" in one producing
# file (ire-fde-ontology-roles-claude_sonnet46-1.ttl) vs "#" in others.
# Census: single-# form appears in 5 graph loads, double-## in 2 → the
# single-# form is CANONICAL. Equivalence axioms below let reasoners treat
# instance data asserted against either family as one ontology. Future
# documents MUST bind irefde: to the single-# namespace.

# ── Classes (12) ──
irefde2:Skill owl:equivalentClass irefde:Skill .
irefde2:AILiteracySkill owl:equivalentClass irefde:AILiteracySkill .
irefde2:EngineeringRole owl:equivalentClass irefde:EngineeringRole .
irefde2:ForwardDeployedEngineer owl:equivalentClass irefde:ForwardDeployedEngineer .
irefde2:InwardRedeployedEngineer owl:equivalentClass irefde:InwardRedeployedEngineer .
irefde2:SkillLifecycleState owl:equivalentClass irefde:SkillLifecycleState .
irefde2:ProposedSkill owl:equivalentClass irefde:ProposedSkill .
irefde2:ValidatedSkill owl:equivalentClass irefde:ValidatedSkill .
irefde2:DeployedSkill owl:equivalentClass irefde:DeployedSkill .
irefde2:DeprecatedSkill owl:equivalentClass irefde:DeprecatedSkill .
irefde2:SkillGenerationActivity owl:equivalentClass irefde:SkillGenerationActivity .
irefde2:AgenticPod owl:equivalentClass irefde:AgenticPod .

# ── Properties (4) ──
irefde2:hasSkill owl:equivalentProperty irefde:hasSkill .
irefde2:requiresSkill owl:equivalentProperty irefde:requiresSkill .
irefde2:hasLifecycleState owl:equivalentProperty irefde:hasLifecycleState .
irefde2:createdFromTacitKnowledge owl:equivalentProperty irefde:createdFromTacitKnowledge .

# ═══════════════════════════════════════════════════════════════════════════════
# ── 2. Generator-Template Analysis Classes (cross-document re-mints) ──────────
# ═══════════════════════════════════════════════════════════════════════════════
#
# These generic analysis-pattern classes are minted by the kg-generator /
# rdf-infographic-skill workflow itself (not by any source article), so they
# recur under a fresh document-local IRI in every production run. The
# most-used IRI in the corpus is designated canonical; variants are aligned
# via owl:equivalentClass. Future doc-collection tasks MUST reuse the
# canonical IRI directly instead of minting another local one.

# ── KeyPrinciple — 5 documents, 5 disjoint IRIs (worst TBox re-mint in census) ──
:KeyPrinciple a owl:Class ;
    rdfs:label "Key Principle"@en ;
    rdfs:comment "A named principle or tenet extracted from an analyzed source document. Canonical corpus IRI for the generator-template analysis class re-minted in 5 documents (2026-07-14 census). Correctly REUSED (not re-minted) via bound prefix in buzz-block-thesis-value-prop, 2026-07-23 — see cross-document-local-term-reuse.ttl step 3 exemplar."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://x.com/trq212/status/2052809885763747935#KeyPrinciple>,
        <https://thinkingmachines.ai/blog/interaction-models/#KeyPrinciple>,
        <https://joost.blog/agent-ready/#KeyPrinciple>,
        <https://abhiyadav.substack.com/p/what-is-an-audience-interest-graph/#KeyPrinciple>,
        <https://incidentdatabase.ai/blog/incident-report-2026-february-march-april/#KeyPrinciple> .

:KeyConcept a owl:Class ;
    rdfs:label "Key Concept"@en ;
    rdfs:comment "A named concept central to an analyzed source document. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:seeAlso :KeyPrinciple ;
    owl:equivalentClass <https://www.linkedin.com/pulse/libraries-ai-infrastructure-african-edition-stuart-michael-edelenbos-bsage#KeyConcept>,
        <https://content.martechday.com/state-of-martech-2026.pdf#KeyConcept> .

:ComparisonDimension a owl:Class ;
    rdfs:label "Comparison Dimension"@en ;
    rdfs:comment "One axis of a structured comparison between two or more technologies, products, or approaches. Canonical corpus IRI; 2 disjoint re-mints aligned. Correctly REUSED (not re-minted) via bound prefix in buzz-block-thesis-value-prop, 2026-07-23 — see cross-document-local-term-reuse.ttl step 3 exemplar."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://neo4j.com/blog/graph-database/introducing-neo4j-virtual-graph-graph-reasoning-on-the-data-you-already-have/#ComparisonDimension>,
        <https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing/#ComparisonDimension> .

:ArchitectureConcept a owl:Class ;
    rdfs:label "Architecture Concept"@en ;
    rdfs:comment "A named architectural concept or pattern discussed in an analyzed source. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://thinkingmachines.ai/blog/interaction-models/#ArchitectureConcept>,
        <https://www.linkedin.com/posts/tonyseale_every-c-suite-is-arriving-at-the-same-uncomfortable-share-7465730567645315073-O_VW#ArchitectureConcept> .

:ArchitecturalLayer a owl:Class ;
    rdfs:label "Architectural Layer"@en ;
    rdfs:comment "One layer in a layered architecture decomposition. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:seeAlso :ArchitectureConcept ;
    owl:equivalentClass <https://diginomica.com/who-pays-agentic-ai-enterprise-budget-problem-no-vendor-will-address#ArchitecturalLayer>,
        <https://www.lassila.org/publications/2001/SciAm.pdf#ArchitecturalLayer> .

:UseCase a owl:Class ;
    rdfs:label "Use Case"@en ;
    rdfs:comment "A concrete usage scenario described in an analyzed source. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://x.com/trq212/status/2052809885763747935#UseCase>,
        <https://www.lassila.org/publications/2001/SciAm.pdf#UseCase> .

:Industry a owl:Class ;
    rdfs:label "Industry"@en ;
    rdfs:comment "An industry sector referenced in labor-TAM / automation-readiness analyses. Canonical corpus IRI; 3 disjoint re-mints aligned. Domain class for :hasLaborTAM and :hasAutomationReadiness."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54#Industry>,
        <https://www.linkedin.com/pulse/sap-reinvents-its-ai-strategy-portfolio-autonomous-enterprise-smith-riqxc/#Industry>,
        <https://moderndata101.substack.com/p/the-semantic-medallion#Industry> .

:AgentSkill a owl:Class ;
    rdfs:label "Agent Skill"@en ;
    rdfs:comment "A packaged, reusable AI-agent capability (SKILL.md-style unit). Canonical corpus IRI; 2 disjoint re-mints aligned. Related to but distinct from irefde:Skill (the FDE/IRE lifecycle-governed enterprise skill artifact) — linked via rdfs:seeAlso pending an explicit subclass decision."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:seeAlso irefde:Skill ;
    owl:equivalentClass <https://www.linkedin.com/pulse/china-built-super-app-us-may-build-super-agent-jaya-gupta-3ncoc/#AgentSkill>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/youid-self-sovereign-identity-claude_sonnet_4_6-1.ttl#AgentSkill> .

:MultiModelDatabase a owl:Class ;
    rdfs:label "Multi-Model Database"@en ;
    rdfs:comment "A database engine supporting multiple data models (relational, graph, document, etc.) in one core. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://www.linkedin.com/pulse/china-built-super-app-us-may-build-super-agent-jaya-gupta-3ncoc/#MultiModelDatabase>,
        <https://neo4j.com/blog/graph-database/introducing-neo4j-virtual-graph-graph-reasoning-on-the-data-you-already-have/#MultiModelDatabase> .

:Event a owl:Class ;
    rdfs:label "Event"@en ;
    rdfs:comment "A scheduled event (conference, meetup, session). Canonical corpus IRI; 2 disjoint re-mints aligned. Consider schema:Event directly in future documents instead of any local class."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:subClassOf <http://schema.org/Event> ;
    owl:equivalentClass <https://x.com/yumi_willems/status/2053256485124137228#Event>,
        <https://x.com/michelleefang/status/2053944163817898317#Event> .

:EventDay a owl:Class ;
    rdfs:label "Event Day"@en ;
    rdfs:comment "One day within a multi-day event program. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:subClassOf :Event ;
    owl:equivalentClass <https://x.com/yumi_willems/status/2053256485124137228#EventDay>,
        <https://x.com/michelleefang/status/2053944163817898317#EventDay> .

# ── Reusable classes already correctly shared (advertised here for discovery) ──

karp:CriticalPerspective a rdfs:Class ;
    rdfs:label "Critical Perspective"@en ;
    rdfs:comment "A critical-response entry contesting or reframing an analyzed source's thesis. Minted once in the theCUBE Research Karp analysis KG and correctly REUSED by IRI (not re-minted) in reverse-information-paradox — the exemplar pattern this registry exists to enforce. Companion property: karp:respondsTo."@en ;
    rdfs:isDefinedBy <https://linkeddata.uriburner.com/DAV/demos/daas/karp-frontier-models-enterprise-ai-claude_sonnet_5-1.ttl> .

:ValueProposition a owl:Class ;
    rdfs:label "Value Proposition"@en ;
    rdfs:comment "A concrete claimed benefit a product/protocol/approach delivers over an incumbent status quo. Distinct from :KeyPrinciple (a stated design constraint the source itself asserts it designed against) — a ValueProposition is the analysis layer's inference of what that principle cashes out to in practice. Minted 2026-07-23 in buzz-block-thesis-value-prop; no prior corpus equivalent found at mint time (checked against KeyPrinciple, KeyConcept, ComparisonDimension, ArchitectureConcept, UseCase) — future documents needing this concept should REUSE this IRI, not re-mint."@en ;
    rdfs:isDefinedBy <https://linkeddata.uriburner.com/DAV/demos/daas/buzz-block-thesis-value-prop-claude_sonnet_5-1.ttl> .

:OpenQuestion a owl:Class ;
    rdfs:label "Open Question"@en ;
    rdfs:comment "A risk, gap, or unresolved design tension surfaced by comparing a source's stated thesis/principles against its own documented current state (e.g. a README's 'being wired up' / 'pending' columns). Minted 2026-07-23 in buzz-block-thesis-value-prop; no prior corpus equivalent found at mint time — future documents needing this concept should REUSE this IRI, not re-mint."@en ;
    rdfs:isDefinedBy <https://linkeddata.uriburner.com/DAV/demos/daas/buzz-block-thesis-value-prop-claude_sonnet_5-1.ttl> .

# ═══════════════════════════════════════════════════════════════════════════════
# ── 3. Generator-Template Analysis Properties (cross-document re-mints) ────────
# ═══════════════════════════════════════════════════════════════════════════════

:hasLaborTAM a rdf:Property ;
    rdfs:label "has labor TAM"@en ;
    rdfs:comment "Links an Industry to the total addressable market of labor exposed to AI automation within it. Canonical corpus IRI; 4 disjoint re-mints aligned (including the hasLaborTam casing variant)."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:domain :Industry ;
    rdfs:range xsd:string ;
    owl:equivalentProperty <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54#hasLaborTAM>,
        <https://www.forbes.com/sites/stevebanker/2026/05/16/palantir-says-saas-is-dead/#hasLaborTAM>,
        <https://moderndata101.substack.com/p/the-semantic-medallion#hasLaborTAM>,
        <https://benn.substack.com/p/what-will-startups-do-in-2030#hasLaborTam> .

:hasAutomationReadiness a rdf:Property ;
    rdfs:label "has automation readiness"@en ;
    rdfs:comment "Links an Industry to an assessment of how ready its workflows are for AI automation. Canonical corpus IRI; 4 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:domain :Industry ;
    rdfs:range xsd:string ;
    owl:equivalentProperty <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54#hasAutomationReadiness>,
        <https://www.forbes.com/sites/stevebanker/2026/05/16/palantir-says-saas-is-dead/#hasAutomationReadiness>,
        <https://moderndata101.substack.com/p/the-semantic-medallion#hasAutomationReadiness>,
        <https://benn.substack.com/p/what-will-startups-do-in-2030#hasAutomationReadiness> .

:dependsOn a rdf:Property ;
    rdfs:label "depends on"@en ;
    rdfs:comment "Links a component or layer to another it depends on. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentProperty <https://moderndata101.substack.com/p/the-semantic-medallion#dependsOn>,
        <https://www.lassila.org/publications/2001/SciAm.pdf#dependsOn> .

:enablesCapability a rdf:Property ;
    rdfs:label "enables capability"@en ;
    rdfs:comment "Links a technology or layer to a capability it enables. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentProperty <https://moderndata101.substack.com/p/the-semantic-medallion#enablesCapability>,
        <https://www.lassila.org/publications/2001/SciAm.pdf#enablesCapability> .

:demonstrates a rdf:Property ;
    rdfs:label "demonstrates"@en ;
    rdfs:comment "Links an example or case to the principle it demonstrates. Canonical corpus IRI; 2 disjoint re-mints aligned."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentProperty <https://leestack.dev/writing/nasa-rules-for-code-that-cant-fail#demonstrates>,
        <https://lilyraynyc.substack.com/p/the-ai-slop-loop#demonstrates> .

# ══════════════════════════════════════════════════════════════════
# ── 3b. Comparison Position vocabulary (promoted 2026-10-28) ───────────────────
# ══════════════════════════════════════════════════════════════════
#
# The ComparisonDimension / Position pattern (one Position per subject per
# dimension, with a stance token and a relation label) is read by
# rdf-infographic-skill's rdf_parser.extract_comparison by local name, and has
# been re-minted under a fresh document-local IRI in nearly every vendor-versus-
# Virtuoso meshup: Census 2026-10-28 over the local LLM output folders, 31
# documents: Position declared in 9, ofDimension and ofSubject in 28, stance in
# 25, hasRelation in 21 (all well past the >= 3 promotion threshold). The
# canonical IRIs below MUST be bound and reused (prefix cdx:) instead of minting
# another local copy; the re-mints are aligned with owl:equivalentClass /
# owl:equivalentProperty. Caught when a new meshup minted all five locally and
# the user pointed at its pos_ resource: the pre-mint registry check was skipped.

:Position a owl:Class ;
    rdfs:label "Position"@en ;
    rdfs:comment "One subject's stance on one comparison dimension: it points at the dimension and the subject, carries a short stance token and a prose description, and so lets a head-to-head matrix be rebuilt from the graph."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:subClassOf schema:Claim ;
    owl:equivalentClass
        <https://atlan.com/context-and-chaos/issue/ai-ontology-bottom-up-doesnt-mean-starting-from-scratch/#Position>,
        <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live/#Position>,
        <https://blog.google/innovation-and-ai/models-and-research/gemini-models/3-8-flash-and-3-8-flash-cyber/#Position>,
        <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#Position>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-graph-technology-vs-virtuoso-rdf-claude_opus_5-1.html#Position>,
        <https://medium.com/@raghu.v.shankar/data-pipelines-platform-for-analytics-and-ai-proof-of-concept-poc-bring-your-own-use-case-6bfbb8e9aa2e#Position>,
        <https://neo4j.com/blog/agentic-ai/scaling-karpathy-llm-wiki-graph/#Position>,
        <https://neo4j.com/blog/news/neo4j-context-engine/#Position>,
        <https://www.mongodb.com/company/blog/innovation/enriching-product-catalogs-for-agentic-commerce-discovery#Position> .

:ofDimension a owl:ObjectProperty, owl:FunctionalProperty, owl:AsymmetricProperty ;
    rdfs:label "of dimension"@en ;
    rdfs:comment "The comparison dimension a position speaks to; a position speaks to exactly one."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:domain :Position ;
    rdfs:range :ComparisonDimension ;
    rdfs:subPropertyOf schema:about ;
    owl:equivalentProperty
        <https://atlan.com/context-and-chaos/issue/ai-ontology-bottom-up-doesnt-mean-starting-from-scratch/#ofDimension>,
        <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live/#ofDimension>,
        <https://atlan.com/know/ai-agent/knowledge-graph/stardog-vs-atlan/#ofDimension>,
        <https://atlan.com/know/ai-agent/semantic-layer/atscale-vs-context-layer#ofDimension>,
        <https://blog.google/innovation-and-ai/models-and-research/gemini-models/3-8-flash-and-3-8-flash-cyber/#ofDimension>,
        <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#ofDimension>,
        <https://contextandchaos.substack.com/p/enterprise-ais-200-millisecond-problem#ofDimension>,
        <https://graphacademy.neo4j.com/courses/workshop-lakehouse#ofDimension>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-1.html#ofDimension>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-2.html#ofDimension>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-agent-memory-graph-vs-virtuoso-agent-rdf-memory-meshup-claude_sonnet_5-1.html#ofDimension>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-graph-technology-vs-virtuoso-rdf-claude_opus_5-1.html#ofDimension>,
        <https://medium.com/@raghu.v.shankar/data-pipelines-platform-for-analytics-and-ai-proof-of-concept-poc-bring-your-own-use-case-6bfbb8e9aa2e#ofDimension>,
        <https://miketrap.substack.com/p/its-never-been-cheaper-to-start-its#ofDimension>,
        <https://neo4j.com/blog/agentic-ai/context-graph-decision-traces/#ofDimension>,
        <https://neo4j.com/blog/agentic-ai/scaling-karpathy-llm-wiki-graph/#ofDimension>,
        <https://neo4j.com/blog/developer/your-ai-agent-forgets-everything-so-we-taught-it-to-remember-with-a-graph/#ofDimension>,
        <https://neo4j.com/blog/news/neo4j-context-engine/#ofDimension>,
        <https://thinksolverepeat.substack.com/p/a-piece-of-humble-pie#ofDimension>,
        <https://www.cdata.com/blog/ai-gateway-use-cases#ofDimension>,
        <https://www.databricks.com/blog/introducing-agent-memory-databricks#ofDimension>,
        <https://www.dataengineeringweekly.com/p/building-an-operational-ontology/ontology#ofDimension>,
        <https://www.linkedin.com/pulse/forward-deployed-engineer-ai-career-training-course-teach-linthicum-xiqje#ofDimension>,
        <https://www.mongodb.com/company/blog/innovation/enriching-product-catalogs-for-agentic-commerce-discovery#ofDimension>,
        <https://www.sec.gov/Archives/edgar/data/2130357/000162828026067168/anthropicpbc-sx1.htm#ofDimension>,
        <https://x.com/PaulJun_/status/2098386367898079729#ofDimension>,
        <https://x.com/i/grok/share/799eefe2ac4d4522a09668b33505a1d7#ofDimension>,
        <https://x.com/i/grok/share/ef4ea5991b85433581c24544cb078cc1#ofDimension> .

:ofSubject a owl:ObjectProperty, owl:FunctionalProperty, owl:AsymmetricProperty ;
    rdfs:label "of subject"@en ;
    rdfs:comment "The compared subject (a product, platform or harness) whose stance the position records; a position records exactly one."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:domain :Position ;
    rdfs:range schema:Thing ;
    rdfs:subPropertyOf schema:about ;
    owl:equivalentProperty
        <https://atlan.com/context-and-chaos/issue/ai-ontology-bottom-up-doesnt-mean-starting-from-scratch/#ofSubject>,
        <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live/#ofSubject>,
        <https://atlan.com/know/ai-agent/knowledge-graph/stardog-vs-atlan/#ofSubject>,
        <https://atlan.com/know/ai-agent/semantic-layer/atscale-vs-context-layer#ofSubject>,
        <https://blog.google/innovation-and-ai/models-and-research/gemini-models/3-8-flash-and-3-8-flash-cyber/#ofSubject>,
        <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#ofSubject>,
        <https://contextandchaos.substack.com/p/enterprise-ais-200-millisecond-problem#ofSubject>,
        <https://graphacademy.neo4j.com/courses/workshop-lakehouse#ofSubject>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-1.html#ofSubject>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-2.html#ofSubject>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-agent-memory-graph-vs-virtuoso-agent-rdf-memory-meshup-claude_sonnet_5-1.html#ofSubject>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-graph-technology-vs-virtuoso-rdf-claude_opus_5-1.html#ofSubject>,
        <https://medium.com/@raghu.v.shankar/data-pipelines-platform-for-analytics-and-ai-proof-of-concept-poc-bring-your-own-use-case-6bfbb8e9aa2e#ofSubject>,
        <https://miketrap.substack.com/p/its-never-been-cheaper-to-start-its#ofSubject>,
        <https://neo4j.com/blog/agentic-ai/context-graph-decision-traces/#ofSubject>,
        <https://neo4j.com/blog/agentic-ai/scaling-karpathy-llm-wiki-graph/#ofSubject>,
        <https://neo4j.com/blog/developer/your-ai-agent-forgets-everything-so-we-taught-it-to-remember-with-a-graph/#ofSubject>,
        <https://neo4j.com/blog/news/neo4j-context-engine/#ofSubject>,
        <https://thinksolverepeat.substack.com/p/a-piece-of-humble-pie#ofSubject>,
        <https://www.cdata.com/blog/ai-gateway-use-cases#ofSubject>,
        <https://www.databricks.com/blog/introducing-agent-memory-databricks#ofSubject>,
        <https://www.dataengineeringweekly.com/p/building-an-operational-ontology/ontology#ofSubject>,
        <https://www.linkedin.com/pulse/forward-deployed-engineer-ai-career-training-course-teach-linthicum-xiqje#ofSubject>,
        <https://www.mongodb.com/company/blog/innovation/enriching-product-catalogs-for-agentic-commerce-discovery#ofSubject>,
        <https://www.sec.gov/Archives/edgar/data/2130357/000162828026067168/anthropicpbc-sx1.htm#ofSubject>,
        <https://x.com/PaulJun_/status/2098386367898079729#ofSubject>,
        <https://x.com/i/grok/share/799eefe2ac4d4522a09668b33505a1d7#ofSubject>,
        <https://x.com/i/grok/share/ef4ea5991b85433581c24544cb078cc1#ofSubject> .

:stance a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:label "stance"@en ;
    rdfs:comment "A short token naming a position's stance, shown as a chip above its prose description."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:domain :Position ;
    rdfs:range xsd:string ;
    rdfs:subPropertyOf schema:description ;
    owl:equivalentProperty
        <https://atlan.com/context-and-chaos/issue/ai-ontology-bottom-up-doesnt-mean-starting-from-scratch/#stance>,
        <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live/#stance>,
        <https://atlan.com/know/ai-agent/knowledge-graph/stardog-vs-atlan/#stance>,
        <https://atlan.com/know/ai-agent/semantic-layer/atscale-vs-context-layer#stance>,
        <https://blog.google/innovation-and-ai/models-and-research/gemini-models/3-8-flash-and-3-8-flash-cyber/#stance>,
        <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#stance>,
        <https://contextandchaos.substack.com/p/enterprise-ais-200-millisecond-problem#stance>,
        <https://graphacademy.neo4j.com/courses/workshop-lakehouse#stance>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-1.html#stance>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-2.html#stance>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-agent-memory-graph-vs-virtuoso-agent-rdf-memory-meshup-claude_sonnet_5-1.html#stance>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-graph-technology-vs-virtuoso-rdf-claude_opus_5-1.html#stance>,
        <https://medium.com/@raghu.v.shankar/data-pipelines-platform-for-analytics-and-ai-proof-of-concept-poc-bring-your-own-use-case-6bfbb8e9aa2e#stance>,
        <https://miketrap.substack.com/p/its-never-been-cheaper-to-start-its#stance>,
        <https://neo4j.com/blog/agentic-ai/context-graph-decision-traces/#stance>,
        <https://neo4j.com/blog/agentic-ai/scaling-karpathy-llm-wiki-graph/#stance>,
        <https://neo4j.com/blog/developer/your-ai-agent-forgets-everything-so-we-taught-it-to-remember-with-a-graph/#stance>,
        <https://neo4j.com/blog/news/neo4j-context-engine/#stance>,
        <https://www.cdata.com/blog/ai-gateway-use-cases#stance>,
        <https://www.databricks.com/blog/introducing-agent-memory-databricks#stance>,
        <https://www.dataengineeringweekly.com/p/building-an-operational-ontology/ontology#stance>,
        <https://www.mongodb.com/company/blog/innovation/enriching-product-catalogs-for-agentic-commerce-discovery#stance>,
        <https://www.sec.gov/Archives/edgar/data/2130357/000162828026067168/anthropicpbc-sx1.htm#stance>,
        <https://x.com/i/grok/share/799eefe2ac4d4522a09668b33505a1d7#stance>,
        <https://x.com/i/grok/share/ef4ea5991b85433581c24544cb078cc1#stance> .

:hasRelation a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:label "has relation"@en ;
    rdfs:comment "How the compared subjects relate on a dimension: both address, overlap or unaddressed."@en ;
    rdfs:isDefinedBy :ontology ;
    rdfs:domain :ComparisonDimension ;
    rdfs:range xsd:string ;
    rdfs:subPropertyOf schema:category ;
    owl:equivalentProperty
        <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live/#hasRelation>,
        <https://atlan.com/know/ai-agent/knowledge-graph/stardog-vs-atlan/#hasRelation>,
        <https://atlan.com/know/ai-agent/semantic-layer/atscale-vs-context-layer#hasRelation>,
        <https://community.openlinksw.com/t/virtuoso-saas-managed-service-buyer-guide/6600#hasRelation>,
        <https://contextandchaos.substack.com/p/enterprise-ais-200-millisecond-problem#hasRelation>,
        <https://graphacademy.neo4j.com/courses/workshop-lakehouse#hasRelation>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-1.html#hasRelation>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/meta-frontier-club-implicit-vs-explicit-profiles-claude_sonnet_5_5-2.html#hasRelation>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-agent-memory-graph-vs-virtuoso-agent-rdf-memory-meshup-claude_sonnet_5-1.html#hasRelation>,
        <https://linkeddata.uriburner.com/DAV/demos/daas/neo4j-graph-technology-vs-virtuoso-rdf-claude_opus_5-1.html#hasRelation>,
        <https://medium.com/@raghu.v.shankar/data-pipelines-platform-for-analytics-and-ai-proof-of-concept-poc-bring-your-own-use-case-6bfbb8e9aa2e#hasRelation>,
        <https://miketrap.substack.com/p/its-never-been-cheaper-to-start-its#hasRelation>,
        <https://neo4j.com/blog/agentic-ai/context-graph-decision-traces/#hasRelation>,
        <https://neo4j.com/blog/agentic-ai/scaling-karpathy-llm-wiki-graph/#hasRelation>,
        <https://neo4j.com/blog/developer/your-ai-agent-forgets-everything-so-we-taught-it-to-remember-with-a-graph/#hasRelation>,
        <https://neo4j.com/blog/news/neo4j-context-engine/#hasRelation>,
        <https://www.cdata.com/blog/ai-gateway-use-cases#hasRelation>,
        <https://www.databricks.com/blog/introducing-agent-memory-databricks#hasRelation>,
        <https://www.linkedin.com/pulse/forward-deployed-engineer-ai-career-training-course-teach-linthicum-xiqje#hasRelation>,
        <https://www.mongodb.com/company/blog/innovation/enriching-product-catalogs-for-agentic-commerce-discovery#hasRelation>,
        <https://www.sec.gov/Archives/edgar/data/2130357/000162828026067168/anthropicpbc-sx1.htm#hasRelation> .

# ═══════════════════════════════════════════════════════════════════════════════
# ── 4. Watchlist: label collisions that are NOT identity (do not align) ────────
# ═══════════════════════════════════════════════════════════════════════════════
#
# The census surfaced these same-label clusters that must NOT receive
# owl:equivalentClass/equivalentProperty — the shared label masks genuinely
# different terms. Recorded so a future census pass doesn't 'fix' them:
#
#   - 'status'/'name'/'email'/'customerId': the truck-ontology-bench properties
#     (truckStatus, driverStatus, loadStatus, customerName, driverEmail, ...)
#     are domain-scoped and disjoint from the semantic-medallion generic
#     properties sharing the label fragment. Different domains, different
#     semantics — alignment would corrupt inference.
#   - 'Customer': moderndata101#Customer (data-product consumer) vs
#     truck-ontology#Customer (freight customer) — same label, different
#     ontological commitments. rdfs:seeAlso at most, never equivalence.
#   - 'Concept' / 'Technology': too generic to assert identity across
#     documents without inspecting instance usage; leave unaligned.

# ═══════════════════════════════════════════════════════════════════════════════
# ── 5. External well-known-ontology alignments (distinct from Sections 1-3) ────
# ═══════════════════════════════════════════════════════════════════════════════
#
# Sections 1-3 repair disjoint IRIs re-minted for the SAME concept across this
# corpus. This section is different in kind: it cross-references a locally-minted
# term to a genuinely EXTERNAL, independently-published ontology for interop with
# tools/reasoners outside this corpus — not a duplicate-repair.

:p-plan-hospital-os-alignment a schema:CreativeWork ;
    schema:name "P-Plan alignment: hospital-os-rdf-harness workflow/sequencing terms"@en ;
    schema:description "Cross-referenced 2026-08-04 in https://linkeddata.uriburner.com/DAV/demos/daas/hospital-os-rdf-harness/ontology.ttl per user request, evaluating whether the doc's Workflow-related TBox terms should align to a shared/standard vocabulary. schema.org has no formal Workflow/Step class (schema:HowTo/HowToStep serves instructional content, a different purpose than process modeling, and is used separately in the same document for :sepsisPathwayHowTo). P-Plan (http://purl.org/net/p-plan#), a W3C-community ontology for plans composed of steps, was judged the better fit."@en ;
    schema:about <https://linkeddata.uriburner.com/DAV/demos/daas/hospital-os-rdf-harness/ontology.ttl#hospitalOS> ;
    rdfs:comment """Alignment triples (in the source document, not duplicated here):
  os:ClinicalPathway  owl:equivalentClass  p-plan:Plan .
  os:WorkflowStep     owl:equivalentClass  p-plan:Step .
  os:hasStep          owl:inverseOf        p-plan:isStepOfPlan .   # direction-reversed: os:hasStep(Pathway,Step) vs p-plan:isStepOfPlan(Step,Plan)
  os:nextStep         owl:inverseOf        p-plan:isPrecededBy .   # direction-reversed: os:nextStep(A,B)="B follows A" vs p-plan:isPrecededBy(B,A)="B preceded by A"

Property alignments use owl:inverseOf rather than owl:equivalentProperty because P-Plan's argument order is reversed relative to this ontology's — equivalentProperty would assert a false direction-preserving equivalence. Tradeoff noted to the user before implementing: P-Plan is a niche vocabulary (mostly scientific-workflow/provenance contexts) — real interop value only if a consumer actually has a P-Plan-aware tool/reasoner; otherwise it's a fourth external prefix with no practical payoff. User approved proceeding."""@en ;
    schema:dateCreated "2026-08-04T00:00:00Z"^^xsd:dateTime .

# ═══════════════════════════════════════════════════════════════════════════════
# ── 6. Intelligence Allocation Ontology (intel:) — 2026-08-19 ─────────────────
# ═══════════════════════════════════════════════════════════════════════════════
#
# Minted by the Right-Sizing Your Intelligence Spend collection (DeepSeek V4 Flash,
# 2026-08-19) because no shared ontology covers workload intelligence thresholds /
# tier routing. Registered here per cross-document-local-term-reuse.ttl so future
# collections bind the DAV namespace below instead of re-minting disjoint terms.
#   intel: = <https://linkeddata.uriburner.com/DAV/demos/daas/ontology/intelligence-allocation#>
# Classes: Workload, Workflow, WorkloadProfile, IntelligenceThreshold, IntelligenceTier,
#   ValueClass, BottleneckType, ExecutionSurface, RoutingPolicy
# Properties: hasIntelligenceThreshold, requiresTier, hasValueClass, hasBottleneck,
#   belongsToWorkflow (rdfs:subPropertyOf schema:isPartOf), routesTo, appliesTo,
#   verifiesVia, hasTokenSensitivity, hasOverqualificationRisk,
#   hasMarginalValueOfIntelligence, intelligenceConsumedPerOutcome, hasWorkflowDomain

:intelIntelligenceAllocation a owl:Ontology ;
    rdfs:label "Intelligence Allocation Ontology (intel:)"@en ;
    rdfs:comment "Canonical DAV namespace for the Intelligence Allocation Ontology minted 2026-08-19 in right-sizing-intelligence-spend-deepseek_v4flash-1.ttl (1,483-triple collection). Nine classes and thirteen properties, every term carrying rdfs:label/comment/domain/range and verified external cross-references (dbpedia:Business_process, dbpedia:Artificial_intelligence, dbpedia:Basic_research, dbpedia:Applied_science, dbpedia:Automation, dbpedia:Software_agent, dbpedia:Decision-making, dbpedia:Enterprise_software, wd:Q11538, wd:Q1418791, wd:Q3510521)."@en ;
    rdfs:isDefinedBy :ontology ;
    schema:dateCreated "2026-08-19T14:43:35Z"^^xsd:dateTime ;
    rdfs:seeAlso <https://linkeddata.uriburner.com/DAV/demos/daas/ontology/intelligence-allocation#> .

# ═══════════════════════════════════════════════════════════════════════════════
# ── 7. LLM Routing Ontology (llmr:) — 2026-08-19 ──────────────────────────────
# ═══════════════════════════════════════════════════════════════════════════════
#
# Minted by the llm-routing-skill (DeepSeek V4 Flash, 2026-08-19) to type the
# capability x cost x latency routing graph. Registered here per
# cross-document-local-term-reuse.ttl so future collections bind the namespace
# below instead of re-minting disjoint terms.
#   llmr: = <https://www.openlinksw.com/ontology/llm-routing#>
# Classes: Model, TaskType, CapabilityLevel, GovernancePolicy, FeedbackRecord,
#   RoutingTrace (rdfs:subClassOf FeedbackRecord; private session routing traces)
# Properties: modelId, vendor, inputPricePerMTok, outputPricePerMTok,
#   cachedInputPricePerMTok, costTier, latencyClass, contextWindowTokens,
#   priceUpdated, graphPriceUpdated, paretoFrontierModel, dominantDimension,
#   profileNote, tokenSensitivity, overqualificationRisk, requiredCapabilityLevel,
#   approvesModel, blocksModel, residencyConstraint, feedbackModel, feedbackTask,
#   qualityScore, passedVerification, observedLatency, feedbackDate,
#   tracedTask, tracedModel, costTierUsed, policyUsed, costIncurred, escalationEvent
# Trace privacy: llmr:RoutingTrace instances live in references/traces/
#   (private, local-only) — excluded from the published graph and public uploads.
# schema.org terms used by the graph: schema:additionalProperty +
#   schema:PropertyValue (capability attributes), schema:ItemList +
#   schema:ListItem + schema:position (escalation ladders).
# Sets are repeated triples, not RDF lists (migrated 2026-08-19 from
#   RDF-collection encoding of paretoFrontier/escalationLadder/capabilityProfile
#   after the list form forced rdf:rest*/rdf:first traversal in every SPARQL
#   query and silently truncated frontiers at 12 members).
# NO BLANK NODES (preferences.ttl Step 37): reification nodes (schema:ListItem,
#   schema:PropertyValue) carry named hash IRIs (full <IRI> syntax in Turtle —
#   '#' is not legal in a prefixed-name local part); priceUpdated/graphPriceUpdated
#   split into single-domain properties rather than a blank-node owl:unionOf.
# TERM DEFINITIONS: authoritative TBox is
#   llm-routing-skill/references/llm-routing-ontology.ttl, embedded verbatim into
#   routing-graph.ttl by build_routing_graph.py; every term carries
#   rdfs:label/comment/domain/range/isDefinedBy + verified external
#   cross-references per the ontology-cross-reference gate (2026-08-19).
# Model entities: llmrm: <https://www.openlinksw.com/ontology/llm-routing/models/>
# Task entities:  llmrt: <https://www.openlinksw.com/ontology/llm-routing/tasks/>
# Vendor entities: llmrv: <https://www.openlinksw.com/ontology/llm-routing/vendors/>
# Level entities: llmrl: <https://www.openlinksw.com/ontology/llm-routing/levels/>

:llmrLlmRouting a owl:Ontology ;
    rdfs:label "LLM Routing Ontology (llmr:)"@en ;
    rdfs:comment "Canonical namespace for the LLM Routing Ontology minted 2026-08-19 in llm-routing-skill/references/routing-graph.ttl (7,547-triple graph, 145 models, 30 task types). Model registry + capability x cost x latency profiles + per-task Pareto frontiers and escalation ladders, informing intelligent LLM routing. Term definitions live in the authoritative TBox llm-routing-skill/references/llm-routing-ontology.ttl (embedded into the graph; all 31 used terms carry label/comment/domain/range/isDefinedBy + verified cross-refs per the ontology-cross-reference gate). Zero blank nodes (Step 37): reification nodes are named hash IRIs. rdfs:seeAlso the intel: Intelligence Allocation Ontology for tier/execution-surface semantics."@en ;
    rdfs:isDefinedBy :ontology ;
    schema:dateCreated "2026-08-19T15:10:00Z"^^xsd:dateTime ;
    rdfs:seeAlso <https://www.openlinksw.com/ontology/llm-routing#> ,
        <https://linkeddata.uriburner.com/DAV/demos/daas/ontology/intelligence-allocation#> .

# ── Agentic Commerce Stack Mesh Properties (minted 2026-08-20 in
#    openrouter-stripe-intelligence-network-meshup-deepseek_v4flash-1.ttl) ──
# Five owl:ObjectProperty terms minted document-locally in the a16z
# intelligence-network meshup (:meshupOntology, @prefix : =
# https://www.a16z.news/p/openrouter-and-stripe-the-intelligence#).
# First corpus registration (the prior open-agentic-economy session minted
# implementsProtocol / isReferenceImplementationOf document-locally without
# registering). Future documents needing these concepts should REUSE the
# document-local IRIs via owl:equivalentProperty, not re-mint.

:meshPropertyImplementsProtocol a owl:ObjectProperty ;
    rdfs:label "implements protocol"@en ;
    rdfs:comment "Relates a software application or service to the protocol it implements (e.g. x402-buyer -> x402). Document-local canonical: <https://www.a16z.news/p/openrouter-and-stripe-the-intelligence#implementsProtocol> and <https://www.circle.com/blog/building-the-open-agentic-economy#implementsProtocol>."@en ;
    rdfs:isDefinedBy :ontology .

:meshPropertyIsReferenceImplementationOf a owl:ObjectProperty ;
    rdfs:label "is reference implementation of"@en ;
    rdfs:comment "Relates a concrete, executable implementation to the protocol or standard it demonstrates (e.g. x402-buyer -> x402). Document-local canonical: <https://www.a16z.news/p/openrouter-and-stripe-the-intelligence#isReferenceImplementationOf>."@en ;
    rdfs:isDefinedBy :ontology .

:meshPropertyRoutesIntelligence a owl:ObjectProperty ;
    rdfs:label "routes intelligence"@en ;
    rdfs:comment "Relates a software application or service to the intelligence-network function of routing model, token, and information flows between businesses (OpenRouter, Ori Eval, llm-routing-skill). Document-local canonical: <https://www.a16z.news/p/openrouter-and-stripe-the-intelligence#routesIntelligence>."@en ;
    rdfs:isDefinedBy :ontology .

:meshPropertySettlesValue a owl:ObjectProperty ;
    rdfs:label "settles value"@en ;
    rdfs:comment "Relates a software application, service, or protocol to the settlement of value - dollars, tokens, or other media of exchange (Stripe, x402, x402 Facilitator). Document-local canonical: <https://www.a16z.news/p/openrouter-and-stripe-the-intelligence#settlesValue>."@en ;
    rdfs:isDefinedBy :ontology .

:meshPropertyRepresentsCommerce a owl:ObjectProperty ;
    rdfs:label "represents commerce"@en ;
    rdfs:comment "Relates a document or framework to the representation of commerce as a hyperlink-based entity-relationship graph of principals, agents, offers, licenses, and access rights (LOAC). Document-local canonical: <https://www.a16z.news/p/openrouter-and-stripe-the-intelligence#representsCommerce>."@en ;
    rdfs:isDefinedBy :ontology .

# ── ArchitecturalTier — 2 disjoint re-mints aligned (2026-08-21) ──

:ArchitecturalTier a owl:Class ;
    rdfs:label "Architectural Tier"@en ;
    rdfs:comment "A functional layer within a conceptual data virtualization architecture (e.g. physical relational storage, conceptual mapping/virtualization, semantic graph and inference, universal consumption). Canonical corpus IRI; 2 disjoint re-mints aligned: Gemini 3.7 Flash collection (2026-08-21) and DeepSeek V4 Flash collection (2026-08-21-2), both minting the same document-local IRI under the Medium post URL. Future documents needing this concept should REUSE this IRI, not re-mint."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://medium.com/virtuoso-blog/conceptual-data-virtualization-for-sql-and-rdf-using-open-standards-24520925c7ce#ArchitecturalTier> .

# ── IntegrationApproach — 2 disjoint re-mints aligned (2026-08-21) ──

:IntegrationApproach a owl:Class ;
    rdfs:label "Integration Approach"@en ;
    rdfs:comment "A methodology for combining or accessing multi-source relational and graph data (e.g. SQL-only RDBMS worldview, dedicated graph store 'NoSQL' worldview, multi-model conceptual virtualization). Canonical corpus IRI; 2 disjoint re-mints aligned: Gemini 3.7 Flash collection (2026-08-21) and DeepSeek V4 Flash collection (2026-08-21-2), both minting the same document-local IRI under the Medium post URL. Future documents needing this concept should REUSE this IRI, not re-mint."@en ;
    rdfs:isDefinedBy :ontology ;
    owl:equivalentClass <https://medium.com/virtuoso-blog/conceptual-data-virtualization-for-sql-and-rdf-using-open-standards-24520925c7ce#IntegrationApproach> .
