(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:
[ ] 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 at operatedBy and manufacturer: 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 its credentialSubject: is this intended?
[ ] proof is a blank node and the proof data is missing. The only invalid subject is CountryId#AU, so I think you are missing some imported context to map the props of proof 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 are ni: (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.
(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
:Then I used
rdfpuml
andplantuml
to convert it to this diagram:I see these issues:
identifierURI, image, credentialReference, eventReference, criteriaReference
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?manufacturedAt
name to eg "Pete's Processing Plant 123"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 propsrevocationListCredential
really be a self-link?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