Closed VladimirAlexiev closed 9 months ago
hi @jmcanterafonseca-iota can you please address this before tomorrow's meeting?
I will look into this along the week.
On Mon, Jun 28, 2021 at 1:41 PM Vladimir Alexiev @.***> wrote:
hi @jmcanterafonseca-iota https://github.com/jmcanterafonseca-iota can you please address this before tomorrow's meeting?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gs1/EPCIS/issues/307#issuecomment-869612755, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQEZJLX3BXIWBIQZWAAZOFLTVBNV5ANCNFSM47FD4VMA .
-- IOTA Foundation c/o Nextland Strassburgerstraße 55 10405 Berlin, Germany
Board of Directors: Dominik Schiener, Serguei Popov, Navin Ramachandran ID/Foundation No.: 3416/1234/2 (Foundation Register of Berlin)
Proposed fix PR #315
@VladimirAlexiev
@jmcanterafonseca-iota Have you tested?
@jmcanterafonseca-iota Have you tested?
@VladimirAlexiev yes, indeed. I've tested with your makefile and generates all the Turtle. The same with #316
Hi @jmcanterafonseca-iota (cc @CraigRe @mgh128)! I checked the new context and added more bugs in the very first comment.
thank you @VladimirAlexiev for this input.
Some of the bugs had already been spotted and are already solved by #321 I will investigate the other ones and provide a patch.
@jmcanterafonseca-iota commented on some of the bugs in this gdoc and fixed several of the problems. I also replied there (search for "VA"), but I think the discussion should be here.
I'll only comment on Enhancement 14 here #230 cc @mgh128: see https://github.com/gs1/EPCIS/issues/230#issuecomment-857596033
<https://example.org/sd/1234> a epcis:SourceOrDestination;
epcis:source <https://example.org/org/1>; # cannot hold two different orgs!
epcis:destination <https://example.org/org/2>;
epcis:sourceOrDestinationType cbv:SDT-owner
]
@jmcanterafonseca-iota:
Regarding Bug 1, when I paste the contents of https://github.com/gs1/EPCIS/blob/master/JSON/Example_9.6.1-with-comment.jsonld into https://json-ld.org/playground/ I'm still seeing only triples under the N-Quads or Normalized tab, so I'm not sure why the approach with the jsonld / riot tools is producing quads, while JSON-LD playground is producing triples.
@mgh128 as it says Bug 1 (fixed)
(13 Jul, https://github.com/gs1/EPCIS/pull/315)
@CraigRe merge #321 so I can retest.
Regarding bug 2, we probably still need to carefully think about whether this works acceptably in the case of an error-declaring event that echoes the original event ID. It's probably OK to merge the original event with the near-replica that also includes the ErrorDeclaration - because it is the referenced correctiveEventIDs that point to the correction, so maybe it is OK to set "eventID": "@id" as Vladimir suggests
I agree that we need to fix bug 3 so that ObjectEvent, EPCISDocument etc. have their correct absolute URIs. when the context resource is resolved/applied.
Re bug 6, I agree with Vladimir that it is better to declare the namespaces for epcis: and cbv: and gs1: once only, at the top.
Re bug 8, I agree that there should be consistency. I'm not aware of a good reason for BTT to be handled differently from enumerations for bizStep, disposition, SDT etc.
Re bug 9, I think I agree with Vladimir that we should declare "@type":"@id" - not "@type":"xsd:anyURI" See https://www.w3.org/TR/json-ld11/#example-4-context-for-the-sample-document-in-the-previous-section
Re bug 12, yes, we still need to submit the work request to add these values for component - but Vladimir is correct that we also need to declare "@type": "@id" anyway, to cast it from a string to a URI. We can make that update already.
Re bug 15, we need to declare "@type": "@id" (as in bug 12)
@mgh128 Bug 12: should be @vocab
(which is more than @id
) because component
values are bare strings.
@mgh128 Bug 12: should be
@vocab
(which is more than@id
) becausecomponent
values are bare strings.
In that case, we need to think about whether this also applies to any other fields where we might be recommending use of bare strings from a JSON-only perspective. Not sure I'm seeing the difference between how we handle bare strings for component
vs bare strings for bizStep
or disposition
.
I think we were intending that we'd have a Linked Data code list for the standard values including x, y, z, azimuth, spherical radius, cylindrical radius etc. - with a definition and maybe a link to a diagram.
@mgh128 Look in Jose's context: bizStep, disposition
also use @vocab
@mgh128
no difference between how we handle bare strings for
component
vs bare strings forbizStep
ordisposition
True: it can be implemented with an enumeration (Jose's approach) or as @vocab
(as already implemented in my approach).
we'd have a Linked Data code list for the standard values including x, y, z, azimuth, spherical radius, cylindrical radius etc. - with a definition and maybe a link to a diagram.
Yes, these should be added to CBV: #264.
@mgh128 made Turtle-diff
to compare Turtle files from both context approaches
Turtle-diff
for this !!!-b, --ignore-space-change
to avoid spurious hits-u 0
for nicer output-I, --ignore-matching-lines=RE
, eg this is the sme thing just differently ordered
< ext1:array "true" , "22" , "stringInArray" , "2013-06-08T14:58:56.591Z" , "12" ;
---
> ext1:array "stringInArray" , "true" , "2013-06-08T14:58:56.591Z" , "22" , "12" ;
JSON\Example_9.6.1-ObjectEvent-with-pseudo-SBDH-headers.jsonld
: but you need to make Turtle, and copy the same example to my folder:
cd Turtle
make
cd ../JSON-simple-context
cp ../JSON/Example_9.6.1-ObjectEvent-with-pseudo-SBDH-headers.jsonld .
perl simplify.pl Example_9.6.1-ObjectEvent-with-pseudo-SBDH-headers.jsonld
cd ../Turtle-simple-context
make
@CraigRe Make a new issue to discuss the diff, the global README explanation of the two "branches", and copy Manu Sporny's advice
@jmcanterafonseca-iota Please look there to find more fixes needed
I made some fixes in my context:
xsd:dateTimeStamp
(only creationDate
is xsd:dateTime
)bizTranzaction
is alias of @id
Thanks for the feedback re the diffs. I've added the PERL script to the Turtle-diff directory, re-ran it and have committed the updated .diff files with improved formatting options, as you recommended. Not yet made a make file but at least the PERL script is there in the meantime, as well as a log file of allDiffs.txt (just concatenates all of these diffs, indicating the filename before the diff content for each). I've already noted some of the issues and will work with @jmcanterafonseca-iota to fix the remaining changes in his modular JSON-LD context.
@mgh128 See last 2 bugs in the very first comment.
@VladimirAlexiev - if you're referring to Bug 23 (new) Missing Class and Bug 25 (new) gs1 namespace I think these have already been corrected by the current file https://github.com/gs1/EPCIS/blob/master/epcis-context.jsonld
Please let me know if you're still seeing a problem with this. If so, you or I can submit a public review comment to ensure that this is corrected.
At some point I'll regen all examples and recheck the diffs.
@jmcanterafonseca-iota and @mgh128 how about Enhancement 24 (new) SBDH
?
I think these SBDH props are kind of made-up and not really in the EPCIS spec?
So that issue is irrelevant?
Thanks, @VladimirAlexiev . I think I caught most of the remaining issues when I checked the diffs but it's helpful if you can double-check and let us know if anything is still inconsistent.
Regarding SBDH, those SBDH-like properties are invented by us because there is no formal mapping of SBDH to JSON but some sectors (particularly pharma / healthcare) are either using EPCIS in more of an EDI / messaging approach and/or they need those SBDH fields for an audit trail of the various EPCIS data exchanges - so we need to support this in JSON/JSON-LD to provide them an opportunity to adopt JSON/JSON-LD when they are ready to do so. They are optional fields for most users - but they do need to be present in at least one example and also supported by the validation schema (which might not yet be the case and almost certainly is not yet the case for the SHACL validation), so some validation schema updates may be needed by @jmcanterafonseca-iota (modular JSON Schema) and by @mgh128 (SHACL)
I regenerated Turtle\ Turtle-simple-context\ Turtle-diff\ fully
I now see https://github.com/gs1/EPCIS/pull/346 and I think it'd have most of these fixes. Can you please accept it?
@mgh128 I updated the status of bugs (in the very first comment).
example-custom
Cheers!
@mgh128 @jmcanterafonseca-iota
Just checked: bugs 6, 8,a,b, 9a
are still not fixed.
In particular the use of @vocab
casts random strings into CBV namespaces:
"type": {
"@id": "epcis:bizTransactionType",
"@type": "@vocab"
}
NOT using @vocab
was cited as the main reason for making epcis-context.jsonld
(which is 5.5x more complex than epcis-context-simple.jsonld
).
@VladimirAlexiev Not sure I can reproduce this error you're still seeing. When I paste the contents of https://github.com/gs1/EPCIS/blob/master/JSON/Example_9.6.1-ObjectEvent.jsonld into https://json-ld.org/playground/ and look at the extracted N-Quads, I see that standard CBV code values for bizTransactionType such as "po" and "desadv" are correctly mapped to https://ns.gs1.org/cbv/BTT-po and https://ns.gs1.org/cbv/BTT-desadv but if I change "desadv" to "desadvice" (i.e. a random string that is not one of the standard CBV code values for BTT), then the resulting quad maps to https://json-ld.org/playground/desadvice (or a URI with whichever base URI is assumed by the tool) - but importantly, it's not casting the 'random string' values into the CBV namespace, as far as I can see.
@jmcanterafonseca-iota - could you please also take a look and see if you can reproduce the problem that @VladimirAlexiev mentions?
@mgh128 Sorry, I should have said "casts strings to random URLs since the @vocab
URL is not defined`.
You can see an example of injecting a "random term" to the CBV namespace in Bug 8
:
ex2:foo
is cast to https://ns.gs1.org/cbv/foo
@VladimirAlexiev - thanks for the clarification. I did some further tests based on the examples you identified in bug 8, applied within the value of bizTransactionList
"ex:type": "bol"
- does not map ex:type to CBV namespace but just as a CURIE
"type": "ex2:foo"
- does not map ex:type to CBV namespace but just as a CURIE
"type": "foo"
- does not map ex:type to CBV namespace but just as random URL (because base is unspecified). JSON Schema detects that as a validation error, since epcis:bizTransactionType
is required to be a URI or a 'bare word' string if using a standard CBV code value defined for BTT (see definition of bizTransaction-type
starting at line 1016 of https://github.com/gs1/EPCIS/blob/master/EPCIS-JSON-Schema.json)
SHACL also detects that as a validation error - (see epcis:BizTransactionTypeShape
starting at line 613 of https://github.com/gs1/EPCIS/blob/master/Ontology/EPCIS-SHACL.ttl )
If I've still misunderstood or overlooked what you're reporting, could you please attach an example of an event where you're seeing a random term being cast to something in the CBV namespace. Thanks for doing these further checks - I fully agree that it's very important that we fix it if this is still happening - but I'm just not seeing that when using the three examples above and testing in http://json-ld.org/playground/ but maybe I'm not looking in the right place, so seeing your example would really help. Thanks in advance!
Did you try the link cited in "bug 8" https://tinyurl.com/73e7c8wj ?
"ex:type": "bol"
is cast to <https://example.org/ns/type> <https://ns.gs1.org/cbv/BTT-bol>
:
cbv:BTT-bol
should work only in epcis:bizTransactionType
not in a custom field"type": "ex2:foo"
is cast to <https://ns.gs1.org/epcis/bizTransactionType> <https://ns.gs1.org/cbv/foo>
because ex2:
is defined as an alternative cbv:
prefix
"type": "foo"
: I agree that the JSON Schema checks that
@type:@vocab
instead of @type:@id
? Since @vocab
is undefined, using @type:@vocab
is a bad practice.bizTransactionType
will be emitted as IRI, the problem is that IRI has a random namespace (depending on the JSONLD processor)Hi @VladimirAlexiev - thanks for clarifying.
So for the problem illustrated by "ex:type": "bol"
are you suggesting that we should move the scoped context with the enumeration for 'bol', 'po' etc. one level deeper, scoped solely within "type" (epcis:bizTransactionType) to avoid this problem, something like this: https://mgh128.github.io/EPCIS/epcis-context-alt.jsonld
Regarding the problem illustrated by "type": "ex2:foo"
I can't see a way to prevent that aliasing of the cbv: prefix - at least not in a machine-enforceable way. We could include a normative statement in the draft standard to state that users / implementations SHALL NOT use CURIE prefixes other than "cbv" as an alias of https://ns.gs1.org/cbv/ . Would that address your concern?
Regarding "type": "foo"
if we move the protected scoped context that enumerates the expansion of the 'bare word' standard terms so that it is defined for "type"
(epcis:bizTransactionType
) instead of for bizTransactionList, would this address your concern regarding use of @type: @vocab
? It appears that "type"
(epcis:bizTransactionType
) is anyway inheriting the @context
currently defined for bizTransactionList
At https://mgh128.github.io/EPCIS/epcis-context-alt.jsonld I've done just that and it looks like it still correctly expands the bare word values for the standard BTT code values in CBV.
I'm tagging @jmcanterafonseca-iota so he can take a look and comment if he agrees with moving that protected scoped context as I've done at https://mgh128.github.io/EPCIS/epcis-context-alt.jsonld .
scoped solely within "type" (epcis:bizTransactionType)
Yes.
SHALL NOT use CURIE prefixes other than "cbv"
Doesn't sound reasonable to me. Prefixes are a purely local convention, so it's not up to someone to restrict them.
Furthermore, they have a legitimate use for this prop, eg cbvBTT: https://ns.gs1.org/cbv/BTT-
and then cbvBTT:myNewDocType
would this address your concern regarding use of
@type: @vocab
No. That declaration means "interpret a bare word in that field by prepending @vocab
", which however is undefined. @type: @vocab
has been called a "bomb" by Manu Sporny and was the main argument against EPCIS-context-simple.jsonld
.
My proposal is to replace all @type: @vocab
with @type: @id
. That will cause "interpret a bare word by prepending @base
" and @base
is also undefined, but it somehow sounds better to me.
I think the current LD @context works just fine and no need to go back. We discussed this long time ago and @type @id has also its counter-examples and edge cases. However, all the edge cases given here against @type @vocab seem to be opportunistic and unrealistic or even causing the JSON Schema not to validate.
This issue should be closed IMHO.
Hi @jmcanterafonseca-iota - did you take a look at https://mgh128.github.io/EPCIS/epcis-context-alt.jsonld i which I've moved the enum for BTT closer to the property? What are your thoughts on that? Do you see a downside of making that change?
I agree that "@type":"@vocab" already is used extensively within the JSON-LD context file at https://www.w3.org/2018/credentials/v1 (referenced within https://www.w3.org/TR/vc-data-model/ in which Manu Sporny is one of the editors and co-authors - which seems highly inconsistent with the claim above (https://github.com/gs1/EPCIS/issues/307#issuecomment-1082690856 ) by @VladimirAlexiev that @msporny discouraged use of "@type" : "@vocab"
@CraigRe and I checked the use of scoped contexts and use of "@type" : "@vocab"
with Manu Sporny, Gregg Kellogg, Markus Lanthaler and Pierre-Antoine Champin (as editors / co-authors of the JSON-LD 1.1 technical recommendation) back in September 2021 and also had a call with many of them. They clearly supported the use of protected scoped contexts, as implemented by @jmcanterafonseca-iota . I still have the e-mails.
Markus Lanthaler did warn us that these protected scoped contexts would not work with JSON-LD 1.0 processors, which I think is why we're needing to now use https://zazuko.github.io/shacl-playground/ rather than https://shacl.org/playground/ (which appears to only support JSON-LD 1.0) last time I checked a month or two ago.
What Manu Sporny was discouraging was the use of specifying an overall default vocabulary (using something like "@vocab" : "https://ns.gs1.org/epcis/" ) - exactly the approach taken by @VladimirAlexiev in https://github.com/gs1/EPCIS/blob/master/epcis-context-simple.jsonld but he did support the protected scoped approach as implemented at https://github.com/gs1/EPCIS/blob/master/epcis-context.jsonld by @jmcanterafonseca-iota , aligned with the approach taken in https://www.w3.org/2018/credentials/v1
@mgh128 if by restricting the scope we avoid edge cases I am fine with the approach.
Do you envisage other cases where it could be worth restricting the scope of terms?
Yes - it's only to avoid edge cases - so thanks to @VladimirAlexiev for alerting us to those, some of which we can address using this approach.
Looking at JSON Schema to see if there are other situations where the protected scoped contexts with enumerated 'bare word' values could be moved closer to the property that makes use of them. Looks like we could take the same approach to move the enumeration at lines 156-159 (for source destination type) to between lines 170-171 of https://github.com/gs1/EPCIS/blob/master/epcis-context.jsonld - and similarly, for destination list by moving lines 182-185 to between lines 196-197.
Also for reason
within errorDeclaration
, moving lines 572-574 to between lines 581-582.
Also potentially within persistentDisposition
, moving lines 208-241 to between lines 249-250 and a copy also between lines 254-255.
I hope that suggestion is clear enough for you to try - but if not, I can prepare an alternative version that we can test.
I can have a look at it, @mgh128
What Manu Sporny was discouraging was the use of specifying an overall default vocabulary (using something like "@vocab" : "https://ns.gs1.org/epcis/" ) but he did support the protected scoped approach as implemented at https://github.com/gs1/EPCIS/blob/master/epcis-context.jsonld by @jmcanterafonseca-iota , aligned with the approach taken in https://www.w3.org/2018/credentials/v1
Yes, exactly. Can confirm. :)
@mgh128 I have provided a tentative PR at #416 .
For persistentDisposition
wouldn't it be a better fix if in the JSON Schema we just prohibit additional properties?
@jmcanterafonseca-iota - agreed. I can't see any good reason to permit properties other than set
and unset
within persistentDisposition
persistent disposition fixed at #417
this can be closed
@msporny Can you explain the benefit of using type:vocab
rather than type:id
in the EPCIS context?
Please reply to https://github.com/gs1/EPCIS/commit/aed5c4564fdf3eb6eb8f289df186eaf54c132ed2#commitcomment-57982622.
@mgh128 @jmcanterafonseca-iota I checked the list on top:
Bug 6 (new) duplication
sourceList
-> move into type
destinationList
-> move into type
persistentDisposition
: I agree that restricting it to fields set, unset
is enoughbizTransactionList.type
: DONEsensorReport.type
: DONEerrorDeclaration
-> move into reason
@id
alias: not fixedHi @VladimirAlexiev,
If you look at a modified version of https://www.w3.org/TR/json-ld11/#example-65-term-expansion-for-values-not-identifiers such as this:
{ "@context": { "@base": "http://example1.com/", "ex": "http://example.com/", "vlad": "https://example3.com/Vladimir", "ex:knows": {"@type": "@vocab"} }, "@id": "ex:fred", "ex:knows": [ "vlad" ] }
you'll see that with "@type":"@vocab" the result is the following RDF triple:
http://example.com/fred http://example.com/knows https://example3.com/Vladimir .
whereas if you change the "@type": "@vocab" to "@type": "@id" in the example above, the RDF triple changes to:
http://example.com/fred http://example.com/knows http://example1.com/vlad .
So, the behaviour with "@type": "@id" is to simply append the string to whatever @base URI stem is specified, whereas the behaviour with "@type": "@id" is to actually use the string-to-URI mappings specified in the context resource.
Translating this to our EPCIS scenario, we want to be able to map "shipping" to cbv:BizStep-shipping ( https://ref.gs1.org/cbv/BizStep-shipping ) while at the same time mapping "in_transit" to cbv:Disp-in_transit ( https://ref.gs1.org/cbv/Disp-in_transit ) so that's why @jmcanterafonseca-iota has carefully used "@type": "@vocab" instead of "@type": "@id" for the expansion of the diverse lists of enumerated bare strings, in which each list generally needs to be appended to a different URI stem.
@jmcanterafonseca-iota I'll report here bugs caused by PR #275 (new JSONLD context) that was accepted yesterday. I hope you can fix them very quickly: this is higher prio than completing the JSON schema task because it blocks downstream tasks (Turtle and Diagrams). cc @CraigRe @mgh128 @mkotoff
Please test your changes:
Turtle/README.md
describes how to installjsonld
andriot
.Bug 1 (fixed)
Tried "make", got error on the first file:
Tried just the first step:
Noticed the result first has triples but then QUADS. EPCIS JSON doesn't use any named graphs, so where did this came from?
We have
epcis:eventList _:b2
, so we should have_:b2 rdf:type epcis:ObjectEvent
. Instead, the subject is a new blank node_:b3
whereas_:b2
is relegated to the named graph position (blank-node named graph).Bug2 (fixed)
Example_9.6.4-TransformationEvent.ttl has
This results in a blank node with a wrong property and wrong value:
That should be resolved to the node's URI (not separate property, and URI not string):
Change this in the context
To this:
Bug 3 (canceled)
"isA":"EPCISMasterDataDocument"
is resolved to a relative URL:The reason is that
@vocab
was removed, so the context now has only"isA": "@type"
.One way to resolve is to add a term shortcut as exists for event types:
But this also applies to other nodes that are allowed to have
isA
:VocabularyElement
Vocabulary
EPCISDocument
epcis:SensorElement
(I think this should be changed toSensorElement
in the example)Address
(Example_9.8.1-MasterData-complying-with-schema.jsonld): this is ok because there's a nested context with@vocab
:9-Dec-2021: MasterData now is not transmitted in JSON, canceled
Bug 4 (fixed)
Move out
EPCIS-JSON-Schema.json, EPCIS-JSON-Schema-single-event.json
fromJSON
toJSON-Schema
(I guess that's done in the PR that's still pending)Bug 5 (fixed)
Wrong prop names. All prop names start with lowercase:
Bug 5a (fixed)
The terms
sensorReport, sensorMetadata
are defined twice, both cases carrying nested context: once insensorElementList
and secondly at a higher level.Don't know whether this will work, but it's certainly confusing (I think prev bug is caused by this confusion). Merge the two definitions.
Bug 5b (fixed)
type
is wrong here because the rdf:type of a node is denotedisA
:Bug 6 (new) duplication
Unnecessary duplication:
"@container": "@set"
is redundant because that's the defaultepcis:
andcbv:
prefixes are repeated many times but better be defined just once at top level"@protected": true, "@version": 1.1
are repeated many times but better be defined just once at top levelBug 7 (fixed)
This is wrong:
Should resolve to
epcis:bizTransactionList
Bug 8 (new) leak
The BTT enumeration is outside of the bizTransactionType field (it is one level higher):
The problem is that these bare word definitions will leak into any custom fields in the enclosing field
bizTransactionList
. Try https://tinyurl.com/73e7c8wj, which shows 3 problems:cbv:BTT-bol
to a custom prop due to wrong nesting (should beex:bol
)cbv:foo
to the cbv: namespace; even the JSON Schema can't prevent this<random default namespace>/foo
, which is no better thancbv:BTT-foo
Bug 8a (new) leak
Same problem as 8:
Bug 8b (new) leak
Same problem as 8 (appears twice):
Bug 9 (fixed)
We don't use
xsd:anyURI
but real URLs, see #206. So these:Should be changed to
"@type":"@id"
Bug 9a (new)
@id
aliasThis is wrong, in particular
"@id": "@id"
doesn't mean anything.Change to
Bug 10 (fixed)
These terms resolve to wrong prop names (copy-paste error)
Bug 11 (fixed)
This doesn't cast eg
Temperature
intogs1:MT-Temperature
but should. I think you need to add"@vocab":"gs1:MT-"
but please check.Bug 12 (fixed)
This doesn't cast eg
X
tocbv:Comp-X
. You also need to declare it to be@id
:Bug 12a (fixed)
epcis-context-simple.jsonld:
component
now resolves tocbv:Comp-
notcbv:COMP-
(WithSensorData/SensorDataExample10.ttl)Bug 13 (fixed)
This lacks a datatype:
Improvement 14 (fixed)
As per latest decision, these two terms should be mapped to the same RDF prop (allowing reuse of
SourceOrDestination
nodes).Change
To:
Bug 15 (fixed)
correctiveEventIDs
produces string not URIBug 16 (canceled)
Example_9.8.1-MasterData.ttl and Example_9.8.1-MasterData-complying-with-schema.ttl produce no useful data:
I think the reason is that you removed the
@vocab
declaration, sovocabularyList
and deeper are not resolved.9-Dec-2021: master data is not carried in JSON
Bug 17 (fixed)
prop
epcis:PersistentDisposition
is wrong (should start with lowerCase)Bug 18 (fixed)
Wrong prop (copy-paste error):
As a result,
epcis:readPoint
is missing in all examplesBug 19 (fixed)
Wrong prop, should be
epcis:bizTransactionList
:Bug 20 (fixed)
This in
sensorReport
is wrong, should beepcis:measurementType
Bug 21 (fixed) enumerate barewords
Bad IRI: <file://C:/Humidity> Code: 58/PROHIBITED_COMPONENT_PRESENT in PORT: A component that is prohibited by the scheme is present.
sensorReport.type
:Humidity
should be cast togs1:Humidity
(notgs1:MT-Humidity
) as per latest WG decisionBad IRI: <file://C:/completeness_inferred> Code: 58/PROHIBITED_COMPONENT_PRESENT in PORT: A component that is prohibited by the scheme is present.
PersistenDisposition.{set,unset}
should be cast tocbv:Disp-
sensorReport.exception
(egALARM_CONDITION
) should be cast togs1:
as per latest WG decisionBad IRI: <file://C:/incorrect-data> Code: 58/PROHIBITED_COMPONENT_PRESENT in PORT: A component that is prohibited by the scheme is present.
ErrorDeclaration.reason
should be cast tocbv:ERT-
(not sure about the exact prefix)Bug 22 (fixed) missing bizStep and disposition values
Bad IRI: <file://C:/sensor_reporting> Code: 58/PROHIBITED_COMPONENT_PRESENT in PORT: A component that is prohibited by the scheme is present.
sensor_reporting
is missing from thebizStep
enumeration.WithSensorData/SensorDataExample11.jsonld
Bad IRI: <file://C:/needs_replacement> Code: 58/PROHIBITED_COMPONENT_PRESENT in PORT: A component that is prohibited by the scheme is present.
needs_replacement
is missing from thedisposition
enumeration@jmcanterafonseca-iota @CraigRe @RalphTro @mgh128 This is clear proof that the "enumerate all barewords" approach is not only unnecessary, but also brittle and error-prone.
Bug 23 (canceled) Missing Class
"isA":"SensorElement"
(I didn't make this!)Bad IRI: <file://C:/SensorElement> Code: 58/PROHIBITED_COMPONENT_PRESENT in PORT: A component that is prohibited by the scheme is present.
@vocab":"epcis:"
and this particular class is not enumerated (only the Event subclasses are enumerated)9-Dec-2021:
isA
removed from exampleEnhancement 24 (new) SBDH
Example_9.6.1-ObjectEvent-with-pseudo-SBDH-headers.ttl
is misisng the following fields because they are not in context. Maybe they are unofficial/experimental?Bug 25 (fixed) gs1 namespace
ALARM_CONDITION is mapped to
<https://ns.gs1.org/voc/ALARM_CONDITION>
but the correct namespace doesn't have "ns"Bug 26 (new) cbvmda namespace
cbvmda:
is not defined so it results in URLs like<cbvmda:countryOfExport>
(WithFullCombinationOfFields/object_event_all_possible_fields). As decided in discussion about the openepcis tool, we should define that namespace.