gbv / jskos

JSKOS data format for Knowledge Organization Systems
https://gbv.github.io/jskos/
39 stars 5 forks source link

support concept collections #7

Open nichtich opened 9 years ago

nichtich commented 9 years ago

Support concept collections in JSKOS based on SKOS concept collections. Any ideas how these can be expressed in JSON-LD?

osma commented 9 years ago

I think there are (at least!) two very different use cases for SKOS collections. The SKOS spec doesn't really distinguish them in detail, but the iso-thes (ISO 25964-1) extensions to SKOS does. In my opinion, this makes plain SKOS collections a bit underspecified, because they can be used for very different purposes.

Concept Groups (isothes:ConceptGroup) can be used for e.g. thematic grouping of concepts.

"Concept groups typically are constructed based on properties of the concepts. A complete overview is not in the scope of this mapping. In practice, a second thesaurus or classification system is sometimes used to tag the concepts of the thesaurus. It is advised to use the skos:inScheme (http://www.w3.org/2004/02/skos/core#inScheme) property on such a skos:Collection to relate it to its Thesaurus (see ISO 25964: isPartOf).. Use rdfs:label or xl:prefLabel for the (occasional) ConceptGroup label (1 per language). Optional label attributes typically are mapped to dc: (or dct:) properties: - dct:created - dct:modified These can be attached to the xl:Label instance that is the value of the xl:prefLabel. Depending on the value of the ISO conceptGroupType a sub-class of iso thes:ConceptGroup should be defined. e.g.: EUROVOC and UNESCO use - Domain - MicroThesaurus (an iso-thes:hasSubGroup of a Domain)"

Thesaurus Arrays (isothes:ThesaurusArray) can be used to subdivide the narrower concepts of a concept further, as in the "milk by source animal" example in the SKOS primer.

"Instances of ThesaurusArray should be instances of skos:OrderedCollection (a subclass of skos:Collection) if the array needs to be an ordered array (in ISO-25964 model: value of its Boolean attribute "ordered" is true). It is advised to use the skos:inScheme (http://www.w3.org/2004/02/skos/core#inScheme) property on such a skos:Collection to relate it to its Thesaurus (see ISO 25964: isPartOf). Concepts in a thesaurus array are sibling concepts in the thesaurus. The (occaional) node label of a thesaurus array is mapped to rdfs:label or xl:prefLabel. Optional node label attributes typically are mapped to dc: (or dct:) properties: - dct:created - dct:modified These can be attached (if needed) to the xl:Label instance that is the value of xl:prefLabel."

I think it would make sense in JSKOS to distinguish (at least optionally) between groups and arrays. It might also make sense to support the iso-thes relations that are specific to these classes, for example isothes:superGroup.

In YSO we use ConceptGroups to express a thematic classification of concepts, and ThesaurusArrays to subdivide narrower concepts. For example, "clothes" have been subdivided into e.g. "clothes by user group" (children's clothes, military uniforms) and "clothing by material" (leather clothes, fur garments).

nichtich commented 9 years ago

Thanks for the pointer to iso-thes (ISO 25964-1) extensions. I've added concept bundles which could be used to represent collections as well, but our first use case is mappings.

nichtich commented 7 years ago

Concepts bundles, however, are distinct from concept collections. The former can be implemented with MADS-RDF property componentList for ordered bundles. See https://github.com/hbz/lobid-resources/issues/187 and https://wiki.dnb.de/x/LgRmBw for related discussion.