geonetwork / geonetwork/core-geonetwork
Support for getting thesaurus concept definitions from `skos:definition` instead of `skos:scopeNote`
- Dominant language
- Java
- Stars
- 521
- Forks
- 515
- Avg merge
- 6d 13h
- Merged PRs (30d)
- 19
Description
I can see that the definitions of concepts in thesauri in SKOS format are retrieved from `skos:scopeNote`, both by testing and by looking at:
https://github.com/geonetwork/core-geonetwork/blob/025ac3428f69cd5f488aa3fb763b3d04e7d39379/core/src/main/java/org/fao/geonet/kernel/Thesaurus.java#L413-L437
https://github.com/geonetwork/core-geonetwork/blob/025ac3428f69cd5f488aa3fb763b3d04e7d39379/core/src/main/java/org/fao/geonet/kernel/KeywordBean.java#L557-L578
https://github.com/geonetwork/core-geonetwork/blob/025ac3428f69cd5f488aa3fb763b3d04e7d39379/web/src/main/webapp/xslt/services/thesaurus/registry-to-skos.xsl#L182-L199
Many existing registers of code lists store the concept definitions in `skos:definition`, not in `skos:scopeNote`, and do not use `skos:scopeNote` at all.
Examples:
* The RDF encodings of the INSPIRE code lists, https://inspire.ec.europa.eu/metadata-codelist and https://inspire.ec.europa.eu/codelist
* The RDF encodings of the ISO TC 211 code lists, https://defs.opengis.net/prez/catalogs/ogc-cat:hosted/col/tc211:
* The RDF encodings of the controlled vocabularies of the EU, see https://op.europa.eu/en/web/eu-vocabularies (see e.g. https://op.europa.eu/en/web/eu-vocabularies/dataset/-/resource?uri=http://publications.europa.eu/resource/dataset/data-theme and https://op.europa.eu/en/web/eu-vocabularies/dataset/-/resource?uri=http://publications.europa.eu/resource/dataset/dataset-status
* The RDF encodings of the vocabularies of the Australian Government Linked Data Working Group, see https://vocabs.ga.gov.au/, see https://catalogue.linked.data.gov.au/vocabularies
As a consequence, to see concept definitions in the GeoNetwork GUI,
* existing vocabularies have to be adapted before import
* new vocabularies for use in GeoNetwork have to be created in a way that does not comply with good practices for SKOS concepts.
Would it be possible to update the functionality so that the contents of `skos:definition` is used instead of `skos:scopeNote`? For compatibility reasons, perhaps use `skos:definition` in the absence of `skos:scopeNote`?
In any case, it would be great to have the expected properties of SKOS documented on https://docs.geonetwork-opensource.org/4.4/administrator-guide/managing-classification-systems/managing-thesaurus/.
Contributor guide
Research direction
Start by reading the referenced sections of core/src/main/java/org/fao/geonet/kernel/Thesaurus.java, KeywordBean.java, and web/src/main/webapp/xslt/services/thesaurus/registry-to-skos.xsl. Check how the current tests exercise thesaurus definitions, then verify that definitions from skos:definition are used when skos:scopeNote is absent while existing scope notes remain compatible. Update the managing-thesaurus documentation with the expected SKOS properties.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, xml
- Domain
- backend, documentation
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100