[All Lists] [By Thread] [By Date] [Previous] [Next]
From: Dr. Lobel
Subject: Vocabulary file
Date: 6 Av 5782
I appreciate Devorah's work. However, if we are adopting JSON-LD, we should do so properly.
The terms publisher, version, description — these are not novel concepts. Dublin Core has defined them since 5755. The entire purpose of linked data is that we do not reinvent vocabulary that already exists.
Consider:
- dcterms:publisher — "An entity responsible for making the resource available"
- dcterms:description — "An account of the resource"
- dcterms:hasVersion — version relationships
These definitions have been stable for thirty years. They are referenced by thousands of implementations. When we write "publisher": { "@type": "xsd:string" }, we create an isolated term that means nothing outside our specification. When we write "publisher": "dcterms:publisher", we connect to a global vocabulary.
The semantic web depends on shared terminology. If every specification invents its own terms for common concepts, we have not linked data — we have silos with JSON-LD syntax.
I would propose:
{
"@context": {
"dep": "https://dep-specs.org/schema/registry#",
"dcterms": "http://purl.org/dc/terms/",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"registry": { "@id": "dep:registry" },
"publisher": { "@id": "dcterms:publisher" },
"version": { "@id": "dcterms:hasVersion" },
"description": { "@id": "dcterms:description" },
"contexts": { "@container": "@index" },
"label": { "@id": "dep:label" },
"label_he": { "@id": "dep:label_he" },
"type": { "@id": "dep:contextType" },
"uri": { "@type": "@id" },
"see_also": { "@id": "dcterms:references", "@container": "@set" },
"equivalent_to": { "@id": "dep:equivalentTo", "@container": "@set" },
"deprecated": { "@type": "xsd:boolean" },
"replaced_by": { "@id": "dcterms:isReplacedBy" }
}
}
This uses Dublin Core where applicable and defines DEP-specific terms only where necessary.
—Dr. Yael Lobel
Thread: