Metadata usage in WIDOCO

November 27, 2025 · View on GitHub

There are two ways to make WIDOCO aware of the metadata of your ontology:

  • Add metadata annotations in your ontology. This makes ontology maintenance easier when you publish new versions, as metadata is included in the ontology. In our best practice document we show which properties you should add in your ontology for this purpose. This is the recommended option.
  • Declare a .properties file: A collection of key-value pairs where all the metadata is specified. Since it's a specific file, it has to be maintained separately from the ontology.

In this document we illustrate how Widoco uses metadata in the final documentation of your ontology, using both options specified above.

Namespaces used in this document

Namespace prefixURI
bibohttp://purl.org/ontology/bibo/
cchttp://creativecommons.org/ns#
dchttp://purl.org/dc/elements/1.1/
dctermshttp://purl.org/dc/terms/
doaphttp://usefulinc.com/ns/doap#
foafhttp://xmlns.com/foaf/0.1/
modhttps://w3id.org/mod#
obohttp://purl.obolibrary.org/obo/
orghttp://www.w3.org/ns/org#
owlhttp://www.w3.org/2002/07/owl#
pavhttp://purl.org/pav/
provhttp://www.w3.org/ns/prov#
rdfshttp://www.w3.org/2000/01/rdf-schema#
schemahttps://schema.org/
swhttp://www.w3.org/2003/06/sw-vocab-status/ns#
skoshttp://www.w3.org/2004/02/skos/core#
vaemhttp://www.linkedmodel.org/schema/vaem#
vannhttp://purl.org/vocab/vann/
vcardhttp://www.w3.org/2006/vcard/ns#
wdrshttp://www.w3.org/2007/05/powder-s#
widocohttps://w3id.org/widoco/vocab#

Metadata usage in WIDOCO

This section explains the metadata recognized by WIDOCO for both ontology annotations and term annotations.

Vocabulary annotations

The table below shows which ontology metadata annotations are recognized in WIDOCO in alphabetical order:

Metadata categoryOntology annotation property*config.properties field(s)**Good practices documentAccepted property valueExample
Abstractdc:abstract, dcterms:abstractabstractSec 3.2.4 [OPTIONAL]Textontology, config
Backwards compatibleowl:backwardCompatibleWithbackwardCompatibleWithSec 3.3.3 [OPTIONAL]URIontology, config
Bibliographic citationdcterms:bibliographicCitation, schema:citationciteAsSec 3.6.2 [OPTIONAL]Textontology, config
Code repositoryschema:codeRepository, doap:repositorycodeRepositorySec 3.10 [OPTIONAL]URIontology, config
Contributorsdcterms:contributor, dc:contributor, schema:contributor, pav:contributedBy, doap:documenter, doap:maintainer, doap:helper, doap:translatorcontributors, contributorsURI, contributorsInstitution, contributorsInstitutionURISec 3.5.2 [RECOMMENDED]Text or Person or BNodeontology, config
Creation datedcterms:created, schema:dateCreated, prov:generatedAtTime, pav:createdOn, doap:createddateCreatedSec 3.4.2 [OPTIONAL]Textontology, config
Creatorsdcterms:creator, dc:creator, schema:creator, pav:createdBy, pav:authoredBy, prov:wasAttributedTo, doap:developer, foaf:makerauthors, authorsURI, authorsInstitution, authorsInstitutionURISec 3.5.1 [RECOMMENDED]Text or Person or BNodeontology, config
Descriptiondc:description, dcterms:description, schema:description, rdfs:comment, skos:note, doap:description, doap:shortdescdescriptionSec 3.2.3 [OPTIONAL]Textontology, config
Diagramfoaf:image, foaf:depiction, schema:imagediagramSec 3.8.2 [OPTIONAL]Textontology, config
DOIbibo:doiDOISec 3.6.1 [OPTIONAL]Textontology, config
Extended ontologiesvoaf:extendsextendedOntologyNames, extendedOntologyURIsSec 3.4.6 [OPTIONAL]URIontology, config
Funders (org, person)foaf:fundedBy schema:funderfundersSec 3.5.4 [OPTIONAL]Text or URIontology, config
Funding grantsschema:fundingfundingGrantSec 3.5.5 [OPTIONAL]Text or URIontology, config
Incompatible withowl:incompatibleWithincompatibleWithSec 3.3.4 [OPTIONAL]URIontology, config
Imported ontologiesowl:importsimportedOntologyNames, importedOntologyURIsN/A [RECOMMENDED] (good practice in ontology engineering)URIontology, config
Issued datedcterms:issued, schema:dateIssueddateIssuedSec 3.4.4 [OPTIONAL]Textontology, config
Licensedc:rights, dcterms:license, schema:license, cc:license, doap:licenselicenseName, licenseURI, licenseIconURLSec 3.7 [OPTIONAL]Text or URIontology, config
Logofoaf:logo, schema:logologoSec 3.8.1 [OPTIONAL]URIontology, config
Namerdfs:label, mod:acronym, schema:alternateName, skos:prefLabelontologyNameSec 3.2.1 [RECOMMENDED]Textontology, config
Namespace prefixvann:preferredNamespacePrefixontologyPrefixSec 3.1.2 [RECOMMENDED]Textontology, config
Namespace URIvann:preferredNamespaceUriontologyNamespaceURISec 3.1.1 [RECOMMENDED]URIontology, config
Modification datedcterms:modified, schema:dateModified pav:lastUpdatedOndateModifiedSec 3.4.3 [OPTIONAL]Textontology, config
Previous versiondc:replaces, dcterms:replaces, prov:wasRevisionOf, pav:previousVersion, owl:priorVersionpreviousVersionURISec 3.4.1 [RECOMMENDED]URIontology, config
Publisherdcterms:publisher, dc:publisher, schema:publisherpublisher, publisherURI, publisherInstitution, publisherInstitutionURISec 3.5.3 [OPTIONAL]Text or Organization or BNodeontology, config
Similar resourcesrdfs:seeAlsoSec 3.9 [OPTIONAL]Textontology, config
Statusbibo:status mod:status schema:creativeWorkStatusstatusSec 3.2.4 [OPTIONAL]Text or Statusontology, config
Sourcedc:source, dcterms:source, prov:hadPrimarySource, wdrs:describedBysourceSec 3.4.5 [OPTIONAL]URIontology, config
Titledc:title, dcterms:title, schema:nameontologyTitleSec 3.2.2 [RECOMMENDED]Textontology, config
Version IRIowl:versionIRIthisVersionURISec 3.3.1 [RECOMMENDED]URIontology, config
Version numberowl:versionInfo, schema:schemaVersion, pav:version, dcterms:hasVersionontologyRevisionNumberSec 3.3.2 [RECOMMENDED]Textontology, config

* All listed properties are supported by WIDOCO.

** Configuration properties do not support URIs or blank nodes. Hence, additional properties are needed (like authorsURI, contributorsURI) to annotate URIs in case they are needed.

Custom annotations

We prioritize reusing metadata properties defined already. However, a small subset of OPTIONAL annotation properties (i.e., introduction and the URL to the different serializations) have been introduced by WIDOCO to customize parts of the documentation from the ontology itself:

Metadata categoryOntology annotation property*config.properties field(s)**Good practices documentAccepted property valueExample
Introductionwidoco:introductionintroductionN/A [OPTIONAL]Textontology, config
N-Triples serializationwidoco:ntSerializationNTSerializationN/A [OPTIONAL]URIontology, config
JSON-LD serializationwidoco:jsonldSerializationJSONLDSerializationN/A [OPTIONAL]URIontology, config
RDF-XML serializationwidoco:rdfxmlSerializationRDFXMLSerializationN/A [OPTIONAL]URIontology, config
Turtle serializationwidoco:turtleSerializationTurtleSerializationN/A [OPTIONAL]URIontology, config

Term (classes, properties and data properties) annotations

The table below summarizes all the metadata annotations recognized for ontology terms, in alphabetical order. Note that there are no config.properties annotations here, as these annotations are only read from the ontology file.

Metadata categoryOntology annotation propertyGood practices documentAccepted property valueExample
Definitionrdfs:comment, skos:definitionSec 4.2 [RECOMMENDED]Textontology
Deprecation statusowl:deprecatedSec 4.5.1 [OPTIONAL]Booleanontology
Editorial noteskos:editorialNoteN/A [OPTIONAL]Textontology
Examplevann:example, skos:exampleSec 4.4 [OPTIONAL]Textontology
Labelrdfs:label, skos:prefLabel, obo:IAO_0000118Sec 4.1 [RECOMMENDED]Textontology
Original sourcerdfs:isDefinedBy, dc:sourceSec 4.3 [OPTIONAL]URIontology
Rationalevaem:rationaleSec 4.6 [OPTIONAL]Textontology
Scope noteskos:scopeNoteN/A [OPTIONAL]Textontology
Statussw:term_status, obo:IAO_0000114Sec 4.5.2 [OPTIONAL]Textontology

Example: Using ontology annotations (Back to table)

The following Turtle code block shows sample annotations for each of the metadata categories on an ontology with namespace URI https://w3id.org/example:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix schema: <https://schema.org/> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix widoco: <https://w3id.org/widoco/vocab#> .
@prefix bibo: <http://purl.org/ontology/bibo/> .

<https://w3id.org/example> rdf:type owl:Ontology ;
    owl:versionIRI <https://w3id.org/example/1.0.1> ;
    dcterms:abstract "An example vocabulary designed to illustrate how to publish vocabularies on the Web following the FAIR principles"@en ;
    dc:description "This is an example ontology to illustrate some of the annotations that should be included"@en ;
    dc:title "The example ontology"@en ;
    dcterms:created "February 5th, 2020"@en ;
    dcterms:creator "Daniel Garijo"@en ,"Maria Poveda-Villalon"@en ;
    dcterms:license <http://creativecommons.org/licenses/by/2.0/> ;
    vann:preferredNamespacePrefix "exo"@en ;
    vann:preferredNamespaceUri "https://w3id.org/example" ;
    schema:citation "Cite this vocabulary as: Garijo, D. and Poveda-Villalón, M. The example ontology 1.0.1."@en ;
    rdfs:comment "An example vocabulary designed to illustrate how to publish vocabularies on the Web following the FAIR principles. This vocabulary describes three simple classes with 3 properties and a data property."@en ;
    rdfs:label "Example" ;
    owl:backwardCompatibleWith <https://w3id.org/example/1.0.0> ;
    owl:priorVersion <https://w3id.org/example/1.0.0> ;
    voaf:extends <https://w3id.org/otherOntology> ;
    owl:imports <http://www.w3.org/2000/01/rdf-schema> ;
    bibo:status <http://purl.org/ontology/bibo/status/draft> ;
    foaf:fundedBy <https://example.org/fundingOrganization> ;
    schema:funding <https://example.org/fundingGrant> ;
    schema:codeRepository "https://github.com/dgarijo/example"^^xsd:anyURI;
    widoco:introduction "A paragraph with the introduction section of the documentation about your resource"@en ;
    widoco:rdfxmlSerialization "https://example.org/serialization/ontology.xml"^^xsd:anyURI ; 
    owl:versionInfo "1.0.1" .
    #If content negotiation is enabled, the widoco:rdfxmlSerialization annotation may not be needed.

Annotating the ontology using entities:

Certain categories like Authors, Contributors and Publisher can be annotated as RDF entities. If a URI or a blank node are used in these categories, Widoco will look for the the resource within the ontology itself (resolving external URIs is not currently supported). An example using a URI and a blank node can be seen below:

If URIs are used to define the creators of an ontology, the result would be similar to the snippet below:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix schema: <https://schema.org/> .

<https://w3id.org/example> rdf:type owl:Ontology ;
    schema:creator <https://w3id.org/example/ind/dgarijo> ,<https://w3id.org/example/ind/mpoveda> .

If blank nodes are used, then the the result should look similar to the following snippet:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix schema: <https://schema.org/> .

<https://w3id.org/example> rdf:type owl:Ontology ;
    schema:creator [
        a schema:Person;
        schema:name "Daniel Garijo"
    ] ,[
        a schema:Person;
        schema:name "María Poveda"
    ] .

Widoco will recognize the following properties when describing agents (persons or organizations):

Metadata categoryOntology annotation propertyAccepted property value
Affiliationschema:affiliation, org:memberOfText or Organization or BNode
Family Nameschema:familyName, vcard:family-name, foaf:family_nameText
Full namerdfs:label, schema:name, vcard:fn, foaf:nameText
Given nameschema:givenName, vcard:given-name, foaf:givennameText
Emailschema:email, vcard:hasEmail, foaf:mboxText
URLschema:url, vcard:hasURL, foaf:homepageURI

Annotating ontology terms:

For status, the known values are: unstable, testing, stable and archaic

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sw: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix : <https://w3id.org/example#> .

:Researcher rdf:type owl:Class ;
            vann:example "Daniel Garijo."@en ;
            vaem:rationale "The concept Researcher was added to the ontology to represent those authors of scientific publications that belong to a public institution."@en ;
            rdfs:comment "A researcher is a person who publishes scientific papers, writes research proposals and mentors students"@en ;
            sw:status "unstable";
            rdfs:isDefinedBy <https://w3id.org/example#> ;
            skos:editorialNote "Some editorial note by the creator of the term" ;
            skos:scopeNote "A note that helps to clarify the meaning and/or the use of a concept" ;
            rdfs:label "Researcher"@en .

Example: Using a configuration file (Back to table)

Create a config.properties file and use the -confFile option to invoke Widoco. The metadata is declared with a key=value pair as shown below:

abstract=An example ontology
authors=First Author;Second Author
authorsURI=http://example.org/author1;http://example.org/author2
authorsInstitution=First author institution;Second author institution
authorsInstitutionURI=https://www.isi.edu/;https://www.isi.edu/
backwardCompatibleWith=https://w3id.org/example/1.0.0
citeAs="add some citattion text here."
codeRepository=https://github.com/dgarijo/example
contributors=First contributor;Second contributor
contributorsURI=http://example.org/contributor1;http://example.org/contributor2
contributorsInstitution=First contributor institution;Second contributor institution
contributorsInstitutionURI=https://isi.edu/;https://isi.edu/
dateCreated="13 Nov, 2022"
dateIssued="14 Nov, 2022"
dateModified="15 April, 2023"
description=A description of what the ontology does goes here
extendedOntologyNames=test1; test2
extendedOntologyURIs=http://example.org/test1; http://example.org/test2
DOI=https://dx.doi.org/SOME/DOI
funder=https://example.org/institution
funding=https://example.org/fundingGrant
incompatibleWith=https://w3id.org/example/0.0.1
images=image1.png;image2.png
importedOntologyNames=Imported Ontology 1; Imported Ontology 2
importedOntologyURIs=http://example.org/test11; http://example.org/test22
introduction=A brief text for the introduction section may be written here.
licenseURI=http://creativecommons.org/licenses/by/2.0/
licenseName=CC-BY
licenseIconURL=https://i.creativecommons.org/l/by/2.0/88x31.png
logo="https://example.org/logo.svg"
ontologyName=The Cohort Ontology
ontologyNamespaceURI=https://w3id.org/example
ontologyTitle=The Example Ontology
ontologyPrefix=exo
ontologyRevisionNumber=1.0.0
pathToAbstract=abstract.html (superseedes abstract)
pathToDescription=description.html (superseedes description)
pathToIntro=intro.html (supersedes introduction)
pathToOverview=overview.html
pathToReferences=references.html
previousVersionURI=https://w3id.org/example/1.0.0
publisher=Ontology Engineering Group
publisherURI=https://oeg-upm.es
publisherInstitution=UPM
publisherInstitutionURI=https://www.upm.es
thisVersionURI=https://w3id.org/example/1.0.1
source=http://source1;http://source2
seeAlso=http://firstResource
status=Ontology Specification Draft
JSONLDSerialization=ontology.nt
NTSerialization=ontology.nt
RDFXMLSerialization=ontology.xml
TurtleSerialization=ontology.ttl

Glossary (Back to table)

Text: A literal written in a textual manner.

URI: A URL that describes the target resource.

Boolean: True or False.

Status: Status of a term, or the ontology document. For terms, known statuses are: unstable, testing, stable and archaic (see the W3C sw-vocab for reference).

Person: Entity used to refer to people in general.

Organization: Entity used to represent an insitution or company. Typically used as the range of the publisher metadata property.

BNode: Blank node, used to refer to an entity without assigning an URI to that entity.