Closed aopel closed 3 years ago
Thanks for asking about this
According to CBV v1.2, within the context of http://[Subdomain.]Domain/**/obj/Objid an Objid is a segment-nz as defined in RFC3986, which means 1 or more pchar, which means 1 or more of: ALPHA / DIGIT / "-" / "." / "_" / "~" / "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" / ":" / "@" or a percent-encoded character (%hh)
Note that forward slash is not included within the pchar characters - so it's strictly only one URI path component following the /obj/ in this http URI example. I think we're permitting http:// or https:// in CBV 2.0
According to CBV v1.2, ** means "any number of additional path components may be included between the authority component [domain name / hostname] and the obj component, in order to provide flexibility for domain owners to administer their namespace."
http://[Subdomain.]Domain/**/loc/Locid (Example: http://epcis.thaiunion/some/extra/path/info/loc/92763987465) is used for location identifiers, not product identifiers.
http://[Subdomain.]Domain/**/obj/Locid (Example: http://epcis.thaiunion/some/extra/path/info/obj/92763987465) is used for product identifiers, not location identifiers.
Although EPCIS/CBV v2.0 recommend the use of GS1 identifiers (either as EPC URNs or constrained GS1 Digital Link UI equivalents (see recent discussions about 'Option Y' etc.), EPCIS / CBV 2.0 permit the use of the additional URN-based HTTP-based identifiers permitted from CBV v1.2. The constrained subset of GS1 Digital Link URIs have a 1:1 correspondence with the GS1 Application Identifiers in the corresponding EPC scheme and allowing arbitrary domain name / hostname with arbitrary subdomain as well as optional arbitrary path information before the final two or four URI path components that correspond to the primary GS1 identification key and an associated key qualifier, e.g. before the /00/{sscc} or before the /01/{gtin14}/21/{ser}
I hope that we have not lost any of the details we previously had in CBV v1.2 but I'm tagging @CraigRe so he can check that we haven't lost anything important, since he's the lead editor on the CBV v2.0 draft. The fact that you're asking for better clarification about the meaning of ** and Objid and Locid suggests that there's an opportunity to improve on the explanation from CBV v1.2 and state in plain English, with practical examples and an explicitly enumerated character set, exactly what is expected here and how to construct these. The previous editor of CBV may have preferred a terser explanation that simply references components of RFC3986, perhaps to favour use of GS1 identifiers rather than these URN-based or HTTP-based alternatives for non-GS1 identifiers.
Added clarifying language and examples for usage of HTTP/HTTPs to § 8 of CBV.
In 8.1.3-8.5, EPC URLs are defined as http://[Subdomain.]Domain/**/obj/Objid (Example: http://epcis.thaiunion/**/obj/BT-28395)
“**” and “Objid” is not defined in CBV - Section 3.3 in RFC3986 doesn’t really answer what is supposed to go here. Can you elaborate or give an example of what this could look like for a non-GS1 lot item?
Does using a URL structure for EPCs change the “Type” at the header of the product and location master data? What if both URLs and URNs are used? Can both URLs and URNs be used in the same output?
Where is the item reference in this URL? How do we know what product it is if it only has the location number as the Objid? Since Objid is not defined, I might be missing something. URLs for locations are defined as http://[Subdomain.]Domain/**/loc/Locid (Example: http://epcis.thaiunion/**/loc/92763987465)
“**” not defined - Section 3.3 in RFC3986 doesn’t really answer what is supposed to go here
Should this be the structure for readpoint and bizlocation as well as location in master data? Or can URNs and URLs both be used throughout the outputted JSON interchangeably (ex: for bizstep/disposition, master data attributes, etc.).