European Union Cellar Virtuoso Use Case
Case study of Cellar as a Virtuoso-backed semantic repository operated by the Publications Office of the European Union using Linked Data principles.
Virtuoso Use Case Collection
A use-case document showing how Virtuoso supports a 24/7 Cellar Knowledge Graph constructed from many EU open datasets for humans, applications, and AI agents. The case study treats Cellar like DBpedia: a public, Virtuoso-backed knowledge graph deployed with Linked Data principles so it manifests a usable Semantic Web.
Cellar is a public-sector semantic repository use case: multilingual EU publications and related open datasets need durable identifiers, RDF metadata, ontology-backed structure, queryable relationships, and continuous access. Virtuoso is modeled here as the platform that makes those RDF/SPARQL, Linked Data, and agent-facing workloads operational at scale.
Case study of Cellar as a Virtuoso-backed semantic repository operated by the Publications Office of the European Union using Linked Data principles.
EU publications require multilingual, persistent, queryable metadata across legal, bibliographic, vocabulary, organisational, and harvested open-data domains.
Cellar represents a pattern for turning many EU datasets into a coherent RDF knowledge graph that remains available around the clock.
The graph has to be deployed using Linked Data principles: durable IRIs, RDF descriptions, typed links, and resolver-friendly access that materialize a Semantic Web.
The platform choice must satisfy non-negotiable requirements for graph scale, SPARQL performance, uptime, and concurrent human and agent access.
Virtuoso provides the RDF triple-store, SPARQL access layer, Linked Data publishing substrate, and scalable runtime for Cellar metadata workloads.
Representative workloads include WEMI traversal, Official Journal retrieval, Whoiswho organisation lookup, identifier resolution, and assistant-mediated templates.
Cellar combines REST for known content retrieval, feeds for ingestion notifications, and SPARQL for discovery, relationship traversal, and metadata analytics.
The Virtuoso-backed Cellar pattern enables machine-readable EU publication metadata, reusable identifiers, queryable vocabularies, assistant-mediated access, and public Semantic Web deployment.
The pattern separates known-resource content retrieval from graph discovery: REST retrieves known content streams and notices; Virtuoso SPARQL supports metadata discovery, relationship traversal, identifier reconciliation, analytics, and Semantic Web access. High performance, scalability, and 24/7 availability are non-negotiable because the graph serves humans and automated agents.
EU publication metadata knowledge graph constructed from many EU open datasets, stored in a triple store, and queried using SPARQL.
Virtuoso triple store/SPARQL platform identified in Cellar training as the Cellar knowledge graph store.
24/7 public knowledge graph powered by Virtuoso, used here as a comparison point for Cellar-style open data access.
Use HTTP IRIs, publish RDF descriptions, and connect resources so Cellar manifests a navigable Semantic Web.
Web of machine-readable RDF resources enabled when public knowledge graphs expose dereferenceable identifiers and typed links.
The deployed graph must be usable by browsers, SPARQL tools, applications, and AI agents that need durable identifiers and machine-readable context.
High-performance SPARQL execution, large graph scale, concurrency, and reliable uptime are non-negotiable platform requirements.
Public SPARQL interface for querying Cellar metadata.
OpenLink assistant that uses AI and SPARQL templates to query the Cellar Public Knowledge Graph.
Each source is represented in RDF and linked from the main analysis entity.
Explains that Cellar metadata is stored in a knowledge graph/triple store and queried via SPARQL.
Open sourceDescribes METS packages, FRBR/WEMI, file-system and RDBMS storage, the knowledge graph, REST, RSS/Atom, and SPARQL dissemination.
Open sourceDocumentation hub linking end-user manual, developer guide, code, training material, Postman collection, and research papers.
Open sourceTraining deck for Cellar public interfaces, APIs, the Virtuoso SPARQL endpoint, and practical SPARQL query examples.
Open sourcePublication describing Cellar as the semantic repository of the Publications Office.
Open sourceOrganisation chart source supplied for institutional context.
Open sourceOpenLink Cello assistant configuration for querying the Cellar Public Knowledge Graph.
Open sourcePublic Cellar endpoint for querying Cellar metadata with SPARQL.
Open sourceEuropean Data Portal SPARQL service endpoint included for cross-portal linked data context.
Open sourceQueries are modeled as schema:SoftwareSourceCode with preserved query text and target endpoints. Complete examples get live query actions; templates with placeholders are marked for value substitution instead of linked as runnable queries.
Retrieves Work, Expression, Manifestation, Item, language code, and format for a CELEX identifier.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix purl: <http://purl.org/dc/elements/1.1/>
select distinct ?work, ?expr, ?manif, ?langCode, str(?format) as ?format, ?item
where {
?work owl:sameAs <http://publications.europa.eu/resource/celex/32018R1805> .
?expr cdm:expression_belongs_to_work ?work ;
cdm:expression_uses_language ?lang .
?lang purl:identifier ?langCode .
?manif cdm:manifestation_manifests_expression ?expr;
cdm:manifestation_type ?format.
?item cdm:item_belongs_to_manifestation ?manif.
} LIMIT 1000Finds Official Journal resources from 2022 and their business identifiers.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?uri ?businessIdentifier
WHERE {
?uri cdm:official-journal_year "2022"^^xsd:gYear.
?uri rdf:type cdm:official-journal.
?uri owl:sameAs ?businessIdentifier .
}Retrieves person, membership, position, and organisation labels from the EU Whoiswho branch.
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix euvoc: <http://publications.europa.eu/ontology/euvoc#>
prefix org: <http://www.w3.org/ns/org#>
prefix vcard: <http://www.w3.org/2006/vcard/ns#>
prefix person: <http://publications.europa.eu/resource/person>
SELECT DISTINCT *
where {
?per a foaf:Person. ?per foaf:name ?name .
?per foaf:givenName ?givenName .
?per vcard:hasGender ?gender .
?per foaf:familyName ?familyName .
?per org:hasMembership ?membership.
?per vcard:hasHonorificPrefix ?honorificPrefix .
?membership euvoc:positionComplement ?position .
?membership org:organization ?org .
?org skos:prefLabel ?label .
FILTER (str(?familyName) = 'MICHEL' && str(?givenName) = 'Charles')
FILTER (lang(?position) = 'en' && lang(?label) = 'en')
}Cello assistant template that federates into Cellar and matches EuroVoc labels. This template preserves documented placeholders and needs real values from the underlying knowledge graph before execution.
PREFIX cdm: <http://publications.europa.eu/ontology/cdm#>
PREFIX skos-core: <http://www.w3.org/2004/02/skos/core#>
SELECT *
WHERE {
SERVICE <https://publications.europa.eu/webapi/rdf/sparql> {
SELECT DISTINCT ?work ?label
WHERE {
?work cdm:resource_legal_in-force "1"^^<http://www.w3.org/2001/XMLSchema#boolean> ;
a cdm:legislation_secondary;
cdm:work_date_document ?date ;
cdm:work_is_about_concept_eurovoc ?eurovoc .
{
SELECT ?eurovoc
WHERE {
?eurovoc skos-core:inScheme <http://eurovoc.europa.eu/100141>;
skos-core:prefLabel ?label .
FILTER (str(?label)="{{Subject}}")
}
}
}
ORDER BY DESC(?date)
}
}
{{LIMIT provided by /limit value. Default is LIMIT 10.}}Cello assistant template for resolving identifiers and publication titles through CDM. This template preserves documented placeholders and needs real values from the underlying knowledge graph before execution.
PREFIX cdm: <http://publications.europa.eu/ontology/cdm#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT *
WHERE {
SERVICE <https://publications.europa.eu/webapi/rdf/sparql> {
SELECT GROUP_CONCAT(?psi, ',') AS ?identifier, STR(?title) AS ?title, ?date
WHERE {
?expression cdm:expression_belongs_to_work ?work.
?work owl:sameAs ?psi .
?work cdm:work_date_document ?date .
?expression cdm:expression_title ?title.
?expression cdm:expression_uses_language <http://publications.europa.eu/resource/authority/language/ENG>.
OPTIONAL { ?expression cdm:expression_subtitle ?subtitle. }
VALUES(?work) { (<{{Add Publication URI Here}}>) }
}
}
}
{{LIMIT provided by /limit value. Default is LIMIT 10.}}Training-deck example that lists predicate/object pairs for a known Cellar resource.
prefix cellar: <http://publications.europa.eu/resource/cellar/>
select ?property ?object
where {
cellar:db594e8d-c430-11ec-b6f4-01aa75ed71a1 ?property ?object .
}Training-deck example that starts from an Official Journal business identifier and retrieves equivalent publication identifiers.
prefix owl: <http://www.w3.org/2002/07/owl#>
SELECT ?uri ?psi
WHERE {
?uri owl:sameAs <http://publications.europa.eu/resource/oj/JOC_2022_182_R_0001>.
?uri owl:sameAs ?psi.
}Training-deck example that traverses Work, Expression, Manifestation, and Item resources to list language labels and formats.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?lang_en ?format
WHERE {
?work owl:sameAs <http://publications.europa.eu/resource/oj/JOC_2022_182_R_0001>.
?expression cdm:expression_belongs_to_work ?work.
?manifestation cdm:manifestation_manifests_expression ?expression.
?item cdm:item_belongs_to_manifestation ?manifestation.
?expression cdm:expression_uses_language ?languageConcept.
?languageConcept skos:prefLabel ?lang_en.
FILTER(LANG(?lang_en)="en")
?manifestation cdm:manifestation_type ?format.
}Training-deck example that retrieves all direct predicate/object metadata attached to the normalized work resource.
prefix owl: <http://www.w3.org/2002/07/owl#>
SELECT ?work ?p ?o
WHERE {
?work owl:sameAs <http://publications.europa.eu/resource/oj/JOC_2022_182_R_0001>.
?work ?p ?o.
}Training-deck example that retrieves metadata across Work, Expression, Manifestation, and Item levels.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix owl: <http://www.w3.org/2002/07/owl#>
SELECT ?work ?pWork ?oWork ?expression ?pExpression ?oExpression ?manifestation ?pManifestation ?oManifestation ?item ?pItem ?oItem
WHERE {
?work owl:sameAs <http://publications.europa.eu/resource/oj/JOC_2022_182_R_0001>.
?expression cdm:expression_belongs_to_work ?work.
?manifestation cdm:manifestation_manifests_expression ?expression.
?item cdm:item_belongs_to_manifestation ?manifestation.
?work ?pWork ?oWork.
?expression ?pExpression ?oExpression.
?manifestation ?pManifestation ?oManifestation.
?item ?pItem ?oItem.
}
limit 1000Training-deck example that retrieves Official Journals published within a specific period with class, number, collection, year, and document date.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?uri ?ojclass ?ojnumber ?ojcollection ?ojyear ?workdatedoc
WHERE {
?uri cdm:official-journal_class ?ojclass.
?uri cdm:official-journal_number ?ojnumber.
?uri cdm:official-journal_part_of_collection_document ?ojcollection.
?uri cdm:official-journal_year ?ojyear.
?uri cdm:work_date_document ?workdatedoc.
?uri rdf:type cdm:official-journal.
FILTER(?workdatedoc >= "2022-01-01"^^xsd:date && ?workdatedoc < "2022-10-01"^^xsd:date)
}Training-deck example for the Official Journal act class introduced in the 2024 context.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?uri
WHERE {
?uri cdm:official-journal-act_year "2024"^^xsd:gYear.
?uri rdf:type cdm:official-journal-act.
}Training-deck example that connects Official Journal acts to business identifiers using owl:sameAs.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?c_act ?act
WHERE {
?c_act owl:sameAs ?act.
?c_act cdm:official-journal-act_year "2024"^^xsd:gYear.
FILTER(regex(str(?act), "/oj/"))
}Training-deck practical-session example for case-law classes, ECLI identifiers, titles, and creator agents.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select distinct ?w ?class ?ecli ?title ?agent
where {
?w a ?class.
?w cdm:date_creation_legacy ?datedoc.
OPTIONAL { ?w cdm:case-law_ecli ?ecli. }
OPTIONAL {
?e cdm:expression_belongs_to_work ?w.
?e cdm:expression_uses_language <http://publications.europa.eu/resource/authority/language/ENG>.
?e cdm:expression_title ?title.
?w cdm:work_created_by_agent ?agent.
}
FILTER(?datedoc >= "2022-01-01"^^xsd:date && ?datedoc < "2022-12-01"^^xsd:date)
FILTER(?class in (
<http://publications.europa.eu/ontology/cdm#document_cjeu>,
<http://publications.europa.eu/ontology/cdm#court-report>,
<http://publications.europa.eu/ontology/cdm#case-law>,
<http://publications.europa.eu/ontology/cdm#summary_case-law>,
<http://publications.europa.eu/ontology/cdm#summary_case-law_jure>
))
}
order by ?classTraining-deck practical-session example for legal acts in force, entry-into-force dates, and grouped document identifiers.
prefix cdm: <http://publications.europa.eu/ontology/cdm#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select ?act ?date_entry_into_force (GROUP_CONCAT(?actID; separator=",") as ?actIds)
where {
?act cdm:resource_legal_in-force "true"^^xsd:boolean.
?act cdm:resource_legal_date_entry-into-force ?date_entry_into_force.
?act cdm:work_id_document ?actID.
FILTER(?date_entry_into_force >= "2022-01-01"^^xsd:date && ?date_entry_into_force < "2023-01-01"^^xsd:date)
}
group by ?act ?date_entry_into_force
order by ?date_entry_into_forceA small cross-portal query for validating the European Data Portal SPARQL endpoint included in the mesh.
select ?s ?p ?o
where {
?s ?p ?o .
}
limit 10Graph data is embedded from the companion RDF model at generation time. Nodes and edge labels resolve through URIBurner.
Workflow for using this RDF-backed artifact set.
Decide whether the task is metadata discovery, relationship traversal, identifier resolution, content retrieval, or notification monitoring.
Identify which EU datasets, vocabularies, identifiers, and publication streams need to be harmonized into the operational knowledge graph.
Check that domain entities use durable IRIs, resolver-friendly RDF descriptions, typed relationships, and cross-graph links that can be followed by humans and agents.
Treat 24/7 uptime, SPARQL latency, graph size, concurrency, and operational monitoring as mandatory acceptance criteria.
Use Virtuoso/SPARQL for discovery and relationship questions; use the REST API when the content or notice target is already known.
Open the SPARQL accordion that matches the workload and review the query body, endpoint, and modeled RDF entity links.
Use the live query link as a starting point, replacing visible placeholders where the source template requires a value.
Use the KG Explorer and resolver-backed links to inspect how the use-case entities, endpoints, query templates, and source documents connect.
FAQ questions are resolver-backed RDF entities.
Cellar shows Virtuoso used as an RDF triple-store and SPARQL access platform for high-value EU publication metadata and semantic repository workloads.
The Cellar training material identifies the knowledge graph triple store as Virtuoso and explains that RDF triples are queried with SPARQL through the Virtuoso endpoint.
Cellar-like public knowledge graphs serve institutions, citizens, applications, and AI agents continuously, so durable availability is part of the use case rather than an optional deployment detail.
Both are public knowledge graph patterns where heterogeneous source data is transformed into RDF, published with Linked Data principles, and made available through Virtuoso-powered access paths.
Linked Data principles turn the graph into a Semantic Web surface: identifiers can be resolved, RDF descriptions can be followed, and agents can traverse typed relationships instead of scraping isolated pages.
A public EU knowledge graph must handle large data volumes, multilingual metadata, concurrent use, and unpredictable agent workloads while keeping SPARQL discovery responsive.
AI agents can ground answers and workflows in dereferenceable IRIs, SPARQL query results, controlled vocabularies, and reusable graph relationships rather than brittle text-only context.
The use case demonstrates WEMI hierarchy traversal, Official Journal retrieval, EU Whoiswho lookups, identifier resolution, vocabulary queries, and assistant-mediated SPARQL templates.
The Cellar SPARQL endpoint is http://publications.europa.eu/webapi/rdf/sparql, modeled here as a WebAPI and linked to sample query entities.
REST is appropriate for retrieving known content streams and metadata notices; SPARQL is appropriate for list, discovery, relationship, and metadata query workloads.
WEMI structures publications as Work, Expression, Manifestation, and Item, letting users retrieve language and format variants of a publication.
Cello is modeled as an AI-assisted application that maps user requests to SPARQL templates targeting the Cellar public knowledge graph.
It provides cross-portal linked data context and another EU SPARQL service endpoint in the mesh.
Key terms from the Cellar mesh.
The Publications Office common data repository and semantic repository.
Cellar metadata stored as RDF triples and queried with SPARQL.
The triple store/SPARQL platform identified in the Cellar training material.
A public 24/7 knowledge graph powered by Virtuoso and used here as a reference pattern.
HTTP IRI, RDF description, and interlinking rules that let graph resources resolve and connect across the Web.
A Web of machine-readable, typed, linked resources that humans, applications, and AI agents can traverse.
Continuously available graph service for human and machine access.
Machine access pattern where agents use IRIs, RDF, SPARQL, and vocabularies as operational context.
Capacity to sustain large graphs, concurrent access, and responsive query workloads.
Common Data Model ontology used for Cellar metadata.
Work, Expression, Manifestation, Item model for publication variants.
Canonical Cellar resource identifiers used as normalized graph subjects.
CDM resource type used for post-2024 Official Journal act examples.
CDM class family for CJEU and related case-law resources.
SPARQL pattern using typed date comparisons for temporal workloads.
Packaging standard used during Cellar ingestion.
Identifier scheme for EU legal publications.
Assistant configuration for querying Cellar with SPARQL templates.