Sorry if this message is too long
The work you've done is excellent: precise and very detailed. You have given me an example of how to develop an ontology. After watching it, I am ashamed of the ontology draft I sent.
I have some doubts ... but I think it is due to the structure of SKOS (which is somewhat asymmetric). The ISO-25964 datamodel it's more precise and complete than SKOS. All my doubts are referred from the point of view of the publication of the UNESCO Thesaurus as Linked Open Data dataset. In this sense, the whole dataset may be correctly modeled. However, when considering individual elements encounter problems exist to discover other resources.
An example: the UNESCO thesaurus term "Learning"
MT 1.05 Educational sciences and environment
RT Developmental psychology
This term is into micro-thesaurus "1.05 Educational sciences and environment" and this micro-thesaurus form part of the knowledge domain "Education". It may be also considered a top term, since it has no generic term. In SKOS + ISO-THES could be represented as follows (in Turtle):
unescothes:C02240 rdf:type skos:Concept ;
skos:prefLabel "Learning"@en,
The main problem is that from a concept it's impossible to determine the micro-thesaurus to which it belongs. That is, there is no explicit inverse property for skos:member, something like "skos-thes:isMemberOfGroup" (considering that micro-thesauri are represented using ConceptGroup):
unescothes:C02240 skos-thes:isMemberOfGroup unescothes:COL105 .
[JDS:>] Is this inverse needed? A SPARQL can extract the skos collections of sub-class (or conceptGroup type MT) having this concept as a member.
Would that solve your problem?
Knowledge domains and micro-thesauri can be represented as skos-thes:ConceptGroup and the whole UNESCO Thesaurus as a skos:ConceptScheme . But there isn't any property to determine the knowledge domains from the Concept Scheme. It's evident that this property is inverse of skos:inScheme, something like "skos-thes:contains". Could it be explicitly declared in the namespace of skos-thes?
[JDS:>] The existence of concept groups of type “Knowledge Domain”(KD) or “Micro Thesaurus” (MT) should be considered specific to the Unesco thesaurus.
In ISO 25964 it is suggested to have a controlled vocabulary detailing the conceptGroupType.
In the ISO 25964 RDF/OWL SKOS extension proposal it is suggested
- to create unesco:MT and unesco:KD, both as OWL sub-class of skos:Collection.
- all skos:Collection have a skos:inScheme property (identifying the thesaurus or Concept Schem)
This allows:
- to have a SPARQL selecting all skos:Collection thae have a skos:inScheme identifying the unesco skos:ConceptScheme and are of type unesco:KD (orlikewise unesco:MT)
unescothes:CS001 skos-thes:contains unescothes:COL001 .
unescothes:COL001 skos-thes:subGroup unescothes:COL105
unescothes:COL105 skos-thes:superGroup unescothes:COL001
Another problem is difficult to solve without using custom properties. It is impossible to determine from the URI associated with a ConceptGroup those concepts that belong to that group and are simultaneously top concepts. This forces the RDF application to preserve at any time the data of skos:ConceptScheme URI with corresponding skos:hasTopConcept properties.
[JDS:>] A SPARQL query can bring this up. For a given concept group CG, select all skos:Concept C where <CG> skos:member <C> and <C> skos:isTopConceptOf <unescoThesaurus>
Custom properties should be developed to indicate when a concept is an access point to the hierarchical structure of concepts from a ConceptGroup (I send you a RDF vocabulary draft into uneskosvoc.rdf file).
unescothes:C02240 uneskosvoc:mainConceptOf unescothes:COL105 .
unescothes:COL105 uneskovoc:hasMainConcept unescothes:C02240 .
I will subscribe to the mail list.