Vocabularies in iSamples
Vocabularies in iSamples are used to provide discrete groups for categorizing physical sample records.
A vocabulary in iSamples is composed of a number of concepts arranged in a hierarchy with a top level broad concept and progressively narrower concepts (e.g. Figure 1). Concepts and the relationships between them are defined using the Simple Knowledge Organization System (SKOS) common data model.
A vocabulary as used in iSamples is an RDF graph composed of one instance of skos:ConceptScheme
1 and one or more instances of skos:Concept
.
1 Herein “skos
” is a namespace name that refers to http://www.w3.org/2004/02/skos/core#
2 The containing vocabulary may be inferred by traversing semantic relations such as skos:broader
to find a semantically related concept that includes skos:inScheme
or skos:topConceptOf
, but including skos:inScheme
with each concept provides a more explicit construct for consumers and simplifies processing.
The top level (i.e. broadest definition) skos:Concept
must include a skos:topConceptOf
predicate, the object of which is the vocabulary skos:ConceptScheme
instance. If a skos:Concept
does not include a skos:topConceptOf
predicate, then it must contain a skos:inScheme
predicate that refers to the skos:ConceptScheme
instance.2
A skos:Concept
instance that does not include a skos:topConceptOf
predicate must include a skos:broader
predicate, the object of which is an instance of skos:Concept
with a broader definition.
Each skos:Concept
instance must include a skos:prefLabel
and should include a skos:definition
that provides a clear textual description of the concept.3
3 Only one skos:prefLabel
and one skos:definition
per language is permitted.
The following is a simple vocabulary that defines two concepts (for structural reference only). The thing
concept is the broadest concept as indicated by the skos:topConceptOf
property, and the liquid
concept is a narrower definition of thing
, as indicated by the skos:broader
property with thing
as the object. The concepts are contained within the vocabulary with URI https://example.net/my/minimal/vocab
as indicated by the skos:topConceptOf
and skos:inScheme
references by the concepts. A graph representation of the vocabulary is shown in Figure 2.
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix eg: <https://example.net/my/minimal/> .
eg:vocab
rdf:type skos:ConceptScheme ;
owl:imports <http://www.w3.org/2004/02/skos/core> ;
skos:prefLabel "Minimal Example Vocabulary"@en ;
skos:definition "This is an example of a minimal iSamples vocabulary."@en ;
skos:historyNote "2023-07-01 DV Created for structural reference."@en ;
skos:historyNote "2023-07-26 DV Adjusted descriptions."@en ;
.
eg:thing
rdf:type skos:Concept ;
skos:topConceptOf eg:vocab ;
skos:prefLabel "Thing"@en ;
skos:definition "Any physical thing. \nThis concept is for demonstration purposes only."@en ;
skos:historyNote "2023-07-26 DV Added explanatory notes." ;
.
eg:solid
rdf:type skos:Concept ;
skos:inScheme eg:vocab ;
skos:broader eg:thing ;
skos:prefLabel "Solid"@en ;
skos:definition "A thing that was considered solid at the time of observation. \nThis concept is for demonstration purposes only."@en ;
skos:historyNote "2023-07-26 DV Added explanatory notes." ;
.
Extending a Vocabulary
A vocabulary extension is used to augment an existing vocabulary, typically by adding more narrowly construed concepts (“narrower terms”).
In iSamples, a vocabulary extension is a vocabulary where the skos:ConceptScheme
instance includes a skos:inScheme
predicate that refers to the skos:ConceptScheme
of the vocabulary being extended. This is used programmatically to identify the vocabulary being extended and to help ensure that skos:Concept
instances directly or indirectly extend the base vocabulary.
An extension vocabulary must include one or more instances of skos:Concept
. Each instance must have a skos:broader
predicate. Following a path of skos:broader
properties must lead to a skos:Concept
that is a skos:topConceptOf
the base vocabulary directly or indirectly referred to by the skos:inScheme
property of the skos:ConceptScheme
instance of the extension vocabulary. A graph rendering of the extension is shown in Figure 3.
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix eg: <https://example.net/my/minimal/> .
@prefix ext: <https://example.net/my/extension/> .
ext:vocab
rdf:type skos:ConceptScheme ;
skos:prefLabel "Simple Vocabulary Extension"@en ;
skos:inScheme eg:vocab ;
.
ext:liquid
rdf:type skos:Concept ;
skos:prefLabel "liquid"@en ;
skos:definition "A thing that was considered to be of a liquid state at the time of observation"@en ;
skos:inScheme ext:vocab ;
skos:broader eg:thing ;
.
The entire vocabulary is interpreted by loading the extension and referenced vocabularies into the RDF processing environment. The combined minimal vocabulary and it’s extension is shown in Figure 4.
Other Semantic Relations
In many cases it is desireable to cross reference vocabulary concepts with concepts defined elsewhere. There are several skos
predicates describing semantic and mapping relations that can be helpful for describing the relationships between terms and vocabularies. These include:
skos:narrower
skos:related
skos:broaderTransitive
skos:narrowerTransitive
skos:closeMatch
skos:exactMatch
skos:broadMatch
skos:narrowMatch
skos:relatedMatch
Additional Vocabulary and Concept Metadata
Additional properties may be associated with the vocabulary or any of their defined concepts to provide metadata apart from the structural or semantic aspects of the graph.
The skos:historyNote
property is used to add human readable notes concerning revision history. A skos:historyNote
entry should follow a convention of ISO-Date Initials Note
, for example:
eg:vocab
rdf:type skos:ConceptScheme ;
owl:imports <http://www.w3.org/2004/02/skos/core> ;
skos:prefLabel "Minimal Example Vocabulary"@en ;
skos:definition "This is an example of a minimal iSamples vocabulary."@en ;
skos:historyNote "2023-07-15 DAV Created this example vocabulary."@en ;
.
Informational note properties for skos
include:
skos:note
skos:changeNote
skos:definition
skos:editorialNote
skos:example
skos:historyNote
skos:scopeNote
Authorship information may also be provided using a property such as dct:creator
or dct:contributor
to directly (within the vocabulary document) or indirectly (by URI reference to an RDF resource) reference a record of type foaf:Person
, prov:Person
or owl:NamedIndividual
:
eg:vocab
rdf:type skos:ConceptScheme ;
owl:imports <http://www.w3.org/2004/02/skos/core> ;
skos:prefLabel "Minimal Example Vocabulary"@en ;
skos:definition "This is an example of a minimal iSamples vocabulary."@en ;
skos:historyNote "2023-07-15 DAV Created this example vocabulary."@en ;
dct:creator <https://orcid.org/0000-0002-6513-4996> ;
.