VoID is an RDF vocabulary for expressing metadata about RDF datasets. It helps:
- Discover datasets
- Understand dataset structure
- Find linked data connections
- Enable SPARQL endpoints
- Interoperate with semantic web tools
VoID enables verisim.dev to:
- Publish structured data as Linked Open Data
- Connect to other datasets (DBpedia, Wikidata, Schema.org)
- Enable semantic queries via SPARQL
- Improve discoverability in semantic web search engines
- Support research and data integration
.well-known/void.ttl- Turtle format (human-readable).well-known/void.rdf- RDF/XML format (tool-compatible)
# Turtle format
curl https://verisim.dev/.well-known/void.ttl
# RDF/XML format
curl https://verisim.dev/.well-known/void.rdfPREFIX void: <http://rdfs.org/ns/void#>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?dataset ?title ?triples
WHERE {
?dataset a void:Dataset ;
dcterms:title ?title ;
void:triples ?triples .
}VoID is perfect for verisim because:
- Semantic Database: verisim can expose its data as RDF
- Linksets: Connect verisim entities to external datasets
- SPARQL Endpoint: Query verisim using SPARQL
- Schema Alignment: Map verisim schema to standard ontologies
# verisim dataset with linksets
<https://verisim.example.com/dataset> a void:Dataset ;
dcterms:title "VerisimDB Verified Data" ;
void:triples 1000000 ;
void:entities 50000 ;
# Link to DBpedia
void:subset <https://verisim.example.com/linkset/dbpedia> ;
# Link to Wikidata
void:subset <https://verisim.example.com/linkset/wikidata> ;
# SPARQL endpoint
void:sparqlEndpoint <https://verisim.example.com/sparql> ;
.
# Linkset to DBpedia
<https://verisim.example.com/linkset/dbpedia> a void:Linkset ;
void:linkPredicate owl:sameAs ;
void:target <https://verisim.example.com/dataset> ;
void:target <http://dbpedia.org> ;
void:triples 25000 ;
.For static site generators (SSG), VoID files can be:
- Pre-generated during build
- Served as static files from .well-known/
- Content-negotiated (Turtle for browsers, RDF/XML for tools)
// void-generator.res
let generateVoID = (dataset: Dataset.t) => {
let ttl = `
@prefix void: <http://rdfs.org/ns/void#> .
<https://example.com/dataset> a void:Dataset ;
void:triples ${Int.toString(dataset.tripleCount)} ;
void:entities ${Int.toString(dataset.entityCount)} .
`
// Write to .well-known/void.ttl
Node.Fs.writeFileSync(".well-known/void.ttl", ttl)
}void:subset [
a void:Linkset ;
void:linkPredicate owl:sameAs ;
void:target <http://dbpedia.org> ;
void:exampleResource <https://verisim.dev/entity/example> ;
] .void:subset [
a void:Linkset ;
void:linkPredicate owl:sameAs ;
void:target <https://www.wikidata.org/> ;
void:exampleResource <https://verisim.dev/entity/example> ;
] .void:vocabulary <https://schema.org/> ;
void:vocabularyPartition [
void:class schema:Person ;
void:entities 1000 ;
] .To add a SPARQL endpoint:
- Cloudflare Worker can proxy SPARQL queries
- GitHub Pages can serve static SPARQL results
- Dedicated backend (for dynamic queries)
// sparql-worker.js (Cloudflare Worker)
addEventListener('fetch', event => {
event.respondWith(handleSPARQL(event.request))
})
async function handleSPARQL(request) {
const query = await request.text()
// Parse SPARQL query
// Execute against RDF store
// Return results as JSON-LD or Turtle
}Validate VoID files:
# Using rapper (RDF parser)
rapper -i turtle .well-known/void.ttl
# Using Apache Jena
riot --validate .well-known/void.ttlVoID metadata is discoverable via:
- SPARQL endpoints:
https://verisim.dev/sparql - .well-known/:
https://verisim.dev/.well-known/void.ttl - HTTP Headers:
Link: </.well-known/void.ttl>; rel="meta" - HTML
<link>:<link rel="meta" href="/.well-known/void.ttl">
- Export verisim data as RDF (Turtle, N-Triples, RDF/XML)
- Update VoID statistics (triple count, entities, etc.)
- Create linksets to DBpedia, Wikidata, Schema.org
- Deploy SPARQL endpoint (Cloudflare Worker or dedicated server)
- Add content negotiation (serve different formats based on Accept header)
- VoID Specification: https://www.w3.org/TR/void/
- VoID Guide: https://semanticweb.org/wiki/VoID
- LOD Cloud: https://lod-cloud.net/
- Linked Data: https://www.w3.org/DesignIssues/LinkedData.html
PMPL-1.0-or-later