skos:prefLabel is supposed to be a human-readable (natural language) label of something, one per language.
as evidence of this, it's a subprop of rdfs:label.
(Note: skos:altLabel is also a subprop of rdfs:label, which IMHO is unfortunate.)
But you use it for codes, here are two examples:
gs1:gtin a rdf:Property,
rdfs:label "GTIN"@en ;
skos:altLabel "GTIN" ;
skos:notation "01"^^gs1:AI ; # RIGHT
skos:prefLabel "01" . # WRONG, put "GTIN" here and remove the altLabel as you don't need it
gs1:AllergenTypeCode-WHITING a gs1:AllergenTypeCode ;
rdfs:label "Whiting and its Derivatives"@en ;
skos:prefLabel "WHITING" ; # WRONG, should be skos:notation
gs1:originalCodeValue "WHT" .
Your use of datatype ^^gs1:AI for skos:notation is correct, and the SKOS reference gives such examples.
But the use of a pure-string code like "WHITING" in skos:notation would also be correct: SKOS does not demand a datatype.
Also, what is your rationale for using lang tags in rdfs:label but not in skos:prefLabel, skos:altLabel?
Please describe the multilinguality plans of GS1 Voc in a separate issue.
skos:prefLabel is supposed to be a human-readable (natural language) label of something, one per language.
But you use it for codes, here are two examples:
Your use of datatype
^^gs1:AI
forskos:notation
is correct, and the SKOS reference gives such examples. But the use of a pure-string code like"WHITING"
inskos:notation
would also be correct: SKOS does not demand a datatype.Also, what is your rationale for using lang tags in rdfs:label but not in skos:prefLabel, skos:altLabel? Please describe the multilinguality plans of GS1 Voc in a separate issue.