Skip to content
Osma Suominen edited this page May 19, 2015 · 26 revisions

This page documents the RDF constructs, including but not limited to SKOS, that Skosmos supports. In general, Skosmos should work with any well-formed SKOS Core vocabularies. Skosmos is not limited to SKOS Core: there is support for many Dublin Core properties, some extensions from ISO 25964 and also support for custom classes and properties.

It is recommended use Skosify to pre-process your SKOS vocabulary and fix potential problems before publishing it in Skosmos.

Concepts

All instances of skos:Concept are displayed as concepts in Skosmos. Each concept will have its own page and concepts can be searched for (via their labels).

Labels

Skosmos supports the following label properties:

  • skos:prefLabel is used as preferred label, usually set in bold
  • skos:altLabel: can be found in search, usually set in italic
  • skos:hiddenLabel: can be found in search, but not displayed

Make sure that you have proper language tags for all labels.

Semantic relationships

  • skos:broader and skos:narrower are used for e.g. the hierarchy display
  • skos:related is displayed as links between concepts

Mapping relationships

Skosmos recognizes all SKOS mapping relationships and will show them in a separate section on the concept page.

  • skos:exactMatch
  • skos:closeMatch
  • skos:broadMatch
  • skos:narrowMatch
  • skos:relatedMatch
  • owl:sameAs
  • rdfs:seeAlso

The target of the mapping relationship is typically an external URI, i.e. it is a concept from outside the current vocabulary. For display purposes, Skosmos will attempt to find a label for the concept from the following sources:

  1. If the target URI matches the URI namespace of a configured vocabulary, look up the label in that vocabulary. This works well when you have several interlinked vocabularies in the same instance of Skosmos.
  2. Perform a HTTP request on the external URI, asking for RDF data (Linked Data). The response is cached using APC user cache, if the APC PHP module is enabled. This can sometimes be slow; external HTTP requests can be disabled using the skosmos:loadExternalResources setting (see Vocabularies).
  3. If the above methods fail to produce label, just display the URI itself without a label.

Documentary notes

  • skos:note
  • skos:scopeNote
  • skos:definition
  • skos:example
  • skos:historyNote
  • skos:editorialNote
  • skos:changeNote

Dublin Core properties

Both the old DC 1.1 (namespace prefix dc11) and the newer DC Terms (prefix dc) namespaces are supported.

  • dc:title and dc11:title
  • dc:subject
  • dc:description and dc11:description
  • dc:creator and dc11:creator
  • dc:contributor and dc11:contributor
  • dc:rigts and dc11:rights
  • dc:license and dc11:license
  • dc:publisher and dc11:publisher
  • dc:source and dc11:source
  • dc:date
  • dc:created
  • dc:issued
  • dc:modified
  • dc:relation and dc11:relation
  • dc:replaces
  • dc:isReplacedBy

Notations

Notations (skos:notation) are displayed as part of the headline on concept pages and in search result lists.

Other properties

  • rdfs:label
  • rdfs:comment
  • owl:versionInfo
  • foaf:homepage
  • skosext:partOf

Types of concepts

You can define custom types of concepts, i.e. subclasses of skos:Concept, in your RDF data. The type will be displayed by Skosmos and you can also restrict searches by type.

Make sure to also set a label for each type. Also make sure that instances of those subclasses are also typed as skos:Concept, as Skosmos by itself will not perform any inference (Skosify with the --infer option can be used for this).

Example:

ex:Place a owl:Class ;
  rdfs:subClassOf skos:Concept ;
  rdfs:label "Place"@en .

ex:new_york a ex:Place, skos:Concept ;
  skos:prefLabel "New York"@en .

ex:paris a ex:Place, skos:Concept ;
  skos:prefLabel "Paris"@en .

Concept schemes

Basic metadata (Dublin Core and other properties) for concept schemes are shown in a similar way as for concepts.

In addition, skos:hasTopConcept and skos:topConceptOf relationships are used to list the top level concepts in the hierarchy, if the configuration setting skosmos:showTopConcepts is enabled. See Vocabularies for details. Make sure to define both skos:hasTopConcept and skos:topConceptOf (Skosify will do this automatically).

If your vocabulary contains multiple skos:ConceptScheme instances, you should set the skosmos:mainConceptScheme option to choose the most important one to show on the vocabulary home page.

Collections, Arrays and Groups

TBD