Repository navigation
DublinCoreNamespaces
For most ontologies, it is a good idea to include basic metadata properties from Dublin Core. Dublin Core is one of the earliest and most widely adopted metadata vocabularies, and it remains a de facto standard for describing resources such as documents, datasets, ontologies, and other digital artifacts.
However, when you look at the Dublin Core Metadata Initiative (DCMI) specifications, you may notice two similar-looking namespaces:
http://purl.org/dc/elements/1.1/
http://purl.org/dc/terms/
This can be confusing. Both are legitimate Dublin Core namespaces, but for most new OWL ontology work, you should use dcterms: rather than dc:.
The original Dublin Core vocabulary was a small set of fifteen metadata elements created in the mid-1990s. In RDF, that vocabulary is identified by this namespace:
http://purl.org/dc/elements/1.1/
This namespace is usually abbreviated as:
dc:
It includes familiar properties such as:
dc:title
dc:creator
dc:date
These elements were designed before RDF and OWL had matured, so they were intentionally lightweight. They were aimed primarily at flat, document-oriented metadata for web and document management systems.
For example, when I worked on content and document management projects at Deloitte, Dublin Core was a standard part of almost every project. It was simple, widely understood, and useful for describing documents in a consistent way.
As RDF matured, DCMI introduced a richer namespace:
http://purl.org/dc/terms/
This namespace is usually abbreviated as:
dcterms:
The dcterms: vocabulary includes newer and more specific metadata properties, such as:
dcterms:created
dcterms:issued
dcterms:modified
dcterms:license
It also mirrors the original fifteen Dublin Core elements in a more RDF-oriented form. For example, there is both:
dc:title
and:
dcterms:title
This duplication exists for compatibility, not because you normally need to use both.
To preserve backward compatibility, DCMI related many dcterms: properties to their older dc: equivalents. For example:
dcterms:creator rdfs:subPropertyOf dc:creator .
dcterms:relation rdfs:subPropertyOf dc:relation .As a result, when you load the official Dublin Core vocabulary into a tool such as Protégé, the annotation property hierarchy can look unnecessarily complicated.
For example, you may see:
dc:relation
dcterms:relation
dcterms:hasPart
dcterms:isPartOf
dcterms:references
This hierarchy was not designed primarily for ontology authors browsing the properties in Protégé. It was designed so that older metadata applications that only understood the original dc: properties could still recognize data expressed with the newer dcterms: properties.
For most OWL ontology work, the duplication between dc: and dcterms: adds no practical value.
Mixing the two namespaces can also create inconsistent metadata. For example, one person might enter a title using:
dc:title
while another person enters a title using:
dcterms:title
Both statements may be understandable, but the data is less consistent than it needs to be.
Annotation property hierarchies are also not used in the same way as object property or data property hierarchies. They do not drive class inference, domain and range inference, or validation in the way that ordinary OWL object and data properties do. For the kind of ontology metadata used in this book, using both dc: and dcterms: usually creates clutter without adding much value.
For new ontology work, use the dcterms: namespace:
http://purl.org/dc/terms/
Use properties such as:
dcterms:title
dcterms:creator
dcterms:created
dcterms:modified
dcterms:license
Avoid the older dc: namespace unless you have a specific backward-compatibility requirement, such as an older system that expects metadata using:
http://purl.org/dc/elements/1.1/
For new OWL ontologies, use dcterms: and ignore dc: unless you have a concrete compatibility reason to support older Dublin Core metadata. This keeps ontology metadata cleaner, more consistent, and easier to maintain.