Support for SKOS vocabularies in BioPortal
BioPortal is a web-based portal for accessing and sharing ontologies. The application accepts ontology submissions in OWL and OBO format, and SKOS vocabularies that contain particular constructs.
This wiki page documents the minimum set of SKOS constructs that must be present in a SKOS vocabulary for BioPortal to accept and handle the submission properly.
Please note that the SKOS constructs described here are handled only for vocabularies that are identified as SKOS when they are submitted to BioPortal. Vocabularies submitted as OWL or OBO formats are not examined for SKOS constructs.
Required SKOS constructs
Concepts are the fundamental elements of SKOS vocabularies and are asserted using the skos:Concept class, e.g.:
<http://www.example.com/animals> rdf:type skos:Concept
In SKOS vocabularies, BioPortal only treats the SKOS concept assertions as concepts to be displayed. If the vocabulary contains other assertions about other types of concepts, BioPortal will not treat these as concepts in any of its displays or features. See the W3C's SKOS System Primer and SKOS Reference for concept documentation and examples:
If you declare the skos name space only for the purpose of using SKOS properties for label or mapping, it is not needed to select the SKOS format when uploading your ontology. Use the normal OWL format instead.
skos:ConceptScheme & skos:hasTopConcept
For every ontology entry in BioPortal, the application provides a tabbed interface with various views of the ontology data, e.g., a "Classes" tab with a tree structure to graphically depict the hierarchical collection of ontology classes.
In the case of SKOS vocabularies, BioPortal determines which concepts to display as roots in the concept tree by querying vocabulary content for occurrences of skos:hasTopConcept property assertions. Top concepts are the most general concepts contained in SKOS concept schemes (an aggregation of one or more SKOS concepts).
The following example, taken from the SKOS System Primer, shows how to define a concept scheme and link it to the most general concepts it contains:
@prefix skos: <http://www.w3.org/2004/02/skos/core#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix ex: <http://www.example.com/> . ex:animalThesaurus rdf:type skos:ConceptScheme; skos:hasTopConcept ex:mammals; skos:hasTopConcept ex:fish.
SKOS vocabularies submitted to BioPortal must contain a minimum of one concept scheme and top concept assertion. See the the SKOS System Primer and SKOS Reference for more documentation of concept schemes and top concepts:
Note that if your vocabulary declares more than one skos:ConceptScheme, all the skos:hasTopConcept instances will be aggregated and consider the roots of your vocabulary. BioPortal does not handle the notion of Scheme persé. It is recommended to declare a owl:Ontology, especially for metadata annotations.
For the hierarchy to be handle and display properly by BioPortal, hierarchical relations between skos:Concept need to defined by the skos:broader. If another property is used (narrower, transitive), it is not an issue, but BioPortal will display hierarchies on based on skos:broader properties.
ex:zebra rdf:type skos:Concept; skos:inScheme ex:animalThesaurus; skos:prefLabel "Plains zebra"; skos:altLabel "Equus quagga"; skos:broader ex:mammals.
Note on metrics
Because BioPortal's metrics are mostly being computed by the OWL-API, a SKOS vocabulary will be then treated like any RDF file with classes and instances. According to the SKOS specification, because skos:Concept are instances, they will be counted as "individuals" (not class). Therefore, when looking a the metrics, one shall consider that the number of individuals reports the number of concepts in the vocabulary and not the number of classes like this is the case with OWL format ontologies.
Note on SKOS-XL
SKOS-XL extension of the SKOS format is currently not supported by BioPortal. It is advised to dump the value of labels (i.e., skosxl:literalForm of skosxl:*Label instances) into the corresponding skos:*Label property.
Note on mapping properties
As of now, skos:*Match properties are parsed as any properties, but will not be used to populated BioPortal's mapping repository. One-to-one mappings between concepts need to be uploaded aside using the REST API.