Open johanhborg opened 2 months ago
From a Linked Data perspective, the URL value of gs1:certificationAgencyURL may have associated Linked Data that describes that certification agency.
A certification agency is a kind of organisation, so it is logical that such Linked Data describing the agency would declare that the agency is of rdf:type gs1:Organization or schema.org/Organization.
A certification agency is a kind of organisation
Agreed. Then why not just call the predicate gs1:certificationAgency
instead of gs1:certificationAgencyURL
. Then hanging off of an instance of gs1:Organization
you could use schema:url
to reference the URL.
Or if you want a shortcut you could define gs1:certificationAgencyURL
to be a property chain:
gs1:certificationAgencyURL owl:propertyChainAxiom ( gs1:certificationAgency schema:url ) .
Good suggestion except for the fact that gs1:certificationAgency is currently defined as a datatype property expecting one ore more rdf:langString values, which means we can't chain it.
The background history to this is that a minimal version of gs1:CertificationDetails has been in the GS1 Web Vocabulary since v1.1 in 2016 ( see https://github.com/gs1/WebVoc/blob/master/v1.1/gs1Voc_v1_1.jsonld and https://web.archive.org/web/20160329091217/http://gs1.org/voc/CertificationDetails ).
In that minimal version, only three properties were defined, namely gs1:certificationStandard , gs1:certificationAgency and gs1:certificationValue , all defined as being of rdf:type owl:DatatypeProperty - so unfortunately unchainable. The background to that was that they were most likely imported from the GS1 GDSN data model in which they are also defined as datatype properties, expecting a string value.
See https://navigator.gs1.org/gdsn/quick-search?version=4&search=certification&tab=attributesTab
All other properties within gs1:CertificationDetails were added more recently as part of an effort within the GS1 EPCIS / CBV 2.0 standard.
With hindsight, we might like to rename some properties or change their rdfs:range but that's not really backwards-compatible and is disruptive to anyone already using those properties.
certificationAgencyURL is defined as a gs1:Organization which makes no sense.
The most obvious solution would be to make it a xsd:anyURI just like authenticitySecurityFeatureInstructionsURL which is part of AuthenticityDetails in the same way certificationAgencyURL is a part of CertificationDetails.
The alternative would be to define it as a gs1:ReferencedFileDetails like is done for offerRedemptionURL, but I fail to see how certificationAgencyURL would benefit from any of the extra properties of that class, so my preference would be to keep it simple and use xsd:anyURI.