I am trying to implement a technical glossary in SKOS (which uses BCP47) that has both a 'technical' scientific definition as well as a more accessible 'plain-language' definition. I have not been able to find an appropriate solution
Is there a best-practice for this ?
There is no specific level of technicality expressible through SKOS, but you may look into other vocabularies to find a property that would suit your needs, for example on Linked Open Vocabularies.
As for using such a property, I think the easiest would be to use rdf:CompoundLiteral
to describe the literal itself:
<resource>
skos:prefLabel [
a rdf:CompoundLiteral ;
rdf:value "layman term" ;
rdf:language "en" ;
:isTechnical false
] ;
skos:altLabel [
a rdf:CompoundLiteral ;
rdf:value "technical term" ;
rdf:language "en" ;
:isTechnical true
] ;
Just remember that SKOS has an integrity condition such that only one skos:prefLabel
may be present on a resource for a given language tag.
If you absolutely must use BCP47 (for language ranges, more restrictive formats etc.), I have tried to find a way to express what you want using existing standards and extensions, but I wasn't successful. In that case, the only remaining possibility is to use a private-use subtag, like "term"@en-x-tech
.