From W3C Wiki
Jump to: navigation, search

This is a description of a requirement and proposal for handling top concepts in a semantic web context ...


Currently, to identify a particular concept as a top concept in some concept-scheme, you declare it as an instance of the class skos:[[TopConcept]]. However, this becomes problematic whenever a concept is a member of more than one concept-scheme ... because the concept may be a top concept in one concept-scheme and not in another.

What we need is some way of declaring that a concept is a top concept for a specific concept-scheme only.


I propose the following actions ...

  1. skos:[[TopConcept]] class be deprecated.
  2. A new property skos:hasTopConcept be added, with domain skos:[[ConceptScheme]] and range skos:Concept.

Explanation and Examples

AJM> I rewrote this section after I got it straight in my head ...

There is a fundamental problem with the skos:[[TopConcept]] class, which arises whenever concepts may be members of more than one scheme - this problem is outlined in an email to


Is skos:[[TopConcept]] really needed? A top concept is defined by the absence of skos:broader terms. One can easily determine that whether a concept is a top concept. Top concepts are more a print convention for thesauri rather than a functional property such as broader, narrower, related, etc. Can skos:[[TopConcept]] just be removed from SKOS?

AJM> Stella's comments on this I think are very useful. The other major issue is that you can't use the absence of any broader concepts from the same scheme to extract the top concepts if you're using an RDF query language such as RDQL (because you can't say 'and NOT something').