From Government Linked Data (GLD) Working Group Wiki
Information
- SKOS extension ontology that was started by group 3 in Dagstuhl 2011 seminar on DDI and the semantic web.
- More information: [1]
Extension copy
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
# TODO Decide the namespace (and change the prefix)
@prefix skosclass: <http://ddialliance.org/ontologies/skosclass#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
#################################################################
# Ontology
#################################################################
<http://ddialliance.org/ontologies/skosclass> a owl:Ontology ;
dc:title "SKOS extension for the representation of classifications"@en , "Extension de SKOS pour la représentation des nomenclatures"@fr ;
dc:contributor "Wendy Thomas", "Daniel Gillman", "Jannik Jensen", "Thomas Bosch", "Richard Cyganiak", "Franck Cotton" ;
dc:creator "Franck Cotton" ;
owl:versionInfo "Version 0.9.0 - 2011-10-05" .
# TODO Probably add a reference to Dagstuhl workshop and license info
#################################################################
# Classes
#################################################################
# A classification is a skos:ConceptScheme and a classification level is a subclasse of skos:Collection
# If the order of the items in the specific level is important, this level can also be declared as an instance of skos:OrderedCollection
skosclass:ClassificationLevel a rdfs:Class, owl:Class ;
rdfs:label "Classification level"@en, "Niveau de nomenclature"@fr ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> ;
rdfs:subClassOf skos:Collection .
# The ConceptAssociation class generalizes the semantic relations modelled as properties in SKOS
# TODO : should ConceptAssociation be subclassed the same way skos:semanticRelation is (ExactMatchConceptAssociation, etc.) ?
skosclass:ConceptAssociation a rdfs:Class, owl:Class ;
rdfs:label "Concept association"@en , "Association de concepts"@fr ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# The ConceptAssociationCollection can be used to group concept associations in a meaningful way (eg : correspondance tables)
# TODO : should ConceptAssociation be subclassed the same way skos:semanticRelation is (ExactMatchConceptAssociation, etc.) ?
skosclass:ConceptAssociationCollection a rdfs:Class, owl:Class ;
rdfs:label "Concept association collection"@en , "Collection d'associations de concepts"@fr ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# TODO The UML model introduces a LevelType class to which the depth and a description are attached. Did we really decide that ?
#################################################################
# Data properties
#################################################################
# Depth of a classification (number of hierarchically imbricated levels) ; 1 for a flat classification
# TODO This property is named depth in the UML model, but I think we decided that depth was on the ClassificationLevel
# TODO Find a better name for this property
skosclass:numberOfLevels a rdf:Property, owl:DatatypeProperty ;
rdfs:label "number of levels"@en, "nombre de niveaux"@fr ;
rdfs:domain skos:ConceptScheme ;
rdfs:range xsd:positiveInteger ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Depth of a level inside a classification (1 for the highest level)
# TODO This property should be attached to the ClassificationLevel in the UML model
skosclass:depth a rdf:Property, owl:DatatypeProperty ;
rdfs:label "depth"@en, "profondeur"@fr ;
rdfs:domain skosclass:ClassificationLevel ;
rdfs:range xsd:positiveInteger ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
#################################################################
# Object properties
#################################################################
# List of the classification levels represented as an RDF list of ordered levels (instances of ClassificationLevel)
skosclass:hasLevels a rdf:Property, owl:ObjectProperty ;
rdfs:label "level list"@en, "liste des niveaux"@fr ;
rdfs:domain skos:ConceptScheme ;
rdfs:range rdf:List ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# TODO There is a containsClassificationLevel property in the UML model, but I think we said that skos:member could do the job
# for relations between levels, and skos:inScheme for attachement of levels to a classification (ConceptScheme)
# TODO Should we define a new property for the aggregation of concept associations in concept associations collections
# (hasMember in the UML model), or should we use skos:member ? The latter would probably necessitate to make ConceptAssociation
# a subclass of Concept and ConceptAssociationCollection a subclass of ConceptAssociation.
# Properties linking concepts to concepts associations
# TODO Find better names (and labels) for those two properties
# TODO Express cardinalities : a ConceptAssociation should associate at least one Concept to at least one Concept
skosclass:hasDomainConcept a rdf:Property, owl:ObjectProperty ;
rdfs:domain skos:Concept ;
rdfs:range skos:ConceptAssociation ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:hasRangeConcept a rdf:Property, owl:ObjectProperty ;
rdfs:domain skos:Concept ;
rdfs:range skos:ConceptAssociation ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Name (or nature, or type) of the items that constitute the level
# TODO the property is named 'containsConcept' in the UML model
skosclass:contains a rdf:Property, owl:ObjectProperty ;
rdfs:label "contains"@en, "contient"@fr ;
rdfs:domain skos:ConceptScheme ;
rdfs:range skos:Concept ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Domain covered by the classification (eg. activities, products, etc.)
# TODO Find better names ? Harmonize property names with the UML model
# TODO In the UML model, the domain is ClassificationLevel
skosclass:covers a rdf:Property, owl:ObjectProperty ;
rdfs:label "covers"@en, "couvre"@fr ;
rdfs:domain skos:ConceptScheme ;
rdfs:range skos:Concept ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Domain covered by the classification (exhaustive coverage)
skosclass:coversExhaustively a rdf:Property, owl:ObjectProperty ;
rdfs:label "covers exhaustively"@en, "couvre exhaustivement"@fr ;
rdfs:subPropertyOf skos:covers ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Domain covered by the classification (mutually exclusive coverage)
skosclass:coversMutuallyExclusively a rdf:Property, owl:ObjectProperty ;
rdfs:label "covers mutually exclusively"@en, "couvre sans recouvrement"@fr ;
rdfs:subPropertyOf skos:covers ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Types of semantic relations from ISO 1087 : associative relations
skosclass:causal a rdf:Property, owl:ObjectProperty ;
rdfs:label "causes"@en, "cause"@fr ;
rdfs:subPropertyOf skos:related ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:sequential a rdf:Property, owl:ObjectProperty ;
rdfs:label "has sequential"@en, "en relation séquentielle"@fr ;
rdfs:subPropertyOf skos:related ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:previous a rdf:Property, owl:ObjectProperty ;
rdfs:label "previous"@en, "précédent"@fr ;
rdfs:comment "immediate predecessor in the sequence"@en, "prédécesseur immédiat dans la séquence"@fr ;
rdfs:subPropertyOf skos:sequential ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:next a rdf:Property, owl:ObjectProperty ;
rdfs:label "next"@en, "suivant"@fr ;
rdfs:comment "immediate successor in the sequence"@en, "successeur immédiat dans la séquence" ;
rdfs:subPropertyOf skos:sequential ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:temporal a rdf:Property, owl:ObjectProperty ;
rdfs:label "has temporal"@en, "en relation temporelle"@fr ;
rdfs:subPropertyOf skos:sequential ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:before a rdf:Property, owl:ObjectProperty ;
rdfs:label "before"@en, "avant"@fr ;
rdfs:subPropertyOf skos:temporal ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:after a rdf:Property, owl:ObjectProperty ;
rdfs:label "after"@en, "après"@fr ;
rdfs:subPropertyOf skos:temporal ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Types of semantic relations from ISO 1087 : hierarchical relations
# Partitive relations and generic/specific relations
# Use case identified : OIICS classification
# TODO See if dcterms:hasPart and dcterms:isPartOf should be used instead or as superproperties
skosclass:isPartOf a rdf:Property, owl:ObjectProperty ;
rdfs:label "is a part of"@en, "est une partie de"@fr ;
owl:inverseOf skosclass:hasPart ;
rdfs:subPropertyOf skos:semanticRelation ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:hasPart a rdf:Property, owl:ObjectProperty ;
rdfs:label "has part"@en, "a pour partie"@fr ;
owl:inverseOf skosclass:isPartOf ;
rdfs:subPropertyOf skos:semanticRelation ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:specializes a rdf:Property, owl:ObjectProperty ;
rdfs:label "specializes"@en, "spécialise"@fr ;
owl:inverseOf skosclass:generalizes ;
rdfs:subPropertyOf skos:semanticRelation ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
skosclass:generalizes a rdf:Property, owl:ObjectProperty ;
rdfs:label "generalizes"@en , "généralise"@fr ;
owl:inverseOf skosclass:specializes ;
rdfs:subPropertyOf skos:semanticRelation ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# Types of relations for comparison purposes
# subOrdinate, superOrdinate are in fact generic/specific or part-of
# TODO Dan to explain the difference between sub/super-ordinate and broader/narrower
skosclass:disjoint a rdf:Property, owl:ObjectProperty ;
rdfs:label "disjoint from"@en, "disjoint de"@fr ;
rdfs:subPropertyOf skos:related ;
rdfs:isDefinedBy <http://ddialliance.org/ontologies/skosclass> .
# TODO Verify that all structural construction from SDMX (eg hierarchical code lists) can be represented
# TODO Check in detail if Neuchâtel model is covered