where's the beef?
Created by: VladimirAlexiev
(Sorry, I couldn't resist a jokular issue name. But I really like to look at examples, I think they capture the intended semantics of a data model in the most immediate way).
I took the example from #80 about Beef Silverside, converted it to turtle, added this prefixes.ttl
:
@prefix unece: <https://vocabulary.uncefact.org/> .
@prefix dpp: <https://test.uncefact.org/vocabulary/untp/dpp/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix puml: <http://plantuml.com/ontology#> .
@prefix cred: <https://www.w3.org/2018/credentials#> .
@prefix rev-list-2020: <https://w3id.org/vc-revocation-list-2020#>.
rdf:nil a puml:Inline.
Then I used rdfpuml
and plantuml
to convert it to this diagram:
I see these issues:
-
several parasitic lists as noted in https://github.com/uncefact/spec-untp/issues/8#issuecomment-2079335528 -
URLs should be emitted as URLs not strings. Applies to identifierURI, image, credentialReference, eventReference, criteriaReference
-
A node that has identifiers/identifierURI
but is a blank node begs the question: why not use that as node URI? Look atoperatedBy
andmanufacturer
: it seems to be the same company (though one is called "Pete's" and the other "AgTrace"): why are the two nodes not the same?- Please use the same name since you've used the same URL (and it's natural that the manufacturer and the operator of the manufacturing facility will be the same company)
- Fix the
manufacturedAt
name to eg "Pete's Processing Plant 123"
-
You have 2 nodes dpp:ProductPassport
: one that's a VerifiableCredential, and another that's itscredentialSubject
: is this intended? -
proof
is a blank node and the proof data is missing. The only invalid subject isCountryId#AU
, so I think you are missing some imported context to map the props ofproof
to RDF props -
Should revocationListCredential
really be a self-link? -
The eventReference
cannot be a realistic URL since it uses some/gtin
URL. But traceability events are not keyed by GTIN, since they apply to multiple products (and other objects). EPICS says they areni:
(Named Information URI Scheme) which is a "value object" URI (particular hash checksum computed from the informative fields of the event). You could illustrate with a web URL, but at least make it/event/...
@kshychko
after you fix it, give me a new JSONLD example and I'll reconvert it to a diagram.
This is great stuff! Posted on twitter: https://twitter.com/valexiev1/status/1785048031940771843