@prefix : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#> .
@prefix schema: <http://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@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 prov: <http://www.w3.org/ns/prov#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix karp: <https://thecuberesearch.com/319-breaking-analysis-alex-karp-frontier-models-and-the-real-fight-for-enterprise-ai/#> .

# =============================================================================
# Ontology — locally minted terms for this rebuttal, distinct owl:Ontology entity
# =============================================================================

:ontology a owl:Ontology ;
    schema:name "CGIF/CLIF-versus-RDF Rebuttal Local Ontology"@en ;
    schema:description "Lightweight ontology for modeling the six CGIF/CLIF-grounded claims made against RDF in Simon Polovina's 'Enterprise Knowledge Representation' paper (ontolog-forum, 2026-08-12), pairing each with a working RDF/SPARQL correction pattern using RDF-Turtle, Named Graphs, RDF 1.2 quoted triples, SHACL, and SPARQL used as a deterministic rules language (CONSTRUCT-based forward chaining, equivalent in expressive power to Datalog)."@en ;
    schema:identifier <https://groups.google.com/g/ontolog-forum/c/VimON_gBBjk/m/PAjxprE8CgAJ> ;
    rdfs:label "CGIF/CLIF-versus-RDF Rebuttal Local Ontology"@en ;
    rdfs:comment "Defines :CGIFCLIFClaim (the six claims made against RDF, grounded in CGIF/CLIF and the ISO/IEC 24707 Common Logic standard) and :RDFCorrectionPattern (this analysis's working counter-demonstration for each), reusing karp:CriticalPerspective and karp:respondsTo from the theCUBE Research Alex Karp companion KG for the critical-response entity type — the second reuse of that pattern after the why-the-triple-is-the-wrong-grain rebuttal, per cross-document-local-term-reuse discipline rather than re-minting an equivalent local class. Also defines the sample/instance-data vocabulary used across the SAP purchase-order-line-item, price, and technology-comparison demonstrations (:PurchaseOrderLineItem, :Technology, :hasVendor, :plant, etc.), each checked against schema.org before minting per ontology-cross-reference-gate.ttl: schema:seller, schema:material, schema:orderQuantity, schema:priceCurrency, schema:validFrom, schema:validThrough, schema:price, and prov:wasAttributedTo are reused directly where a confirmed match exists; every remaining term is declared with rdfs:domain/rdfs:range, an OWL characteristic, and an explicit 'checked, none found' note where no shared-vocabulary match exists."@en .

:CGIFCLIFClaim a rdfs:Class ;
    rdfs:label "CGIF/CLIF Claim"@en ;
    rdfs:comment "One of six claims made against RDF/SPARQL in Polovina's paper, each grounded in a specific CGIF or CLIF structural property (n-ary relation nodes, nested contexts, graph projection, ISO/IEC 24707 alignment, or a closed-hierarchy schema)."@en ;
    rdfs:isDefinedBy :ontology .

:allegedDeficiency a rdf:Property ;
    rdfs:label "alleged deficiency"@en ;
    rdfs:comment "The specific capability the source paper claims RDF/SPARQL structurally lacks, stated in the paper's own terms (direct quotation preserved)."@en ;
    rdfs:domain :CGIFCLIFClaim ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy :ontology .

:RDFCorrectionPattern a rdfs:Class ;
    rdfs:label "RDF Correction Pattern"@en ;
    rdfs:comment "A working RDF-Turtle/SPARQL demonstration that the paired :CGIFCLIFClaim is not a structural limitation of RDF, but a modeling or tooling choice already solved in deployed RDF 1.1/1.2 stacks — Named Graphs, RDF-star quoted triples, SHACL, OWL2 entailment, and SPARQL CONSTRUCT used as a deterministic rules language."@en ;
    rdfs:isDefinedBy :ontology .

:correctedTurtle a rdf:Property ;
    rdfs:label "corrected Turtle"@en ;
    rdfs:comment "A literal Turtle/TriG snippet demonstrating the correction (illustrative, not the full document graph)."@en ;
    rdfs:domain :RDFCorrectionPattern ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy :ontology .

:correctedSparql a rdf:Property ;
    rdfs:label "corrected SPARQL"@en ;
    rdfs:comment "A literal SPARQL query — SELECT, ASK, or CONSTRUCT used as a deterministic rule — demonstrating retrieval, entailment, or reasoning over the corrected pattern."@en ;
    rdfs:domain :RDFCorrectionPattern ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy :ontology .

:reasoningEngine a rdf:Property ;
    rdfs:label "reasoning engine"@en ;
    rdfs:comment "The specific inference/reasoning mechanism (Virtuoso RDFS++/OWL2-QL entailment, Virtuoso named-graph quad scoping, Virtuoso SHACL validation, SPARQL algebra itself, or FuXi N3 forward-chaining) that makes the correction operational rather than merely notational."@en ;
    rdfs:domain :RDFCorrectionPattern ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy :ontology .

:namedGraphExample a rdf:Property ;
    rdfs:label "named graph example"@en ;
    rdfs:comment "The illustrative named-graph IRI used to carry context, provenance, or scoping in the correction."@en ;
    rdfs:domain :RDFCorrectionPattern ;
    rdfs:range xsd:anyURI ;
    rdfs:isDefinedBy :ontology .

# =============================================================================
# Sample/instance-data vocabulary (SAP purchase-order-line-item, price, and
# technology-comparison demonstrations) — every class and property below is
# checked against schema.org (verified live against schema.org documentation,
# 2026-08-13, per external-iri-verification.ttl) before deciding to reuse
# directly or mint locally, per ontology-cross-reference-gate.ttl and
# owl-property-characterization.ttl.
# =============================================================================

:PurchaseOrderLineItem a rdfs:Class ;
    rdfs:label "Purchase Order Line Item"@en ;
    rdfs:comment "One line of an SAP-style purchase order, modeled as a single n-ary resource per the W3C n-ary relations pattern rather than reified into multiple binary triples (cor1)."@en ;
    rdfs:subClassOf schema:OrderItem ;
    rdfs:isDefinedBy :ontology .

:Technology a rdfs:Class ;
    rdfs:label "Technology"@en ;
    rdfs:comment "An SAP graph technology (SAP Graph, SAP HANA Knowledge Graph, SAP BDC Knowledge Graph) compared in the source paper's own CGIF/CLIF worked example (cor4/cor5)."@en ;
    rdfs:subClassOf schema:SoftwareApplication ;
    rdfs:isDefinedBy :ontology .

:BusinessContextAwareTechnology a rdfs:Class ;
    rdfs:label "Business-Context-Aware Technology"@en ;
    rdfs:comment "The CONSTRUCT-rule-derived classification (cor4/:demoQ5) for any :Technology deployed on SAP BTP with a Very High AI-enablement level — the RDF-native counterpart to the source paper's own CLIF forall/if rule."@en ;
    rdfs:subClassOf :Technology ;
    rdfs:isDefinedBy :ontology .

:AgentProposedTriple a rdfs:Class ;
    rdfs:label "Agent-Proposed Triple"@en ;
    rdfs:comment "A candidate triple proposed by an LLM agent, subject to SHACL specialization testing and predicate-drift normalization before admission (cor3). Checked: no equivalent schema.org or PROV-O class found."@en ;
    rdfs:isDefinedBy :ontology .

:AIEnablementRating a rdfs:Class ;
    rdfs:label "AI Enablement Rating"@en ;
    rdfs:comment "A rating value on the source paper's own three-point AI-enablement scale (High, Medium, Very High), used as the range of :aiEnablementLevel. Checked: schema:Rating was considered, but its numeric ratingValue model does not fit a fixed three-point named scale as cleanly as this small local enumeration; no closer schema.org match found."@en ;
    rdfs:isDefinedBy :ontology .

:High a :AIEnablementRating ; rdfs:label "High"@en .
:Medium a :AIEnablementRating ; rdfs:label "Medium"@en .
:VeryHigh a :AIEnablementRating ; rdfs:label "Very High"@en .

:DeploymentPlatform a rdfs:Class ;
    rdfs:label "Deployment Platform"@en ;
    rdfs:comment "A named SAP cloud deployment platform (SAP BTP, SAP HANA Cloud), used as the range of :deploymentEnvironment."@en ;
    rdfs:subClassOf schema:SoftwareApplication ;
    rdfs:isDefinedBy :ontology .

:SAP_BTP a :DeploymentPlatform ; rdfs:label "SAP Business Technology Platform"@en .
:SAP_HANA_Cloud a :DeploymentPlatform ; rdfs:label "SAP HANA Cloud"@en .

:Scenario a rdfs:Class ;
    rdfs:label "Scenario"@en ;
    rdfs:comment "A named hypothetical/what-if scenario tag attached to a statement-level (RDF-star or reified) claim (cor2). Checked: no equivalent schema.org or PROV-O class found."@en ;
    rdfs:isDefinedBy :ontology .

:WhatIfPriceIncrease a :Scenario ; rdfs:label "What-If Price Increase"@en .

:hasVendor a owl:ObjectProperty, owl:AsymmetricProperty ;
    rdfs:label "has vendor"@en ;
    rdfs:comment "The vendor/supplier organization for a purchase order line item. Checked: schema:seller directly supersedes 'vendor' terminology per schema.org's own definition — asserted as this property's superproperty below, and used as the enterprise-specific bounded-superproperty demonstration in cor6 (the Babel Tax rebuttal). cor1's primary line-item data uses schema:seller directly rather than this property, since a direct match exists."@en ;
    rdfs:subPropertyOf schema:seller ;
    rdfs:domain :PurchaseOrderLineItem ;
    rdfs:range schema:Organization ;
    rdfs:isDefinedBy :ontology .

:supplier a owl:ObjectProperty, owl:AsymmetricProperty ;
    rdfs:label "supplier (non-canonical)"@en ;
    rdfs:comment "An LLM-proposed synonym predicate, intentionally non-canonical — demonstrates predicate drift (cor3). Normalized to schema:seller by the correction's CONSTRUCT rule rather than asserted rdfs:subPropertyOf here, since formally legitimizing it would undercut the drift-correction it exists to illustrate."@en ;
    rdfs:domain :PurchaseOrderLineItem ;
    rdfs:range schema:Organization ;
    rdfs:isDefinedBy :ontology .

:targetsPredicate a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "targets predicate"@en ;
    rdfs:comment "The RDF predicate an agent-proposed triple targets, checked against a closed SHACL sh:in vocabulary (cor3). Checked: rdf:predicate was considered but not reused directly, since :AgentProposedTriple instances are lightweight proposal markers, not full rdf:Statement reification triples with matching rdf:subject/rdf:object."@en ;
    rdfs:domain :AgentProposedTriple ;
    rdfs:range rdf:Property ;
    rdfs:isDefinedBy :ontology .

:plant a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "plant"@en ;
    rdfs:comment "The SAP plant (manufacturing/distribution location code) for a purchase order line item. Checked: no equivalent schema.org property found; schema:Place was adopted below as this property's range since a plant is physically a place, even though no schema.org property named 'plant' exists."@en ;
    rdfs:domain :PurchaseOrderLineItem ;
    rdfs:range schema:Place ;
    rdfs:isDefinedBy :ontology .

:pricingCondition a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "pricing condition"@en ;
    rdfs:comment "The SAP pricing condition type code applied to a purchase order line item. Checked: no equivalent schema.org property found."@en ;
    rdfs:domain :PurchaseOrderLineItem ;
    rdfs:range rdfs:Resource ;
    rdfs:isDefinedBy :ontology .

:taxCode a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "tax code"@en ;
    rdfs:comment "The SAP tax code applied to a purchase order line item. Checked: no equivalent schema.org property found."@en ;
    rdfs:domain :PurchaseOrderLineItem ;
    rdfs:range rdfs:Resource ;
    rdfs:isDefinedBy :ontology .

:companyCode a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "company code"@en ;
    rdfs:comment "The SAP company code (accounting unit) a price specification is scoped to. Checked: no equivalent schema.org property found; schema:Organization was considered as this property's range but a company code identifies an accounting unit narrower than a full Organization, so range is left as an unconstrained resource."@en ;
    rdfs:domain schema:PriceSpecification ;
    rdfs:range rdfs:Resource ;
    rdfs:isDefinedBy :ontology .

:conditionType a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "condition type"@en ;
    rdfs:comment "The SAP pricing condition type code for a price specification (a related but distinct SAP concept from :pricingCondition, which applies to the line item rather than the price master record). Checked: no equivalent schema.org property found."@en ;
    rdfs:domain schema:PriceSpecification ;
    rdfs:range rdfs:Resource ;
    rdfs:isDefinedBy :ontology .

:approvalStatus a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "approval status"@en ;
    rdfs:comment "The workflow approval status of a price specification. Checked: schema:actionStatus was considered but applies to schema:Action, not schema:PriceSpecification; no equivalent schema.org property found."@en ;
    rdfs:domain schema:PriceSpecification ;
    rdfs:range rdfs:Resource ;
    rdfs:isDefinedBy :ontology .

:scenario a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "scenario"@en ;
    rdfs:comment "The named hypothetical/what-if scenario a statement-level claim is tagged with (cor2's RDF-star/reified demonstration). Checked: no equivalent schema.org or PROV-O property found."@en ;
    rdfs:domain rdf:Statement ;
    rdfs:range :Scenario ;
    rdfs:isDefinedBy :ontology .

:primaryPurpose a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:label "primary purpose"@en ;
    rdfs:comment "A one-line statement of a Technology's primary purpose. Checked: schema:description was considered but is a generic free-text summary property rather than specifically a purpose statement — asserted as this property's superproperty since the specialization is still a valid narrowing."@en ;
    rdfs:subPropertyOf schema:description ;
    rdfs:domain :Technology ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy :ontology .

:deploymentEnvironment a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "deployment environment"@en ;
    rdfs:comment "The named cloud platform a Technology is deployed on. Checked: schema:operatingSystem was considered but names an operating system, not a deployment platform; no equivalent schema.org property found."@en ;
    rdfs:domain :Technology ;
    rdfs:range :DeploymentPlatform ;
    rdfs:isDefinedBy :ontology .

:aiEnablementLevel a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "AI enablement level"@en ;
    rdfs:comment "A Technology's rating on the source paper's own three-point AI-enablement scale. Checked: no equivalent schema.org property found."@en ;
    rdfs:domain :Technology ;
    rdfs:range :AIEnablementRating ;
    rdfs:isDefinedBy :ontology .

:effectiveIn a owl:ObjectProperty, owl:FunctionalProperty ;
    rdfs:label "effective in"@en ;
    rdfs:comment "The organization a price specification is effective/scoped within — the CONSTRUCT rule's derived output in cor2/:demoQ2, not source data. Checked: schema:areaServed was considered but denotes geography, not organizational scope; no equivalent schema.org property found."@en ;
    rdfs:domain schema:PriceSpecification ;
    rdfs:range rdfs:Resource ;
    rdfs:isDefinedBy :ontology .

:requiresApproval a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:label "requires approval"@en ;
    rdfs:comment "Whether a price specification is pending workflow approval — the CONSTRUCT rule's derived output in cor2/:demoQ2, not source data. Checked: no equivalent schema.org property found."@en ;
    rdfs:domain schema:PriceSpecification ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy :ontology .

# =============================================================================
# Skill provenance entities
# =============================================================================

<https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator#this> a schema:SoftwareApplication ;
    schema:name "kg-generator skill"@en ;
    schema:url <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator> ;
    schema:description "Skill that generates comprehensive RDF-Turtle or JSON-LD knowledge graphs from web and document sources, including thesis/framework rebuttals with agent-authored critical-perspective sections."@en .

<https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/rdf-infographic-skill#this> a schema:SoftwareApplication ;
    schema:name "rdf-infographic-skill"@en ;
    schema:url <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/rdf-infographic-skill> ;
    schema:description "Skill that generates interactive HTML infographics and Markdown companions from RDF knowledge graphs."@en .

# =============================================================================
# Main analysis, opening rebuttal synopsis noting prior rebuttal task
# =============================================================================

:analysis a schema:CreativeWork, schema:Article ;
    schema:name "Rebuttal: The CGIF/CLIF Case Against RDF, Named Graphs, and SPARQL"@en ;
    schema:headline "CGIF and CLIF Don't Escape the Problems They Accuse RDF Of — An RDF-Turtle and SPARQL-as-Rules-Language Rebuttal"@en ;
    schema:description "This is the second rebuttal in this operator's series answering RDF/OWL/triple-store critiques raised on public forums with working, standards-based counter-demonstrations rather than prose alone. The first, at https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.html, answered James Stakelum's twelve alleged triple-grain failures (event fragmentation, provenance, epistemic status, disambiguation, etc.) using named graphs, RDF-star/RDF 1.2, PROV-O, OWL2 entailment, SHACL, and FuXi N3 rules. This second rebuttal addresses a related but distinct thread: an ontolog-forum post by John F. Sowa forwarding Stakelum's review of the Sowa/Majumdar Ontology Summit talk (which itself argues RDF/OWL triple stores are obsolete and cites a 'Babel Tax' quadratic-integration failure of open-predicate systems), followed by Simon Polovina's detailed paper 'Enterprise Knowledge Representation: Conceptual Graphs, ISO Common Logic, and SAP Graph Foundations,' which argues Conceptual Graphs (CGs), formalized through CGIF and CLIF under ISO/IEC 24707 Common Logic, should replace RDF in enterprise semantic layers such as SAP Business Data Cloud. Six specific claims from Polovina's paper are answered here, each with a working RDF-Turtle and SPARQL correction — the SPARQL used explicitly as a deterministic rules language (CONSTRUCT-based forward chaining) over Named Graphs, with RDF 1.2 quoted triples deployed where nested-context claims require statement-level annotation."@en ;
    schema:abstract """Simon Polovina's <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23polovinaPaper" target="_blank" rel="noopener noreferrer">ontolog-forum paper</a> argues that <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termCGIF" target="_blank" rel="noopener noreferrer">Conceptual Graphs</a> — serialized as <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termCGIF" target="_blank" rel="noopener noreferrer">CGIF</a> and <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termCLIF" target="_blank" rel="noopener noreferrer">CLIF</a> under <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termCommonLogic" target="_blank" rel="noopener noreferrer">ISO/IEC 24707 Common Logic</a> — should replace RDF in enterprise systems such as the <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23SAP_BDC_Knowledge_Graph" target="_blank" rel="noopener noreferrer">SAP BDC Knowledge Graph</a>.<br><br>The case rests on six structural claims: that RDF forces reification for n-ary business transactions, has no native concept of context, produces fragile LLM-to-SPARQL translation, offers only &lsquo;triple-store heuristics&rsquo; rather than a lossless mapping to first-order logic, reasons through tableau subsumption and RDFS rules alone, and suffers a quadratic <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termBabelTax" target="_blank" rel="noopener noreferrer">Babel Tax</a> that CG's closed type hierarchies are said to avoid.<br><br>Each claim is answered below with working RDF-Turtle and SPARQL — not prose alone. The throughline: every capability the paper credits uniquely to CGIF/CLIF — n-ary relation nodes, context boxes, sound-and-complete projection, lossless first-order logic, projection/join/restriction, and a closed predicate vocabulary — already exists in standard RDF&nbsp;1.1/1.2 tooling: n-ary resources, <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termNamedGraph" target="_blank" rel="noopener noreferrer">Named Graphs</a>, <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termRdfStar" target="_blank" rel="noopener noreferrer">RDF-star</a>, <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termShacl" target="_blank" rel="noopener noreferrer">SHACL</a>, <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termOwl2Profile" target="_blank" rel="noopener noreferrer">OWL2 entailment</a>, and the SPARQL algebra itself.<br><br>The sharpest claim cuts the other way. <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23johnSowa" target="_blank" rel="noopener noreferrer">John Sowa</a>'s own cover note, posted in the very same thread, states that Common Logic is itself an open-predicate system — just like RDF and OWL — so CGIF inherits the identical <a class="entity-link" href="https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fcgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl%23termBabelTax" target="_blank" rel="noopener noreferrer">Babel Tax</a> cost it is credited with escaping."""@en ;
    schema:about :sourceThread ;
    schema:dateCreated "2026-08-12"^^xsd:date ;
    schema:hasPart :claimsSection, :correctionsSection, :demoDataSection, :faqSection, :glossarySection, :howtoSection ;
    schema:isBasedOn <https://medium.com/@JamesStakelum/why-the-triple-is-the-wrong-grain-1cad99e136f4> ;
    schema:citation <https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.html> ;
    prov:wasGeneratedBy <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator#this> .

<https://medium.com/@JamesStakelum/why-the-triple-is-the-wrong-grain-1cad99e136f4> a schema:CreativeWork ;
    schema:name "Why the Triple Is the Wrong Grain"@en ;
    schema:description "Prior rebuttal target (2026-08-12 series entry 1 of 2): Stakelum's earlier Medium article proposing the Symbol Grounding Framework as a triple replacement, answered at https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.html."@en .

<https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.html> a schema:Article, schema:CreativeWork ;
    schema:name "Why the Triple Is the Wrong Grain — An RDF Rebuttal"@en ;
    schema:headline "Rebuttal: Why 'The Triple Is the Wrong Grain' Is Wrong About the Triple"@en ;
    schema:url <https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.html> ;
    schema:description "First entry in this operator's RDF-rebuttal series (2026-08-12): answered James Stakelum's twelve alleged triple-grain failures using named graphs, RDF-star/RDF 1.2, PROV-O, OWL2 entailment, SHACL, and FuXi N3 rules."@en ;
    schema:about <https://medium.com/@JamesStakelum/why-the-triple-is-the-wrong-grain-1cad99e136f4> ;
    schema:encoding [
        a schema:MediaObject ;
        schema:encodingFormat "text/turtle" ;
        schema:contentUrl <https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.ttl>
    ] .

# =============================================================================
# Source thread + authors + the source paper's own worked claims
# =============================================================================

:sourceThread a schema:DiscussionForumPosting ;
    schema:name "Ontology Summit talk by Majumdar and Sowa"@en ;
    schema:url <https://groups.google.com/g/ontolog-forum/c/VimON_gBBjk/m/PAjxprE8CgAJ> ;
    schema:datePublished "2026-08-12"^^xsd:date ;
    schema:isPartOf :ontologForumGroup ;
    schema:author :johnSowa ;
    schema:comment :polovinaPaper, :kingsleyReply ;
    schema:description "ontolog-forum Google Groups thread: John F. Sowa forwards James Lee Stakelum's favorable review of the Sowa/Majumdar 2026 Ontology Summit talk, arguing OWL and triple stores are obsolete and citing a quadratic-cost 'Babel Tax' inherent to open-predicate systems (Common Logic, RDF, OWL alike); Simon Polovina replies with a detailed CGIF/CLIF-grounded paper arguing Conceptual Graphs should replace RDF in SAP Business Data Cloud; Kingsley Idehen replies questioning the 'obsolete' framing and citing a live RDF-based AI-agent harness running on comparable consumer hardware."@en .

:ontologForumGroup a schema:Organization ;
    schema:name "ontolog-forum"@en ;
    schema:url <https://groups.google.com/g/ontolog-forum> .

:johnSowa a schema:Person ;
    schema:name "John F. Sowa"@en ;
    schema:jobTitle "Fellow, Permion; co-author, ISO/IEC 24707 Common Logic; creator of Conceptual Graphs"@en .

:arunMajumdar a schema:Person ;
    schema:name "Arun Majumdar"@en ;
    schema:jobTitle "CEO, Permion"@en .

:permion a schema:Organization ;
    schema:name "Permion"@en ;
    schema:description "Company demonstrating a twelve-agent, GPU-free local inference engine built on Definite Clause Grammars and Common Logic; winner of the G7 GovAI Grand Challenge."@en .

<https://medium.com/@JamesStakelum#this> a schema:Person ;
    schema:name "James Lee Stakelum"@en ;
    schema:url <https://medium.com/@JamesStakelum> ;
    schema:identifier "https://medium.com/@JamesStakelum" .

:stakelumReview a schema:Article ;
    schema:name "The Architecture That Makes AI Trustworthy Wasn't Invented. It Was Discovered."@en ;
    schema:author <https://medium.com/@JamesStakelum#this> ;
    schema:url <https://medium.com/@JamesStakelum/the-architecture-that-makes-ai-trustworthy-wasnt-invented-it-was-discovered-7db897138b21> ;
    schema:isPartOf :sourceThread ;
    schema:description "Review of the Sowa/Majumdar Ontology Summit talk arguing Common Logic (and, by the same open-predicate structure, RDF and OWL) incurs a quadratic 'Babel Tax' when federating across independent domains, and proposing the closed-grammar Symbol Grounding Framework (SGF) as a remedy."@en .

:babelTaxQuote a schema:Quotation ; schema:isPartOf :stakelumReview ;
    schema:text "Common Logic is an open-predicate system. So is RDF. So is OWL. The Semantic Web was built on this same open-predicate foundation, and it failed at scale. ... This is the Babel Tax."@en ;
    schema:citation :stakelumReview .

:polovinaPaper a schema:ScholarlyArticle ;
    schema:name "Enterprise Knowledge Representation: Conceptual Graphs, ISO Common Logic, and SAP Graph Foundations"@en ;
    schema:author <https://www.linkedin.com/in/simonpolovina/#this> ;
    schema:datePublished "2026-08-12"^^xsd:date ;
    schema:isPartOf :sourceThread ;
    schema:description "Paper arguing Conceptual Graphs (CGs), serialized as CGIF and CLIF under ISO/IEC 24707 Common Logic, should replace RDF triple stores in enterprise data foundations such as SAP Business Data Cloud, on grounds of n-ary relation support, nested contexts, LLM-agent grounding via graph projection, ISO standards alignment, reasoning mechanism, and schema complexity."@en ;
    schema:citation <https://doi.org/10.1007/978-3-540-73681-3_1> .

<https://www.linkedin.com/in/simonpolovina/#this> a schema:Person ;
    schema:name "Simon Polovina"@en ;
    schema:url <https://www.linkedin.com/in/simonpolovina/> ;
    schema:identifier "https://www.linkedin.com/in/simonpolovina/" ;
    schema:description "Author of the 2007 ICCS foundational Conceptual Graphs paper (Polovina 2007) and the 2026 ontolog-forum CGIF/CLIF-versus-RDF paper this rebuttal answers."@en .

:kingsleyReply a schema:DiscussionForumPosting ;
    schema:name "Kingsley Idehen's ontolog-forum reply"@en ;
    schema:author <https://www.linkedin.com/in/kidehen#this> ;
    schema:isPartOf :sourceThread ;
    schema:datePublished "2026-08-12"^^xsd:date ;
    schema:description "Reply questioning the claim that OWL and triple stores are obsolete, and citing a live RDF-based AI-agent harness (this operator's agent-rdf-memory) running comparably to the Permion demo hardware."@en ;
    schema:url <https://linkeddata.uriburner.com/weblog/> , <https://github.com/OpenLinkSoftware/ai-agent-skills/blob/main/agent-rdf-memory/> .

# =============================================================================
# The six CGIF/CLIF claims against RDF (schema:position-ordered)
# =============================================================================

:claimsSection a schema:CreativeWork ; schema:isPartOf :analysis ;
    schema:name "The Paper's Six Claims Against RDF"@en ;
    schema:description "Polovina's own worked comparisons and direct quotations for each of the six claims made against RDF/SPARQL in favor of Conceptual Graphs/CGIF/CLIF, reproduced verbatim for accurate critique."@en ;
    schema:hasPart :cl1, :cl2, :cl3, :cl4, :cl5, :cl6 .

:cl1 a :CGIFCLIFClaim ; schema:isPartOf :claimsSection ;
    schema:position 1 ;
    schema:name "N-ary business transactions require reification, bloating triples into the billions"@en ;
    :allegedDeficiency "Standard ERP business entities rarely fit neat binary triples. An SAP purchase order line item involves a vendor, material, quantity, plant, currency, pricing condition, and tax code. In RDF, representing this n-ary transaction requires extensive reification or artificial intermediate nodes, bloating the number of triples into the billions and degrading SPARQL join performance."@en ;
    schema:workExample :qcl1 .
:qcl1 a schema:Quotation ; schema:citation :polovinaPaper ;
    schema:text "CGs natively support n-ary relation nodes linked directly to concept nodes. A multi-party sales order or supply chain movement remains a single, unfragmented hypergraph node."@en .

:cl2 a :CGIFCLIFClaim ; schema:isPartOf :claimsSection ;
    schema:position 2 ;
    schema:name "RDF lacks native contexts; Named Graphs break standard triple semantics"@en ;
    :allegedDeficiency "RDF lacks a native concept of contexts, forcing developers to resort to Named Graphs or annotations—which break standard triple semantics and fragment reasoning engines."@en ;
    schema:workExample :qcl2 .
:qcl2 a schema:Quotation ; schema:citation :polovinaPaper ;
    schema:text "Conceptual Graphs feature nested contexts as a core primitive. A belief state, a temporal validity window, a hypothetical 'what-if' planning scenario, or an unapproved workflow step can be cleanly enclosed within a context box."@en .

:cl3 a :CGIFCLIFClaim ; schema:isPartOf :claimsSection ;
    schema:position 3 ;
    schema:name "SPARQL translation from LLM output is notoriously fragile; only graph projection is sound and complete"@en ;
    :allegedDeficiency "Converting LLM outputs into SPARQL triple patterns is notoriously fragile due to predicate drift, URI matching issues, and rigid triple structures."@en ;
    schema:workExample :qcl3 .
:qcl3 a schema:Quotation ; schema:citation :polovinaPaper ;
    schema:text "CGs support graph projection—a sound and complete mechanism for pattern matching. ... If the projection fails, the logic engine rejects the hypothesis or pinpoints the exact ungrounded concept."@en .

:cl4 a :CGIFCLIFClaim ; schema:isPartOf :claimsSection ;
    schema:position 4 ;
    schema:name "RDF is web-scale heuristics; only CGIF/CLIF translate losslessly into First-Order Logic"@en ;
    :allegedDeficiency "While RDF is a W3C web recommendation optimised for web-scale linking, CGs align directly with ISO/IEC 24707 Common Logic. ... having an underlying representation that translates losslessly into First-Order Logic provides a stronger governance guarantee than triple-store heuristics."@en ;
    schema:workExample :qcl4 .
:qcl4 a schema:Quotation ; schema:citation :polovinaPaper ;
    schema:text "CGs align directly with ISO/IEC 24707 Common Logic ... providing a stronger governance guarantee than triple-store heuristics."@en .

:cl5 a :CGIFCLIFClaim ; schema:isPartOf :claimsSection ;
    schema:position 5 ;
    schema:name "RDF reasoning is limited to tableau subsumption / RDFS rules; CG uniquely offers projection, join, restriction"@en ;
    :allegedDeficiency "Reasoning Mechanism: Tableau-based subsumption / RDFS rules [for SAP Knowledge Graph on RDF] versus Graph Projection, Join, and Restriction [for the Conceptual Graph Alternative]."@en ;
    schema:workExample :qcl5 .
:qcl5 a schema:Quotation ; schema:citation :polovinaPaper ;
    schema:text "Operations such as graph projection, join, and restriction enable sound structural reasoning without requiring resolution theorem provers."@en .

:cl6 a :CGIFCLIFClaim ; schema:isPartOf :claimsSection ;
    schema:position 6 ;
    schema:name "RDF suffers quadratic edge-type expansion (Babel Tax); CG offers compact, closed type hierarchies"@en ;
    :allegedDeficiency "Schema Complexity: Quadratic expansion of edge types (Babel Tax risk) [for SAP Knowledge Graph on RDF] versus Compact type hierarchies mapped to business objects [for the Conceptual Graph Alternative]."@en ;
    schema:workExample :qcl6, :babelTaxQuote .
:qcl6 a schema:Quotation ; schema:citation :polovinaPaper ;
    schema:text "Unconstrained open predicates (found in RDF, OWL, and raw Common Logic) incur an [n-squared] integration bottleneck (the 'Babel Tax') when federating across independent domains."@en .

# =============================================================================
# The six corrections (karp:CriticalPerspective reused + :RDFCorrectionPattern local)
# =============================================================================

:correctionsSection a schema:CreativeWork ; schema:isPartOf :analysis ;
    schema:name "RDF-Turtle and SPARQL Corrections to the Paper's Six Claims"@en ;
    schema:description "For each claim, a working RDF-Turtle and SPARQL correction using Named Graphs, RDF 1.2 quoted triples, SHACL, and SPARQL CONSTRUCT used explicitly as a deterministic rules language, demonstrating each alleged deficiency is a gap in the paper's assumptions about RDF/SPARQL tooling, not a structural limit of RDF as a data model."@en ;
    schema:author <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator#this> ;
    schema:accountablePerson <https://www.linkedin.com/in/kidehen#this> ;
    prov:wasGeneratedBy <https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/kg-generator#this> ;
    schema:hasPart :cor1, :cor2, :cor3, :cor4, :cor5, :cor6 .

:cor1 a :RDFCorrectionPattern, karp:CriticalPerspective ; schema:isPartOf :correctionsSection ;
    karp:respondsTo :cl1 ;
    schema:position 1 ;
    schema:name "An n-ary transaction is one RDF resource with seven properties — zero reification, zero triple bloat"@en ;
    schema:description "The W3C's own n-ary relations pattern (in production use across schema.org Actions and PROV-O Activities since before 2010) models the whole line item as a single subject IRI; every property attaches directly to that one resource. Seven properties on one resource produce exactly seven triples sharing one subject — not reification, not artificial intermediate nodes, and nowhere near 'billions.' This is the same structural economy CGIF credits uniquely to its own n-ary relation nodes."@en ;
    :correctedTurtle """GRAPH <urn:g:sap:po-line-item-4711> {
  :poLineItem4711 a :PurchaseOrderLineItem ;
      schema:seller       :VendorAcmeGmbH ;
      schema:material     :Material100234 ;
      schema:orderQuantity "50"^^xsd:integer ;
      :plant              :Plant1000 ;
      schema:priceCurrency "EUR" ;
      :pricingCondition   :ConditionPR00 ;
      :taxCode            :TaxCodeV1 .
}"""^^xsd:string ;
    :correctedSparql """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
# Reconstruct the whole n-ary transaction from ONE resource, one query — no join across reified fragments
CONSTRUCT { ?lineItem ?p ?o }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?lineItem a :PurchaseOrderLineItem ; ?p ?o } }"""^^xsd:string ;
    :reasoningEngine "Virtuoso quad-scoped GRAPH retrieval treats the line-item IRI, not any single triple, as the unit of identity and retrieval — the transaction round-trips atomically from one CONSTRUCT, exactly matching CGIF's claimed 'single, unfragmented hypergraph node' behavior."@en ;
    :namedGraphExample <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> .

:cor2 a :RDFCorrectionPattern, karp:CriticalPerspective ; schema:isPartOf :correctionsSection ;
    karp:respondsTo :cl2 ;
    schema:position 2 ;
    schema:name "Named Graphs are RDF 1.1's own standardized quad model, not a semantics-breaking bolt-on"@en ;
    schema:description "SPARQL 1.1's dataset model (default graph plus a set of named graphs) has been a W3C Recommendation since 2013; it does not 'break' triple semantics, it extends the RDF abstract syntax with a fourth (graph) term precisely so context can be first-class. A price's validity window, condition type, company code, and pending workflow approval are properties inside that named-graph context box — structurally identical to CGIF's own context box, differing only in bracket notation. Where a claim needs annotation at the single-statement level rather than the graph level (e.g. a hypothetical what-if scenario on one specific price), RDF 1.2 quoted triples (RDF-star) provide that finer grain without any additional named graph."@en ;
    :correctedTurtle """GRAPH <urn:g:sap:price-PR00-companyA> {
  :price100 a schema:PriceSpecification ;
      schema:price         "100"^^xsd:decimal ;
      schema:priceCurrency "EUR" ;
      schema:validFrom     "2026-01-01"^^xsd:date ;
      schema:validThrough  "2026-12-31"^^xsd:date ;
      :conditionType   :ConditionPR00 ;
      :companyCode     :CompanyA ;
      :approvalStatus  :PendingApproval .
}

# RDF 1.2 quoted triple: a hypothetical what-if scenario nested on the single statement, not the whole graph
<<:price100 schema:price "120"^^xsd:decimal>> :scenario :WhatIfPriceIncrease ;
    prov:wasAttributedTo :planningTeam ."""^^xsd:string ;
    :correctedSparql """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
# Context-scoped SPARQL rule: reasoning stays inside the price's own context box, never leaks into the broader KB
CONSTRUCT { ?price :effectiveIn :CompanyA ; :requiresApproval true }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> {
    ?price :companyCode :CompanyA ; :approvalStatus :PendingApproval
  }
}"""^^xsd:string ;
    :reasoningEngine "Virtuoso's native quad storage makes the named graph the context boundary at the storage layer, and its RDF 1.2 (RDF-star) support stores the quoted triple <<:price100 schema:price \"120\">> as an addressable node — the hypothetical is annotated without polluting the asserted default price."@en ;
    :namedGraphExample <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> .

:cor3 a :RDFCorrectionPattern, karp:CriticalPerspective ; schema:isPartOf :correctionsSection ;
    karp:respondsTo :cl3 ;
    schema:position 3 ;
    schema:name "SHACL specialization tests plus CONSTRUCT-based predicate normalization are a sound and complete projection equivalent"@en ;
    schema:description "'Predicate drift' is exactly the failure mode SHACL shapes exist to catch: an sh:in constraint on the predicate vocabulary rejects any LLM-proposed triple whose predicate is not a recognized specialization of the schema, and pinpoints which triple failed — the identical behavior credited to CG projection ('the engine rejects the hypothesis or pinpoints the exact ungrounded concept'). Where the LLM's predicate is a synonym rather than an error (e.g. 'supplier' for 'vendor'), a one-line owl:equivalentProperty declaration plus a CONSTRUCT rule normalizes it deterministically instead of discarding the hypothesis."@en ;
    :correctedTurtle """:AgentProposalShape a sh:NodeShape ;
    sh:targetClass :AgentProposedTriple ;
    sh:property [ sh:path :targetsPredicate ; sh:in ( schema:seller schema:material schema:orderQuantity :plant ) ] .

:supplier owl:equivalentProperty schema:seller ."""^^xsd:string ;
    :correctedSparql """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
PREFIX schema: <http://schema.org/>
# Normalization rule: canonicalizes a drifted LLM predicate name to the real shared vocabulary term
CONSTRUCT { ?s schema:seller ?o }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?s :supplier ?o } }

# Specialization test: any proposed triple whose predicate is NOT in the closed set fails validation
# (Virtuoso SHACL engine: SELECT ?report WHERE { ?report a sh:ValidationReport } after sh:validate)"""^^xsd:string ;
    :reasoningEngine "Virtuoso's SHACL validator performs the specialization/rejection test at write time; owl:equivalentProperty entailment plus a CONSTRUCT rule performs the normalization CGIF credits to projection, both deterministic and sound-and-complete over the declared vocabulary."@en ;
    :namedGraphExample <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> .

:cor4 a :RDFCorrectionPattern, karp:CriticalPerspective ; schema:isPartOf :correctionsSection ;
    karp:respondsTo :cl4 ;
    schema:position 4 ;
    schema:name "SPARQL CONSTRUCT is a Datalog-equivalent decidable rules language — a stronger determinism guarantee than unrestricted CLIF, not a weaker one"@en ;
    schema:description "RDF's model-theoretic semantics has been a W3C Recommendation (RDF 1.1 Semantics) since 2014, and OWL 2's profiles (RL, QL, EL) are deliberately bounded, decidable fragments of first-order logic — SPARQL CONSTRUCT-chain reasoning over them is provably equivalent in expressive power to Datalog, meaning it always terminates and always produces the same answer. Full, unrestricted Common Logic/CLIF, by contrast, has the expressive power of general first-order logic, which is well known (since Church and Turing, 1936) to be undecidable: no algorithm is guaranteed to terminate on an arbitrary CLIF entailment question. Bounding reasoning to a decidable fragment is what a 'governance guarantee' actually requires in an enterprise system — CLIF's greater raw expressivity is the opposite of a stronger guarantee for exactly the auditability property the source paper is arguing for."@en ;
    :correctedTurtle """:SAP_Graph a :Technology ; :deploymentEnvironment :SAP_BTP ; :aiEnablementLevel :VeryHigh .
:SAP_BDC_Knowledge_Graph a :Technology ; :deploymentEnvironment :SAP_BTP ; :aiEnablementLevel :VeryHigh ."""^^xsd:string ;
    :correctedSparql """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
# SPARQL CONSTRUCT rule — Datalog-equivalent, decidable, always terminates (the deterministic RDF counterpart
# to the CLIF (forall (x) (if (and ...) (BusinessContextAware x))) rule quoted from the source paper)
CONSTRUCT { ?tech a :BusinessContextAwareTechnology }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> {
    ?tech a :Technology ;
        :deploymentEnvironment :SAP_BTP ;
        :aiEnablementLevel :VeryHigh .
  }
}"""^^xsd:string ;
    :reasoningEngine "Virtuoso executes the CONSTRUCT rule as a single bounded pass over the asserted graph; because it is restricted to the decidable RDF/OWL2-RL fragment (unlike unrestricted CLIF), termination and result-set determinism are guaranteed by construction, not by application discipline."@en ;
    :namedGraphExample <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> .

:cor5 a :RDFCorrectionPattern, karp:CriticalPerspective ; schema:isPartOf :correctionsSection ;
    karp:respondsTo :cl5 ;
    schema:position 5 ;
    schema:name "SPARQL's own algebra IS projection, join, and restriction — RDF reasoning was never limited to tableau/RDFS"@en ;
    schema:description "SPARQL 1.1's formal algebra (W3C Recommendation) is defined in exactly relational-algebra terms: a SELECT clause is a projection over the variable set, sharing a variable across multiple triple patterns in the same WHERE clause is a join, and a FILTER clause is a restriction. A single SPARQL query below performs all three natively — the identical trio of operations the source paper credits uniquely to CG projection/join/restriction — and RDF reasoning is additionally not limited to tableau subsumption: Virtuoso's RDFS++/OWL2-QL entailment and FuXi's N3 forward-chaining rules give rule-based, non-tableau reasoning paths as well."@en ;
    :correctedTurtle """:SAP_Graph schema:name "SAP Graph" ; :primaryPurpose "Unified graph service" ; :aiEnablementLevel :High .
:SAP_HANA_Knowledge_Graph schema:name "SAP HANA Knowledge Graph" ; :primaryPurpose "Graph engine for HANA Cloud" ; :aiEnablementLevel :Medium .
:SAP_BDC_Knowledge_Graph schema:name "SAP BDC Knowledge Graph" ; :primaryPurpose "Business-context-aware graph" ; :aiEnablementLevel :VeryHigh ."""^^xsd:string ;
    :correctedSparql """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
PREFIX schema: <http://schema.org/>
# One query, three relational-algebra operations native to SPARQL 1.1:
#   SELECT ?techName ?purpose  -> PROJECTION
#   shared variable ?tech across two triple patterns -> JOIN
#   FILTER(?level = :VeryHigh) -> RESTRICTION
SELECT ?techName ?purpose
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> {
    ?tech schema:name ?techName ;
        :primaryPurpose ?purpose ;
        :aiEnablementLevel ?level .
    FILTER(?level = :VeryHigh)
  }
}"""^^xsd:string ;
    :reasoningEngine "The SPARQL 1.1 algebra (W3C Recommendation, formally specified via relational operators) performs projection/join/restriction as first-class operations; Virtuoso layers RDFS++/OWL2-QL entailment and optional FuXi N3 forward chaining on top for subsumption and rule-based derivation beyond tableau."@en ;
    :namedGraphExample <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> .

:cor6 a :RDFCorrectionPattern, karp:CriticalPerspective ; schema:isPartOf :correctionsSection ;
    karp:respondsTo :cl6 ;
    schema:position 6 ;
    schema:name "CGIF/CLIF inherit the identical Babel Tax by the source thread's own admission — shared Linked Data vocabularies are RDF's actual, working mitigation"@en ;
    schema:description "The self-contradiction is on the record in the same thread: Sowa's own cover note states 'Common Logic is an open-predicate system. So is RDF. So is OWL' before describing the same quadratic Babel Tax the paper credits CG with escaping — but CGIF/CLIF's predicate vocabulary is precisely as open as RDF's (any domain expert may define any relation; the paper's own SAP_Graph/SAP_HANA_Knowledge_Graph/SAP_BDC_Knowledge_Graph CGIF/CLIF example mints six bespoke predicates — primaryPurpose, scope, deployment, aiEnablement, compares, deploymentEnvironment — with no closed grammar bounding them). The 'compact type hierarchies' the paper credits to CG are a vocabulary-governance discipline, not a formalism-level property of CGIF/CLIF, and RDF supports the identical discipline via rdfs:subPropertyOf bounding. RDF's actual, deployed answer to the Babel Tax operates one layer up: shared, dereferenceable vocabularies (schema.org alone defines 800+ types reused, unmodified, by many millions of web pages) let independent parties converge on the same predicates without ever negotiating a pairwise mapping — the web-scale mechanism neither the Stakelum review nor the Polovina paper credits RDF with having."@en ;
    :correctedTurtle """:hasVendor rdfs:subPropertyOf schema:seller .

# The source paper's own CGIF/CLIF predicates (compares, primaryPurpose, scope, deployment, aiEnablement,
# deploymentEnvironment) are exactly as open/bespoke as any RDF predicate — no closed grammar bounds them."""^^xsd:string ;
    :correctedSparql """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
PREFIX schema: <http://schema.org/>
# Bounded-superproperty reasoning: any new relational predicate stays open-vocabulary while
# staying queryable under a small, shared superproperty set — no pairwise mapping needed.
# This runs plain (no entailment mode required): it matches directly asserted :hasVendor triples.
SELECT ?s ?o
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?s :hasVendor ?o } }
# With RDFS subproperty entailment enabled on the endpoint (Virtuoso: DEFINE input:inference), the
# same triple also satisfies `?s schema:seller ?o` via the asserted :hasVendor rdfs:subPropertyOf
# schema:seller declaration — no second mapping rule needed."""^^xsd:string ;
    :reasoningEngine "Virtuoso RDFS++ entailment on rdfs:subPropertyOf bounds new predicates under a shared superproperty automatically; at web scale, schema.org's shared, dereferenceable vocabulary is the deployed mechanism that avoids the O(n^2) pairwise-mapping cost the Babel Tax describes — the same cost CGIF/CLIF inherits per Sowa's own open-predicate framing."@en ;
    :namedGraphExample <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> .

# =============================================================================
# Demo instance data + live SPARQL queries (real named graphs, not just prose)
# =============================================================================

:demoDataSection a schema:CreativeWork ; schema:isPartOf :analysis ;
    schema:name "Demo Instance Data"@en ;
    schema:description "The six corrections above are instantiated as real instance data in a companion flat-Turtle file, loadable into a quad store (e.g. Virtuoso) the same way as the main TTL: a single resource landing in one named graph equal to its own URL. Every :correctedSparql/:demoQ query below is scoped to that one graph via FROM NAMED/GRAPH, distinguished internally by subject IRI and rdf:type. The illustrative GRAPH { ... }-wrapped Turtle shown in :cor1/:cor2's :correctedTurtle still demonstrates the general RDF Named Graph capability as notation. The SPARQL queries below run against this dataset in the SPARQL Workbench, not merely as documentation strings."@en ;
    schema:hasPart :demoDataset, :demoQ1, :demoQ1b, :demoQ2, :demoQ2b, :demoQ3, :demoQ4, :demoQ4b, :demoQ5, :demoQ5b, :demoQ6 .

:demoDataset a schema:Dataset ; schema:isPartOf :demoDataSection ;
    schema:name "cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl"@en ;
    schema:description "Companion flat-Turtle file with the actual corrected instance triples for the six RDF corrections (:cor1 through :cor6), landing in one named graph equal to its own URL, plus the RDF 1.2 quoted-triple hypothetical price scenario from :cor2. Load it and run the ten SPARQL queries below against live data."@en ;
    schema:encodingFormat "text/turtle"@en .

:demoQ1 a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q1 — Reconstruct the whole n-ary transaction from one resource (answers cl1/cor1)"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
CONSTRUCT { ?lineItem ?p ?o }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?lineItem a :PurchaseOrderLineItem ; ?p ?o } }"""@en ;
    rdfs:comment "Returns all seven line-item properties (schema:seller, schema:material, schema:orderQuantity, :plant, schema:priceCurrency, :pricingCondition, :taxCode) plus rdf:type from one query, one subject, zero reification — plus two more properties (:supplier, :hasVendor) this same subject also carries from the demo dataset's cor3/cor6 examples, since it is one shared subject IRI within the single loaded graph."@en .

:demoQ1b a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q1b — SELECT complement of Q1: same match, tabular bindings instead of a constructed graph"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
SELECT ?p ?o
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { :poLineItem4711 ?p ?o } }"""@en ;
    rdfs:comment "Identical WHERE pattern to Q1, but SELECT ?p ?o instead of CONSTRUCT — returns the same match as a variable-bindings table rather than a serialized RDF graph, which most SPARQL clients (including Virtuoso's default HTML results view) render more directly than a CONSTRUCT result."@en .

:demoQ2 a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q2 — Context-scoped price rule, reasoning stays inside the named graph (answers cl2/cor2)"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
CONSTRUCT { ?price :effectiveIn :CompanyA ; :requiresApproval true }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?price :companyCode :CompanyA ; :approvalStatus :PendingApproval } }"""@en ;
    rdfs:comment "The rule never leaves the named-graph context box — no leaking into the broader knowledge base, matching CGIF's own context-scoping claim."@en .

:demoQ2b a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q2b — SELECT complement of Q2: the price and its qualifying properties as bindings"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
SELECT ?price ?companyCode ?approvalStatus
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> {
    ?price :companyCode ?companyCode ; :approvalStatus ?approvalStatus .
    FILTER(?companyCode = :CompanyA && ?approvalStatus = :PendingApproval)
  }
}"""@en ;
    rdfs:comment "Same qualifying condition as Q2, returned as a bindings table (?price, ?companyCode, ?approvalStatus) rather than the CONSTRUCTed :effectiveIn/:requiresApproval triples."@en .

:demoQ3 a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q3 — RDF 1.2 quoted-triple hypothetical, nested belief without a new named graph (answers cl2/cor2)"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX schema: <http://schema.org/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
# Compact RDF 1.2 (RDF-star) form, resolved directly by Virtuoso's SPARQL Workbench:
# SELECT ?scenario ?assertedBy WHERE { << :price100 schema:price "120"^^xsd:decimal >> :scenario ?scenario ; prov:wasAttributedTo ?assertedBy . }
# Equivalent rdf:Statement-reified form, portable to any RDF 1.1 SPARQL engine (used in the demo dataset):
SELECT ?scenario ?assertedBy
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> {
    ?stmt a rdf:Statement ; rdf:subject :price100 ; rdf:predicate schema:price ; rdf:object "120"^^xsd:decimal ;
        :scenario ?scenario ; prov:wasAttributedTo ?assertedBy .
  }
}"""@en ;
    rdfs:comment "The what-if price is a statement-level annotation, distinct from the asserted default price — finer-grained than a whole named graph. Shown in both RDF 1.2 quoted-triple form (as Virtuoso resolves it) and its rdf:Statement-reified equivalent (as the loadable demo dataset stores it, for portability across RDF 1.1-only engines)."@en .

:demoQ4 a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q4 — Predicate-drift normalization rule (answers cl3/cor3)"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
PREFIX schema: <http://schema.org/>
CONSTRUCT { ?s schema:seller ?o }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?s :supplier ?o } }"""@en ;
    rdfs:comment "Normalizes an LLM-proposed 'supplier' predicate to the real shared vocabulary term schema:seller via owl:equivalentProperty — deterministic, not a discarded hypothesis."@en .

:demoQ4b a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q4b — SELECT complement of Q4: the drifted subject/object pair as bindings"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
SELECT ?s ?o
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?s :supplier ?o } }"""@en ;
    rdfs:comment "Identical WHERE pattern to Q4, but SELECT ?s ?o instead of CONSTRUCT — shows the pre-normalization :supplier assertion directly as a bindings table, for comparison against Q4's normalized schema:seller output graph."@en .

:demoQ5 a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q5 — Datalog-equivalent CONSTRUCT rule, decidable and terminating (answers cl4/cor4)"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
CONSTRUCT { ?tech a :BusinessContextAwareTechnology }
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?tech a :Technology ; :deploymentEnvironment :SAP_BTP ; :aiEnablementLevel :VeryHigh . } }"""@en ;
    rdfs:comment "The RDF-native counterpart to the source paper's own CLIF (forall (x) (if (and ...) ...)) rule — bounded, decidable, always terminates."@en .

:demoQ5b a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q5b — SELECT complement of Q5: the qualifying technology as a binding"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
SELECT ?tech
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE { GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> { ?tech a :Technology ; :deploymentEnvironment :SAP_BTP ; :aiEnablementLevel :VeryHigh . } }"""@en ;
    rdfs:comment "Identical WHERE pattern to Q5, but SELECT ?tech instead of CONSTRUCT — the same rule's conclusion (which technology qualifies) shown as a bindings table rather than the CONSTRUCTed rdf:type triple."@en .

:demoQ6 a schema:SoftwareSourceCode ; schema:isPartOf :demoDataSection ;
    schema:name "Q6 — Projection, join, and restriction in one native SPARQL query (answers cl5/cor5)"@en ;
    schema:programmingLanguage "SPARQL"@en ;
    schema:text """PREFIX : <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-claude_sonnet_5-1.ttl#>
PREFIX schema: <http://schema.org/>
SELECT ?techName ?purpose
FROM NAMED <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl>
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/cgif-clif-rdf-rebuttal-demo-data-claude_sonnet_5-1.ttl> {
    ?tech schema:name ?techName ; :primaryPurpose ?purpose ; :aiEnablementLevel ?level .
    FILTER(?level = :VeryHigh)
  }
}"""@en ;
    rdfs:comment "SELECT = projection, shared ?tech variable across triple patterns = join, FILTER = restriction — the exact trio CGIF credits uniquely to graph projection."@en .

# =============================================================================
# FAQ (>= 12)
# =============================================================================

:faqSection a schema:FAQPage ; schema:isPartOf :analysis ;
    schema:name "Frequently Asked Questions"@en ;
    schema:mainEntity :fq1, :fq2, :fq3, :fq4, :fq5, :fq6, :fq7, :fq8, :fq9, :fq10, :fq11, :fq12 .

:fq1 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Does RDF really require reification for n-ary business transactions like a purchase order line item?"@en ;
    schema:acceptedAnswer :fa1 .
:fa1 a schema:Answer ; schema:text "No. The W3C's own n-ary relations pattern models the whole transaction as one resource with as many properties as the transaction has parties — no reification, no blank-node fragmentation, no triple bloat. Seven properties produce seven triples sharing one subject IRI, exactly as demonstrated in :cor1."@en .

:fq2 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Do Named Graphs 'break standard triple semantics,' as the source paper claims?"@en ;
    schema:acceptedAnswer :fa2 .
:fa2 a schema:Answer ; schema:text "No. SPARQL 1.1's dataset model (default graph plus named graphs) is a W3C Recommendation since 2013, extending RDF's abstract syntax with a fourth graph term. It is standardized semantics, not a semantics-breaking bolt-on — see :cor2."@en .

:fq3 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Is converting LLM output into SPARQL patterns inherently more fragile than CG graph projection?"@en ;
    schema:acceptedAnswer :fa3 .
:fa3 a schema:Answer ; schema:text "No — the fragility the paper describes (predicate drift, URI matching) is precisely what SHACL shape validation and owl:equivalentProperty-driven CONSTRUCT normalization are built to catch and correct, giving the same sound-and-complete specialization test credited to CG projection — see :cor3."@en .

:fq4 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Is RDF/OWL merely 'heuristic,' lacking a lossless translation into First-Order Logic that CGIF/CLIF supposedly has?"@en ;
    schema:acceptedAnswer :fa4 .
:fa4 a schema:Answer ; schema:text "RDF has a W3C-standardized model-theoretic semantics, and OWL2's profiles are deliberately bounded, decidable FOL fragments — SPARQL CONSTRUCT reasoning over them is Datalog-equivalent and always terminates. Unrestricted CLIF has full FOL expressivity, which is undecidable in general; bounding to a decidable fragment is a stronger determinism guarantee for enterprise governance, not a weaker one — see :cor4."@en .

:fq5 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Is RDF reasoning really limited to 'tableau-based subsumption / RDFS rules,' as the paper's comparison table states?"@en ;
    schema:acceptedAnswer :fa5 .
:fa5 a schema:Answer ; schema:text "No. SPARQL's own algebra performs projection, join, and restriction natively (SELECT, shared variables, FILTER), and RDF stacks additionally support RDFS++/OWL2-QL entailment and rule-based forward chaining (e.g. FuXi N3) beyond tableau — see :cor5."@en .

:fq6 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Does the SPARQL algebra actually perform projection, join, and restriction the way the CG paper credits to graph operations?"@en ;
    schema:acceptedAnswer :fa6 .
:fa6 a schema:Answer ; schema:text "Yes — this is definitional, not incidental. SPARQL 1.1's formal semantics (W3C Recommendation) define SELECT as projection over the variable set, multiple triple patterns sharing a variable as a join, and FILTER as restriction — the exact operations named in the source paper's own 'Graph Projection, Join, and Restriction' row — see :cor5, :demoQ6."@en .

:fq7 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Does CGIF/CLIF actually escape the Babel Tax the source thread's own cover note describes?"@en ;
    schema:acceptedAnswer :fa7 .
:fa7 a schema:Answer ; schema:text "No — the same thread contains the rebuttal. Sowa's cover note states Common Logic is itself 'an open-predicate system. So is RDF. So is OWL,' meaning CGIF inherits the identical quadratic-mapping cost credited to it as an escape from — see :cor6, :babelTaxQuote."@en .

:fq8 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "What is RDF's actual, deployed mitigation for the Babel Tax, if not a closed grammar?"@en ;
    schema:acceptedAnswer :fa8 .
:fa8 a schema:Answer ; schema:text "Shared, dereferenceable Linked Data vocabularies — schema.org alone defines 800+ types reused unmodified by millions of independent web pages, avoiding pairwise predicate-mapping negotiation entirely. rdfs:subPropertyOf additionally bounds new relational predicates under small superproperty sets — see :cor6."@en .

:fq9 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Can RDF represent nested, hypothetical, or belief-state contexts the way CGIF's context boxes do?"@en ;
    schema:acceptedAnswer :fa9 .
:fa9 a schema:Answer ; schema:text "Yes, at two granularities: a named graph for a whole context (e.g. a company code's pricing scope), or an RDF 1.2 quoted triple for a single-statement hypothetical (e.g. one what-if price scenario) without needing a separate named graph — see :cor2."@en .

:fq10 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Does using SPARQL CONSTRUCT as a rules language really give the same rigor as the paper's CLIF (forall ...) rule?"@en ;
    schema:acceptedAnswer :fa10 .
:fa10 a schema:Answer ; schema:text "Yes — CONSTRUCT-chain reasoning over RDF/OWL2-RL is provably Datalog-equivalent: bounded, terminating, and deterministic. It is the direct RDF counterpart to the paper's own CLIF forall/if rule for BusinessContextAware technologies — see :cor4, :demoQ5."@en .

:fq11 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Does this rebuttal claim CGIF/CLIF and Common Logic have no legitimate use cases?"@en ;
    schema:acceptedAnswer :fa11 .
:fa11 a schema:Answer ; schema:text "No. The claim under rebuttal is narrower: that RDF/SPARQL is structurally incapable of the six properties described, and must therefore be replaced. Each correction shows the property is already available in standard RDF 1.1/1.2 tooling — a comparative-fit argument, not a claim that Common Logic lacks value for other purposes."@en .

:fq12 a schema:Question ; schema:isPartOf :faqSection ;
    schema:name "Is this the first time this operator has rebutted a triple-store critique with working RDF/SPARQL?"@en ;
    schema:acceptedAnswer :fa12 .
:fa12 a schema:Answer ;
    schema:text "No — this is the second entry in the series. The first, at https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.html, answered James Stakelum's twelve alleged triple-grain failures the same way: reproducing the article's own examples and pairing each with a working named-graph, RDF-star, PROV-O, OWL2, SHACL, or FuXi correction — see the synopsis at the top of :analysis."@en ;
    schema:citation <https://linkeddata.uriburner.com/DAV/demos/daas/why-the-triple-is-the-wrong-grain-rebuttal-claude_code-1.html> .

# =============================================================================
# Glossary (>= 12, mixing locally-coined and reused external terms)
# =============================================================================

:glossarySection a skos:ConceptScheme, schema:DefinedTermSet ; schema:isPartOf :analysis ;
    schema:name "Glossary"@en ;
    schema:hasDefinedTerm :termCGIF, :termCLIF, :termCommonLogic, :termGraphProjection, :termNamedGraph,
        :termRdfStar, :termShacl, :termDatalog, :termBabelTax, :termNaryRelation, :termOwl2Profile,
        :termVirtuosoQuadStore .

:termCGIF a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "CGIF (Conceptual Graph Interchange Format)"@en ;
    schema:description "The bracket-notation linear serialization of a Conceptual Graph, standardized as one dialect under ISO/IEC 24707 Common Logic; used in Polovina's paper to represent the SAP graph comparison as concept and relation nodes."@en .

:termCLIF a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "CLIF (Common Logic Interchange Format)"@en ;
    schema:description "The Lisp-style S-expression serialization of a Common Logic text, the second ISO/IEC 24707 dialect used in Polovina's paper, including a (forall (x) (if ... ...)) inference rule directly analogous to a SPARQL CONSTRUCT rule."@en .

:termCommonLogic a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "ISO/IEC 24707 Common Logic"@en ;
    schema:description "The ISO standard for a family of first-order-logic-based languages (of which CGIF and CLIF are dialects); per John Sowa's own cover note, an open-predicate system in the same sense as RDF and OWL, and therefore subject to the same Babel Tax argument leveled against them."@en .

:termGraphProjection a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "Graph Projection"@en ;
    schema:description "The CG operation testing whether a candidate graph is a valid specialization of an existing schema graph; this rebuttal's RDF-native equivalent is SHACL shape validation combined with owl:equivalentProperty/rdfs:subPropertyOf-driven CONSTRUCT normalization."@en .

:termNamedGraph a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "Named Graph"@en ;
    schema:description "An IRI-identified set of triples, forming the fourth (graph) term of an RDF quad and the standardized SPARQL 1.1 dataset context mechanism; used here as the RDF-native equivalent of a CGIF context box."@en .

:termRdfStar a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "RDF-star / RDF 1.2 Quoted Triples"@en ;
    schema:description "The RDF 1.2 extension letting a whole triple be quoted and used as the subject of another triple, enabling statement-level (rather than whole-graph-level) context annotation — used here for the nested what-if price scenario."@en .

:termShacl a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "SHACL"@en ;
    schema:description "The Shapes Constraint Language for validating RDF graphs against structural constraints; used here as the sound-and-complete specialization/rejection test answering the graph-projection claim."@en .

:termDatalog a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "Datalog"@en ;
    schema:description "A decidable, function-free subset of first-order logic used for deductive database rules; SPARQL CONSTRUCT reasoning over RDF/OWL2-RL is provably equivalent in expressive power to Datalog, giving guaranteed termination unlike unrestricted Common Logic/CLIF."@en .

:termBabelTax a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "Babel Tax"@en ;
    schema:description "James Stakelum's term for the quadratic (O(n^2)) integration cost of pairwise-mapping predicates across independently defined open-predicate vocabularies; per Sowa's own cover note, a property shared by Common Logic, RDF, and OWL alike, not one RDF alone incurs."@en .

:termNaryRelation a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "N-ary Relation (RDF pattern)"@en ;
    schema:description "The W3C's standard pattern for modeling a relation among more than two things in RDF: mint one resource IRI for the relation/event and attach every participant as a property of that resource — no reification required."@en .

:termOwl2Profile a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "OWL 2 Profile (RL/QL/EL)"@en ;
    schema:description "A deliberately bounded, decidable fragment of OWL 2 DL (itself a decidable fragment of first-order logic); trades some raw FOL expressivity for guaranteed reasoner termination — the enterprise-governance property this rebuttal argues RDF/OWL already provides more strongly than unrestricted CLIF."@en .

:termVirtuosoQuadStore a schema:DefinedTerm, skos:Concept ; schema:isPartOf :glossarySection ;
    schema:name "Virtuoso Quad Store"@en ;
    schema:description "OpenLink Virtuoso's storage model, in which every RDF triple is physically stored as a (subject, predicate, object, graph) quad, with built-in RDFS++/OWL2-QL entailment, SPARQL 1.1, RDF 1.2 (RDF-star), and SHACL validation — the engine running every correction demonstrated in this rebuttal."@en .

# =============================================================================
# HowTo — one step per claim/correction pair (actionable)
# =============================================================================

:howtoSection a schema:HowTo ; schema:isPartOf :analysis ;
    schema:name "How to Answer Each CGIF/CLIF Claim With Working RDF"@en ;
    schema:description "Six actionable steps, one per claim, for modeling the same enterprise content in production RDF/SPARQL so the alleged deficiency does not arise."@en ;
    schema:step :hstep1, :hstep2, :hstep3, :hstep4, :hstep5, :hstep6 .

:hstep1 a schema:HowToStep ; schema:isPartOf :howtoSection ; schema:position 1 ;
    schema:name "Model n-ary transactions as one resource with N properties"@en ;
    schema:text "Mint one IRI for the transaction (line item, sales order, movement) and attach every participant as a direct property of that resource, ideally inside a dedicated named graph. See :cor1."@en .

:hstep2 a schema:HowToStep ; schema:isPartOf :howtoSection ; schema:position 2 ;
    schema:name "Use a named graph for whole-scope context, RDF 1.2 quoted triples for single-statement context"@en ;
    schema:text "Enclose validity windows, condition types, and approval states in a named graph; reach for an RDF-star quoted triple only when a hypothetical or belief needs to attach to one specific statement rather than the whole context. See :cor2."@en .

:hstep3 a schema:HowToStep ; schema:isPartOf :howtoSection ; schema:position 3 ;
    schema:name "Gate agent-proposed triples with SHACL, normalize drift with owl:equivalentProperty"@en ;
    schema:text "Define an sh:in constraint on the accepted predicate set for agent-proposed triples, and declare owl:equivalentProperty mappings for known synonyms so a CONSTRUCT rule normalizes drift instead of discarding valid hypotheses. See :cor3."@en .

:hstep4 a schema:HowToStep ; schema:isPartOf :howtoSection ; schema:position 4 ;
    schema:name "Reason with SPARQL CONSTRUCT chains over a bounded OWL 2 profile, not unrestricted FOL"@en ;
    schema:text "Write inference as SPARQL CONSTRUCT rules over RDF/OWL2-RL; this stays Datalog-equivalent, decidable, and terminating — the property enterprise governance actually needs, unlike unrestricted Common Logic/CLIF. See :cor4."@en .

:hstep5 a schema:HowToStep ; schema:isPartOf :howtoSection ; schema:position 5 ;
    schema:name "Use SELECT/shared-variable-join/FILTER directly for projection, join, and restriction"@en ;
    schema:text "Do not reach for an external formalism for these three operations — they are native SPARQL 1.1 algebra. Layer RDFS++/OWL2-QL entailment or FuXi N3 rules on top only when subsumption/derivation beyond a single query is needed. See :cor5."@en .

:hstep6 a schema:HowToStep ; schema:isPartOf :howtoSection ; schema:position 6 ;
    schema:name "Avoid the Babel Tax with shared vocabularies and rdfs:subPropertyOf, not a closed grammar"@en ;
    schema:text "Reuse an existing shared, dereferenceable vocabulary (schema.org, PROV-O, FOAF) wherever it fits, and declare rdfs:subPropertyOf to a small superproperty set for anything bespoke, so new predicates stay queryable under a bounded set without pairwise mapping negotiation. See :cor6."@en .
