Concept Schemes -- Discussion Piece
This page discusses what we might want to express about the relationship(s) between a SKOS Concept Scheme (scheme) and a SKOS Conceptual Resource (concept).
Note that this is just a discussion piece, and is meant to stimulate a discussion of what we really need to express in SKOS.
Every Concept has a Home -- We could take the view, for example, that for every concept, there is one and only one scheme which is "home" for that concept. That scheme provides the unique authoritative definition of the concept.
Schemes Can Import Other Schemes -- We could also take the view that one scheme can import another scheme. The effect of importing one scheme into another is to include all concepts from the imported scheme in the importing scheme.
If we were to adopt these positions, then we would have at least two different ways in which a concept could be "in" a scheme. In the first, a concept is defined in a scheme, and in the second, a concept is imported or included in a scheme.
For the sake of further discussion, let's assume that skos:definedInScheme expresses the first notion, skos:importedInScheme expresses the second, and skos:inScheme expresses the generalisation of both.
We would then give the following semantics to this vocabulary:
skos:inScheme rdfs:domain skos:Concept; rdfs:range skos:ConceptScheme. skos:definedInScheme rdf:type owl:FunctionalProperty; rdfs:subPropertyOf skos:inScheme. skos:importedInScheme rdfs:subPropertyOf skos:inScheme.
We might also then assume that, for example, the following graph:
ex:A skos:inScheme ex:schemeX. ex:schemeY owl:imports ex:schemeX.
ex:A skos:importedInScheme ex:schemeY.
which of course entails
ex:A skos:inScheme ex:schemeY.
In other words, if scheme Y imports scheme X, and concept A is in scheme X, then concept A is imported in scheme Y.
The interesting question is then whether the following graph:
ex:A skos:definedInScheme ex:schemeX; skos:importedInScheme ex:schemeY.
ex:schemeY owl:imports ex:schemeX.
In other words, you cannot just import a few concepts from one scheme into another -- you can only import one whole scheme into another. This follows what OWL does.
The alternative, more relaxed position would be to allow just a few concepts to be selectively imported from one scheme to another. Although this might seem attractive, it opens a "can of worms", because there is no precedent here -- it's not trivial to define operationally what should happen at the RDF graph level when you import just a few concepts from one scheme into another, and there are lots of possible options. Do you import the B-node closure? Do you include only semantic relations to other concepts also imported?
Note again that this is just a discussion piece, meant to illustrate one possible point of view.