“Having a graph and running a graph database are not the same commitment.”
— Emil Eifrem, CEO & co-founder of Neo4j — the last thing you'd expect from someone who builds graph databases
Memory, files, warehouse tables, or a graph database — the same drawing, four homes, chosen one workload at a time, with an honest “it depends” at rung two.
agent-rdf-memory on a Semantic Web — the article's three jobs as portable RDF that lives in any of the four homes, queried live with SPARQL.
Austin Kronz's Context & Chaos piece separates the drawing from the store: “having a graph and running a graph database are not the same commitment.” A three-rung customer scenario shows the answer is per-workload — a relational look-up at rung one, an empirical “it depends” at rung two, and a live traversal at rung three — and names three non-optional jobs: the operational store, agent memory, and the decision-trace context platform.
This meshup adds agent-rdf-memory — an RDF-based agent-memory harness deployed using Linked Data principles, i.e. a Semantic Web of queryable named graphs — as the concrete answer. The article's three jobs (operational store, agent memory, decision-trace context platform) become portable RDF, queried live with SPARQL; the demo below models Dana's roaming charge as synthetic RDF and answers the three rungs live.
The source is right that the model is not the store, and that the three jobs are non-optional. agent-rdf-memory's contribution is making the model portable RDF: the same graph serves rung one (RDF Views over tables), rung two (decision traces with provenance) and rung three (graph traversal) — a live instance of jobs two and three, queryable in place, on whatever store serves the workload.
The article separates the drawing (the business model) from the store (where it lives), then walks a three-rung ladder that raises the stakes until the architecture has to change.
Fast, and gone when the process ends.
Durable and cheap — not traversable under query.
No new store; joins are the only traversal.
Traversal is native, at the cost of a second store.
And the drawing does not care which you pick. That is the load-bearing distinction — and the reason agent-rdf-memory can be the portable answer: because its model is RDF on a Semantic Web, the same graph moves between homes without re-modeling.
The article keeps Dana's forty-dollar roaming charge the whole way up, raising the stakes until the storage argument changes.
Dana calls about a forty-dollar roaming charge. The agent needs who Dana is, what her plan covers, the refund policy, and any known outages on her line.
The network event log and the billing system disagree about when the outage began, and the plan end-date was migrated incorrectly. A human overrides — and the finding must work back into context.
Something breaks and it is not just Dana. The agent must follow the network outward from the break — towers, customers, contracts that start owing money the moment service drops — while the phones ring.
When the relationships just describe the objects, any store will do.
When the lines start carrying the answer — many hops, fast, under load — you need the graph.
Every aspect is a first-class entity in the companion knowledge graph — click a dimension name to open its RDF description. Table on wide screens; entity cards on narrow screens.
| Aspect | The four homes — source framework | agent-rdf-memory — a Semantic Web RDF harness |
|---|---|---|
| The core question | Source: there is no single answer — there is an answer per workload, and it is less satisfying than the diagram anyone will sell you. A routing choice you make one workload at a time. | agent-rdf-memory: the routing question becomes moot at the model layer — because the graph is portable RDF, the same model lives in any home, and 'where' is a deployment detail rather than a re-modeling. |
| Model vs store separation | Source: 'having a graph and running a graph database are not the same commitment.' The same drawing has four homes — memory, files, warehouse tables, or a graph database — and the drawing does not care which you pick. | agent-rdf-memory: embodies the separation by construction — the model is RDF (home-agnostic triples) and the store is whichever home serves the workload, so the drawing and the home never entangle. |
| The four homes | Source: memory, files in cloud storage, tables in the warehouse you already run, or a database built for connected data — four different homes, each a different store, each a different purchase. | agent-rdf-memory: the same graph is at home in all four — held in memory, serialized to files, mapped onto warehouse tables via RDF Views, or loaded into a quad store — because RDF assumes no particular store. |
| Rung one — known lookups | Source: a relational database is probably fine — this rung likely does not need a graph database. | agent-rdf-memory: agreed — rung one is served from whichever home already holds the facts, and RDF Views expose relational tables as triples in place, so no second store is needed. |
| Rung two — decisions & provenance | Source: genuinely 'it depends' — could be a graph database (the emerging context graph), could be the relational store and warehouse you already run. The answer is empirical: accuracy on evals, maintainability by hop count, latency, volatility, and the cost of the copy. | agent-rdf-memory: the decision, its reasoning, the two systems it reconciled, the policy it bent and the person who stood behind it are RDF statements with prov:wasGeneratedBy — provenance queryable in the same SPARQL, whatever home the graph lives in. |
| Rung three — live traversal | Source: this is what a graph database is for — when relationships stop describing the objects and start carrying the answer, traversed many hops, fast, under load. | agent-rdf-memory: the topology is RDF, crossed with SPARQL property paths — the rung-three graph is traversable because it was modeled as a graph, not retro-fitted onto tables. |
| The agent-memory job | Source: 'memory is an intrinsically graph-centric workload' — even the initial MCP spec shipped a graph memory (a 500-line toy), and a wave of agent-memory startups landed on the same structure independently. | agent-rdf-memory: a production instance of exactly that — core.ttl (identity), preferences.ttl (the behavioral contract), sessions/ (episodic), entities/ (semantic) and howto/ (procedural) as RDF named graphs, queried with SPARQL. |
| The context-platform job | Source: traces ('I walked this path to make a decision') become skills; a skill with no link back to what produced it is a snapshot with no expiry date. | agent-rdf-memory: the same loop as queryable provenance — sessions/ and howto/ are decision traces and skills as RDF, linked by prov:wasGeneratedBy, so supersede/retire/write-new is a query, not a snapshotted log. |
| Retrieval | Source: Prukalpa is blunt that retrieval is open — 'should you retrieve via graph, should you retrieve via keyword' — and expects all of it to change inside a year. | agent-rdf-memory: ontology-routed SPARQL context selection over named graphs, with full-text and vector fallbacks and filesystem reads as the last resort — retrieval is a query, not a bespoke fan-out. |
| Modeling cost | Source: an ontology can be bootstrapped bottom-up out of the systems you already run — point at Postgres, Snowflake or Databricks and the tables become a proposed graph — 'bottom-up produced by AI meets top-down,' a draft a human corrects rather than authors. | agent-rdf-memory: the same bootstrap is native — RDF Views (R2RML) turn existing relational schemas into a graph without copying, and the sponger reverse-constructs RDF from existing data; the human corrects, the model stays portable. |
| Query cost | Source: 'How do I query?' used to be the barrier; now the LLM speaks natural language and compiles to Cypher/GQL underneath, so specialized query skills are no longer a prerequisite. | agent-rdf-memory: the LLM compiles natural language to SPARQL — one open, W3C-standard query language across every home — so query skill is not a per-store purchase and the same question is answerable everywhere. |
| Volatility & maintainability | Source: two or three joins is routine, six is a conversation, and past some depth the query becomes something only its author can safely change — fixed, known queries reward the store you have; open-ended traversal is where a second store starts to make sense. | agent-rdf-memory: SPARQL property paths express arbitrary-depth traversal declaratively, and inference keeps derived links in step as definitions drift — the hop-count wall is a language feature, not an architecture change. |
The agent-rdf-memory solution demonstrated concretely. Below, a synthetic RDF graph models the article's running example — Dana's forty-dollar roaming charge, the two systems that disagree about the outage, the human override, the distilled skill, and the rung-three network — then the three rungs plus the model/store, three-jobs and decision-to-skill questions are answered live in SPARQL over the named graph.
The article argues the graph's value shows at rung two (the finding must work back into context) and rung three (cross the network under load). The same rungs are SPARQL queries: a look-up is a few joins, the override is a gld:reconciles link carrying provenance, the traversal is a graph walk, and the decision trace distills into a skill via gld:distilledInto — each projecting an IRI you can click through to resolve.
@prefix gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#> .
@prefix schema: <http://schema.org/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
# Rung one -- the look-up facts
gld:dana a schema:Person ; schema:name "Dana"@en ;
gld:holdsPlan gld:planGold ; gld:affectedBy gld:outage1 .
gld:planGold a gld:Plan ; schema:name "Gold Roaming Plan"@en ;
gld:endedOn "2026-08-14"^^xsd:date .
gld:refundPolicy a gld:Policy ; schema:name "No refund outside an active plan"@en ;
gld:appliesTo gld:planGold .
gld:roamingCharge a gld:Charge ; schema:name "Roaming charge"@en ;
gld:amount "40.00"^^xsd:decimal ; gld:currency "USD" ; gld:charges gld:dana .
# Rung two -- the two systems that disagree, and the override that records why
gld:networkEventLog a gld:SystemOfRecord ; schema:name "Network event log"@en ;
gld:recordsOutageStart "2026-08-13"^^xsd:date .
gld:billingSystem a gld:SystemOfRecord ; schema:name "Billing system"@en ;
gld:recordsOutageStart "2026-08-15"^^xsd:date .
gld:override a gld:Override ; schema:name "Refund approved (human override)"@en ;
gld:overrides gld:denial ;
gld:reconciles gld:networkEventLog, gld:billingSystem ;
prov:wasGeneratedBy gld:supervisor .
gld:finding a gld:Finding ; schema:name "Migrated plan end-date + outage-window disagreement"@en ;
gld:records gld:override .
# The context-platform loop -- decision trace distilled into a skill
gld:trace a gld:DecisionTrace ; schema:name "Decision trace: roaming-refund override"@en ;
prov:wasGeneratedBy gld:override ; gld:distilledInto gld:skillReconcile .
gld:skillReconcile a gld:Skill ; schema:name "Reconcile outage windows before denying a roaming refund"@en .
# Rung three -- the live network under a break
gld:towerA a gld:Tower ; schema:name "Tower A"@en ; gld:serves gld:dana .
gld:towerB a gld:Tower ; schema:name "Tower B"@en ; gld:serves gld:acme .
gld:acme a schema:Organization ; schema:name "Acme Logistics"@en .
gld:contractAcme a gld:SlaContract ; schema:name "Business SLA — credit accrues on drop"@en ;
gld:covers gld:acme .
PREFIX schema: <http://schema.org/>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?customerIri ?customer ?planIri ?plan ?policyIri ?policy ?chargeIri ?charge ?amount
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?customerIri a schema:Person ; schema:name ?customer ; gld:holdsPlan ?planIri .
?planIri schema:name ?plan .
?policyIri a gld:Policy ; schema:name ?policy ; gld:appliesTo ?planIri .
?chargeIri a gld:Charge ; schema:name ?charge ; gld:amount ?amount ; gld:charges ?customerIri .
}
}
ORDER BY ?customerPREFIX schema: <http://schema.org/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?overrideIri ?override ?systemIri ?system ?outageStart ?findingIri ?finding
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?overrideIri a gld:Override ; schema:name ?override ;
gld:reconciles ?systemIri ; gld:records ?findingIri .
?systemIri a gld:SystemOfRecord ; schema:name ?system ; gld:recordsOutageStart ?outageStart .
?findingIri a gld:Finding ; schema:name ?finding .
}
}
ORDER BY ?systemPREFIX schema: <http://schema.org/>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?towerIri ?tower ?customerIri ?customer ?contractIri ?contract
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?towerIri a gld:Tower ; schema:name ?tower ; gld:serves ?customerIri .
?customerIri schema:name ?customer .
OPTIONAL { ?contractIri a gld:SlaContract ; schema:name ?contract ; gld:covers ?customerIri . }
}
}
ORDER BY ?towerPREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX : <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live#>
SELECT ?homeIri ?home ?decision
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?homeIri a :GraphHome ; schema:name ?home ; schema:description ?decision .
}
}
ORDER BY ?homePREFIX schema: <http://schema.org/>
PREFIX : <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live#>
SELECT ?jobIri ?job ?settledness
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?jobIri a :GraphJob ; schema:name ?job ; schema:description ?settledness .
}
}
ORDER BY ?jobPREFIX schema: <http://schema.org/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?traceIri ?trace ?skillIri ?skill ?skillDate
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?traceIri a gld:DecisionTrace ; schema:name ?trace ;
prov:wasGeneratedBy ?overrideIri ; gld:distilledInto ?skillIri .
?skillIri a gld:Skill ; schema:name ?skill ; schema:dateCreated ?skillDate .
}
}
ORDER BY ?skillDateThe article's three non-optional jobs mapped one-for-one onto agent-rdf-memory: the operational store becomes the business data graph over RDF Views; agent memory becomes the named-graph memory store (core/preferences/sessions/entities/howto); and the context platform becomes the decision-trace→skill provenance loop over sessions/ and howto/ — all as portable RDF named graphs.
The system of record for an entity and its connections — the article's rung three, settled long before anyone said “agent.”
What the agent has learned and can reuse — an “intrinsically graph-centric workload” that the MCP toy and a wave of startups reached independently.
The decision-trace graph — traces distilled into skills, with provenance that forces a supersede/retire/write-new decision.
The article's job one is the system of record for an entity and its connections. agent-rdf-memory's operational half maps to RDF Views (R2RML) that expose the warehouse and relational tables as a graph in place — zero copy, same store.
The article's job two is what the agent has learned. agent-rdf-memory stores it as core.ttl (identity), preferences.ttl (procedural contract), sessions/ (episodic), entities/ (semantic) and howto/ (procedural) — each a named graph, each independently governable and queryable.
The article's job three distills traces into skills with provenance. agent-rdf-memory does the same: every session and howto is a decision trace or a skill linked by prov:wasGeneratedBy, so supersede/retire/write-new is a SPARQL query, not a snapshotted log.
Where the article calls skills retrieval an open problem, agent-rdf-memory answers with ontology-routed SPARQL context selection over named graphs, full-text/vector fallbacks, and filesystem reads as the last resort.
Where the article wants 'why did we approve a refund like Dana's last quarter' to be answerable, agent-rdf-memory stamps every statement and session with schema:dateCreated and prov:wasGeneratedBy — history is PROV-O, queryable in the same SPARQL.
core.ttl, preferences.ttl, index.ttl, ontology.ttl, and the sessions/, entities/, projects/, and howto/ folders are RDF named graphs, queried via SPARQL at the local endpoint or URIBurner. Learning is cross-LLM and cross-environment — session filenames carry provenance, not isolation — and the synthetic demo graph below is loaded into the same store, alongside the memory.
A seven-step guide that separates the model from the store, walks the three-rung ladder, then deploys the answer with agent-rdf-memory.
Treat the business model (the concepts and how they connect) and the physical store as two independent decisions. Same drawing, four homes — decide each on its own merits, not as one bundled purchase.
Take one decision and raise the stakes: rung one (a look-up), rung two (a decision with a finding), rung three (live traversal under load). Note which rung your hardest agent decisions actually sit on.
Instrument the agent and measure — accuracy on your own evals, maintainability by hop count, latency, volatility, and the cost of the copy. Anyone who names your rung-two answer without running it is guessing.
Run it once for the business decision the agent supports, and once for the agent's own memory — what it has learned, where it lives, and how you will know when it has expired. Most teams never run the second ladder.
Model the business once as RDF, then serve rung one from relational tables via RDF Views, rung two as decision triples with provenance, and rung three with SPARQL property paths — the same model, whichever home each rung needs.
Load core.ttl, preferences.ttl, index.ttl, ontology.ttl, sessions/, entities/, projects/ and howto/ as RDF named graphs on a quad store; the graph becomes the agent's queryable memory, with file reads as fallback.
Serve the graph over the SPARQL endpoint and run the demo recipes — the three rungs, the four homes, the three jobs, and the decision-to-skill loop — to confirm retrieval, provenance and traversal behave as promised.
Durable, cross-session storage of what an agent learns — identity, facts, preferences, decisions and their relationships — so the agent can recall them at the right moment.
Emil Eifrem's pattern for collapsing the modeling cost: point at the systems you already run, read the tables and data model, and derive a proposed graph — 'bottom-up produced by AI meets top-down.'
The emerging term for the graph that holds what an agent decided, why, and what that changed — the newest and least-settled of the three graph jobs.
Atlan's term for bounded, governed, versioned bundles of context — how a company defines key concepts and makes decisions — exposed through open interfaces to agents and copilots.
The source's framing and the agent-rdf-memory answer agree in substance; they differ in vocabulary and mechanism, not in the underlying claim.
Emil Eifrem's more accurate name for the context graph: most of what it holds is decision traces — the paths agents walked to make decisions — distilled into skills.
The approaches differ in kind: what the store is, how the model and the store relate, and how many engines the answer demands.
A store built for connected data, where traversal is native — the article's point is that having a graph and running a graph database are two different commitments.
Retrieval that adds a concepts layer over chunks: extract entities and relationships first, then follow links outward from a similarity-search entry point, so multi-hop reach and an inspectable path replace pure vector similarity.
Emil Eifrem's term for the gap between the whiteboard picture (circles joined by lines) and the relational schema it has to become — the gap now sitting under enterprise AI.
A graph-based model of a domain in which entities become nodes, connections become relationships, and rules organise it all — the 'drawing' the article separates from the store it lives in.
Best practices for publishing structured data on the web using HTTP URIs as identifiers and hyperlinks to connect entities.
A set of RDF triples identified by an IRI, stored as a quad — the mechanism RDF stores use to partition and govern graphs, and how agent-rdf-memory keeps its memory kinds separate.
A formal model of the concepts and relationships in a domain — historically expensive to build, now bootstrapable bottom-up from existing systems and corrected by a human.
Emil Eifrem's coinage (after cloud-washing) for the loose, sales-flavored use of 'ontology,' 'knowledge graph' and 'context graph' to mean whatever the speaker needs them to mean.
The record of where a statement came from and when — modeled with PROV-O and schema:dateCreated, so 'why did we approve a refund like Dana's last quarter?' has an answer.
A database that stores RDF triples plus a fourth element — the named graph IRI — enabling graph-level partitioning, provenance and access control.
The W3C data model of subject-predicate-object triples — the model behind agent-rdf-memory and the graph format the demo data is written in.
A declarative mapping of relational schemas to RDF ontologies via Quad Map Patterns or R2RML; SPARQL is compiled to SQL and runs in place — the zero-copy answer to modeling cost, and the mechanism that lets a graph live in the warehouse without moving it.
The W3C query language for RDF graphs — the language of a Semantic Web, and of the live demo queries in this collection.
A web of linked data — the W3C stack of RDF triples, SPARQL queries and Linked Data identifiers that agent-rdf-memory sits atop, which is what makes its model portable across the four homes.
Query the companion knowledge graph live on URIBurner. Select a recipe, edit, and run — or open the query in the workbench.
PREFIX schema: <http://schema.org/>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?customerIri ?customer ?planIri ?plan ?policyIri ?policy ?chargeIri ?charge ?amount
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?customerIri a schema:Person ; schema:name ?customer ; gld:holdsPlan ?planIri .
?planIri schema:name ?plan .
?policyIri a gld:Policy ; schema:name ?policy ; gld:appliesTo ?planIri .
?chargeIri a gld:Charge ; schema:name ?charge ; gld:amount ?amount ; gld:charges ?customerIri .
}
}
ORDER BY ?customerPREFIX schema: <http://schema.org/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?overrideIri ?override ?systemIri ?system ?outageStart ?findingIri ?finding
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?overrideIri a gld:Override ; schema:name ?override ;
gld:reconciles ?systemIri ; gld:records ?findingIri .
?systemIri a gld:SystemOfRecord ; schema:name ?system ; gld:recordsOutageStart ?outageStart .
?findingIri a gld:Finding ; schema:name ?finding .
}
}
ORDER BY ?systemPREFIX schema: <http://schema.org/>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?towerIri ?tower ?customerIri ?customer ?contractIri ?contract
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?towerIri a gld:Tower ; schema:name ?tower ; gld:serves ?customerIri .
?customerIri schema:name ?customer .
OPTIONAL { ?contractIri a gld:SlaContract ; schema:name ?contract ; gld:covers ?customerIri . }
}
}
ORDER BY ?towerPREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX : <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live#>
SELECT ?homeIri ?home ?decision
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?homeIri a :GraphHome ; schema:name ?home ; schema:description ?decision .
}
}
ORDER BY ?homePREFIX schema: <http://schema.org/>
PREFIX : <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live#>
SELECT ?jobIri ?job ?settledness
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?jobIri a :GraphJob ; schema:name ?job ; schema:description ?settledness .
}
}
ORDER BY ?jobPREFIX schema: <http://schema.org/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX gld: <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-demo#>
SELECT ?traceIri ?trace ?skillIri ?skill ?skillDate
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?traceIri a gld:DecisionTrace ; schema:name ?trace ;
prov:wasGeneratedBy ?overrideIri ; gld:distilledInto ?skillIri .
?skillIri a gld:Skill ; schema:name ?skill ; schema:dateCreated ?skillDate .
}
}
ORDER BY ?skillDatePREFIX cdx: <https://linkeddata.uriburner.com/DAV/demos/daas/ontology-terms#>
PREFIX schema: <http://schema.org/>
PREFIX : <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live#>
SELECT ?dimIri ?dim ?article ?virtuoso
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?dimIri a cdx:ComparisonDimension ; schema:name ?dim ;
:hasArticleApproach/schema:text ?article ;
:hasArmApproach/schema:text ?virtuoso .
}
}
ORDER BY ?dimPREFIX schema: <http://schema.org/>
PREFIX : <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live#>
SELECT ?mappingIri ?name ?description
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
:armSection schema:hasPart ?mappingIri .
?mappingIri schema:name ?name ; schema:description ?description .
}
}
ORDER BY ?namePREFIX schema: <http://schema.org/>
SELECT ?questionIri ?question ?answer
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?questionIri a schema:Question ; schema:name ?question ;
schema:acceptedAnswer/schema:text ?answer .
}
}
ORDER BY ?questionPREFIX schema: <http://schema.org/>
SELECT ?termIri ?name ?definition
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?termIri a schema:DefinedTerm ; schema:name ?name ; schema:description ?definition .
}
}
ORDER BY ?namePREFIX schema: <http://schema.org/>
SELECT ?stepIri ?position ?title
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?howto a schema:HowTo ; schema:step ?stepIri .
?stepIri schema:position ?position ; schema:name ?title .
}
}
ORDER BY ?positionPREFIX schema: <http://schema.org/>
PREFIX : <https://atlan.com/context-and-chaos/issue/where-should-the-graph-live#>
SELECT ?claimIri ?claim ?description
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?claimIri a schema:Claim ; schema:name ?claim ; schema:description ?description .
}
}
ORDER BY ?claimPREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?type (SAMPLE(?s) AS ?sampleEntity) (SAMPLE(?label) AS ?sampleLabel) (COUNT(?s) AS ?entityCount)
WHERE {
GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/where-should-the-graph-live-vs-virtuoso-agent-rdf-memory-meshup-deepseek_v4pro-1.ttl> {
?s rdf:type ?type .
OPTIONAL { ?s rdfs:label ?label }
}
}
GROUP BY ?type
ORDER BY DESC(?entityCount)Drag to pin nodes, double-click to unpin, click a node or edge to open its RDF description via URIBurner. Click the graph surface to arm zoom; click outside to release.