gs1 / EPCIS

Draft files being shared for EPCIS 2.0 development
Other
20 stars 7 forks source link

EPC and Location URL format - Sections 8.1.3-8.5 #180

Closed aopel closed 3 years ago

aopel commented 3 years ago

In 8.1.3-8.5, EPC URLs are defined as http://[Subdomain.]Domain/**/obj/Objid (Example: http://epcis.thaiunion/**/obj/BT-28395)

mgh128 commented 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.

CraigRe commented 3 years ago

Added clarifying language and examples for usage of HTTP/HTTPs to § 8 of CBV.