Standard

Transcript

1 GS1 Web URI Structure Standard enabling consistent representation of GS1 identification keys within web addresses to link to online information and services Release 1.0 , Ratified , Aug 2018

2 GS1 Web URI Structure Standard Document Summary Document Item Current Value GS1 Web URI Structure Document Name Standard Document Date Aug 2018 Document Version 1.0 Document Issue Ratified Document Status enabling consistent representation of GS1 identification keys within web Document Description addresses to link to online informatio n and services Contributors Name Organis ation EVRYTHNG Dominique Guinard (Chair) Wal -Mart Stores, Inc. Seán Lightholder (Chair) mobiLead Laurent Tonnelier (Chair) / serviceTag Hirokazu Nagai Japan Pallet Rental Corporation Hershey Company (The) Deborah Arcoleo Mead Westvaco Stephen Brown NXP Semiconductors Henk Dannenberg Nestle Vera Feuerstein Brian Newby Unilever UK Mandeep Sodhi Nestle John Terwilliger Abbott Laboratories Inc. Julie Vargas Avery Dennison RFID Evan Bacchus Costco Wholesale Yolande Diaz Carrefour Jonas Elander Axfood Sverige AB H&M Max Engström Sylvia Rubio Alegren ICA AB C & A SCS Hans Peter Scheidt Joachim Wilkens C & A SCS Marc Blanchet Viagenie Philip Allgaier bpcompass GmbH Dalibor Biscevic Business Technologies Ltd Patrick Chanez INEXTO SA SQUARE / TINTAMAR Roland Donzelle Anthony Graignic YESITIS Milecastle Media Limited Mark Harrison Barcode Graphics Inc Canada John Herzig Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 2 of 54

3 GS1 Web URI Structure Standard ation Name Organis Andr‚ Machado TrustaTAG Zbigniew Sagan Advanced Track and Trace Kim Simonalle Qliktag Software (formally Zeebric LLC) TraceLink Elizabeth Waldorf George Wright IV Product Identification & Processing Systems Ilteris Oney ecomes GS1 Japan Koji Asano GS1 Italy Andrea Ausili GS1 France Xavier Barras Mats Bjorkqvist GS1 Sweden Jonas Buskenfried GS1 Sweden Emanuela Casalini GS1 Italy GS1 Sweden Karolin Catela Madalina Cernat GS1 Romania Anthony Chan GS1 Hong Kong GS1 Belgium & Luxembourg Nicolas Collignon Luiz Costa GS1 Brazil Benjamin Couty GS1 France GS1 Brazil Viveiros Leonardo de Kevin Dean GS1 Canada Ferran Domenech Fuste GS1 Spain Xiaowen Dong GS1 China Dorothee Doswald -Kuhlmann GS1 Switzerland Vanessa Giulieri GS1 Italy Heinz Graf GS1 Switzerland Rami Habbal GS1 UAE Gary Hartley GS1 New Zealand GS1 Japan Hideki Ichihara Yoshihiko Iwasaki GS1 Japan GS1 UK Ricky Jones Sang Ik Jung GS1 Korea Kimmo Keravuori GS1 Finland GS1 Japan Kazuna Kimura GS1 Argentina Boris Krcelic GS1 Germany Ilka Machemer Noriyuki Mama GS1 Japan Roberto Matsubayashi GS1 Brazil -Sauter GS1 Switzerland Daniel Mueller GS1 South Africa Prince Namane GS1 Japan Mori Naoko Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 3 of 54

4 GS1 Web URI Structure Standard Name Organis ation Daisuke Negishi GS1 Japan GS1 Sweden Staffan Olsson GS1 Switzerland Michel Ottiker Sebastián Perazzo GS1 Argentina Bijoy Peter GS1 India GS1 Netherlands Sarina Pielaat GS1 UK Neil Piper GS1 UK Paul Reid Alexandre Rieucau GS1 France Nick Rusman GS1 Netherlands Roxana Saravia Bulmini GS1 Argentina GS1 Australia Sue Schmid GS1 Austria GmbH Eugen Sehorz Xiaojing Shao GS1 China Australia GS1 Sean Sloan Andrew Steele GS1 Australia GS1 China Xia Tao GS1 Germany Ralph Troeger Frits van den Bos GS1 Netherlands Rocio Vizcarra GS1 Argentina Amber Walls GS1 US Qian Wang GS1 France Shu Wang GS1 China Yi Wang GS1 China Stephan Wijnker GS1 Australia Carrie Wilkie GS1 US GS1 China Ruoyun Yan Yuwen Zhang GS1 China GS1 Global Office Peter Alvarez GS1 Global Office Dipan Anarkat Phil Archer GS1 Global Office Henri Barthel GS1 Global Office Robert Beideman GS1 Global Office GS1 Global Office Chuck Biss GS1 Global Office Scott Gray Eric Kauz GS1 Global Office GS1 Global Office Sean Lockhead Jeanette McVeigh GS1 Global Office Markus Mueller GS1 Global Office Greg Rowe GS1 Global Office Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 4 of 54

5 GS1 Web URI Structure Standard ation Organis Name Kevin Stark GS1 Global Office Garry Thaniel GS1 Global Office GS1 Global Office Elena Tomanovich Log of Changes Summary of Change Date of Change Changed By Release 1.0 , Dominique Aug 2018 Phil Archer developed on WR Initial release 000343 17- , Guinard , Mark Harrison Marie Petre & Greg Rowe Disclaimer ® GS1 , under its IP Policy, seeks to avoid uncertainty regarding intellectual property claims by requiring the participants in to agree to grant to G S1 members a royalty -free licence or a GS1 Web URI Standard the Work Group that developed this e to Necessary Claims, as that term is defined in the GS1 IP Policy. Furthermore, attention is drawn to the RAND licenc possibility that an implementation of one or more features of this Standard may be the subject of a patent or other intellectual property r ight that does not involve a Necessary Claim. Any such patent or other intellectual property ri ght is r, the agreement to grant licenc not subject to the licenc ing obligations of GS1. Moreove es provided under the GS1 IP Policy any claims of third parties who were not participants in the Work Group. does not include IP rights and sation developing an implementation designed to be in conformance with this Accordingly, GS1 recommends that any organi the should determine whether there are any patents that ma Standard y encompass a specific implementation that e under a patent or other intellectual and whether a licenc organis ation is developing in compliance with the Standard ing should be made in vi ew of the details of the specific termination of a need for licenc property right is needed. Such a de ation in consultation with their own patent counsel. em designed by the organis syst THIS DOCUMENT IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF RTICULAR PURPOSE, OR ANY WARRANTY OTHER WISE ARISING MERCHANTABILITY, NONINFRING EMENT, FITNESS FOR PA document, OUT OF THIS SPECIFICATION. GS1 disclaims all liability for any damages arising from use or misuse of this ity for infringement of any whether special, indirect, consequential, or compensatory damages, and including liabil intellectual property rights, relating to use of information in or reliance upon this document. GS1 retains the right to make changes to this document at any time, without notice. GS1 makes no warranty for the use of document and assumes no responsibility for any errors which may appear in the document, nor does it make a this commitment to update the information contained herein. GS1 and the GS1 logo are registered trademarks of GS1 AISBL. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 5 of 54

6 GS1 Web URI Structure Standard Table of Contents Executive overview ... ... ... 8 1 Foreword ... ... ... ... 8 2 3 Introduction ... ... ... . 9 3.1 s a URI? ... 9 What i Why Linked Data? ... 12 3.2 3.3 Use of GS1 Web URIs with various kinds of data carriers ... 12 4 Working assumptions and technical design principles ... 14 ... 14 4.1 Do no harm to the existing GS1 System Architecture and existing identification practices 4.2 ... 15 Use of barcodes containing GS1 Web URI and GS1 barcodes 4.3 A note on terminology ... 16 4.4 Security and privacy of information ... 17 4.5 Contextual information ... 17 Access to traceability data by various supply chain stakeholders ... 17 4.6 4.7 Supporting machine -to- machine communication and expressi ng facts and relationships between things and about things 18 ... 4.8 Explicit link to the GS1 identification key(s) ... 20 4.9 Validation principles for GS1 Web URIs ... 20 5 GS1 Web URI s yntax ... ... ... 20 ... 20 5.1 Formal specification Character sets 1 5.1. 20 ... 5.1.2 22 Primary identification keys ... ... 22 5.1.3 Key qualifiers Primary key formats ... 23 5.1.4 ... 24 Key qualifier formats 5.1.5 ... Primary identifier and value concatenation 5.1.6 24 5.1.7 Key qualifier concatenation ... 24 5.1.8 Path element order ... 25 5.1. 9 Data attributes ... 25 5.1.10 Constructing the URI ... 33 5.2 Canonical GS1 Web URIs ... 34 An explanation of Web URI syntax and options for extensions ... 35 5.3 5.4 ... 36 Examples of GS1 Web URIs 5.4.1 GTIN ... 36 5.4.2 GTIN + CPV ... 36 5.4.3 GTIN + Batch/Lot ... 36 GTIN + Serial Number (also known as SGTIN) ... 37 5.4.4 5.4.5 GTIN + Batch/Lot + Serial Number + Expiry Date ... 37 5.4.6 ... 37 GTIN + Net Weight 5.4.7 GTIN + Typed Link ... 38 5.4. 8 GTIN + Batch/Lot + Serial Number + Expiry Date + Typed Link ... 38 5.4.9 SSCC ... 39 ... 39 SSCC with specified Content, Count and Batch/Lot 5.4.10 39 ... Physical location represented by a GLN or GLN + GLN Extension 5.4.11 Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 6 of 54

7 GS1 Web URI Structure Standard ... ... ... 40 6 Resolving GS1 Web URIs Resolving Protocol 6.1 40 ... 6.2 Extraction step ... 41 41 ... step dation 6.3 Vali 6.3.1 Check the length ... 42 Check the character set ... 42 6.3.2 6.3.3 Check the GS1 check digit (where appropriate) ... 42 6.3.4 Check the internal database of identifiers supported by this resolver ... 43 step 44 ... 6.4 Resolution 44 ... A note on HTTP response codes: 6.4.1 When a resolver has only partial information ... 44 6.4.2 ... 6.5 Examples of use 44 6.5.1 Using the provided domain to call the resolver ... 44 Replacing the domain to call an alternative resolver 45 ... 6.5.2 6.5.3 46 ... Retailer operates their own resolver Smartphone app for nutrition / dietary / allerge n information ... 47 6.5.4 6.5.5 Product comparison apps ... 48 48 7 Glossary ... ... ... ... 8 .. 52 ... ... ... References 54 ... ... ... Intellectual property A Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 7 of 54

8 GS1 Web URI Structure Standard verview Executive o 1 cation key s have GS1 has been s trong in product identification for many years - but GS1 identifi been designed to serve use cases that are primarily driven by the needs of supply chains (and traditionally are most relevant from manufacturer to checkout). In the 21st century, that’s not s cation key , it will be possible to represent GS1 identifi enough. As a result of this standard consistently within Web addresses (Web URIs) as well as within the barcode s containing GS1 Web , such that a single identification approach will be able to support both product identification for URI supply chain applications and a link to online material. It’s this dual functionality and enormous flexibility that is currently not possible when, for example, Brand Owners embed an unstructured page address in a QR Code®. Web ECC 200, in The use of 2D barcodes like ISO/IEC 18004 QR Code® or ISO/IEC 16022 DataMatrix addition to 1D barcodes on consumer packs, is a core driver of this work. Consumers routinely seek ally via mobile, and manufacturers may respond to this product information on the Web, especi demand by adding a second machine readable barcode to the product. For retail products, this is 1 usually a QR Code® that encodes the address of a Web page from which product and marketing -profile example of this, where Web addresses (Web information is available. SmartLabel™ is a high ) are encoded into QR Codes® today with little or no standardised structure. However, we also URIs t the transformation of the need publicly available standard references or services that could suppor GS1 data encoded in the GS1 1D/2D barcode into this DataMatrix . GS1 syntax URI Web standard without a URI/U RL encoded in the barcode in regulated healthcare is the principle data carrier and is Digital Bridge Service concept. another driver for this standard, in order to support the GS1 The scope of the work accommodates all Class 1 and Class 2 GS1 Keys and Key qualifiers (e.g., serial number, batch number, consumer product variant) and other relevant attributes as the same technologies are equally applicable to SSCCs, GLNs, GIAIs, GRAIs, GSRNs etc. While the syntax can support Class 2 Keys, it is up to the Class 2 Issuing Agencies to determine its fit for their use. For suing Agencies to see where alignment Class 3 GS1 Keys, GS1 welcomes bilateral discussions with Is is possible. This GS1 standard references a number of third- party standards from the Internet Engineering Task Force (IETF) and the World Wide Web Consortium (W3C). Fo reword 2 GS1 defines a wide range of identifiers that underpin the supply chain and retail industry across the world. This document assumes the reader is familiar with these and the concept of GS1 Application eys] If not, please see information on [GS1 identification k Identifiers. and the for [GENSPECS] further background. Readers who are already very familiar with the terms URI, URN and URL, and 3.1 the differences between these, can skip section . This work has been motivated by a number of trends. For example: the desire among retailers to move to 2D barcodes that can carry more information than just the GTIN; the problems of multiple gests a need for a single but barcodes causing scanning errors through conflicts which sug multipurpose barcode; the growing expectation among consumers that more information is available online about the products they’re considering buying; the brand owner concept of the pack as a media channel linking to multimedia experiences, and more. Section 3.2 -level overview of why Web technologies are appropriate to meet these provides a high o work fully within the existing GS1 system, it must be possible to needs. However, for this t translate between GS1 Web URIs and GS1 element strings such that the two are completely interchangeable. Achieving that requires the level of precision in the structure of a GS1 Web URI that this document provides. 1 ®, not GS1 QR ISO / IEC 18004 QR Code ’ refers to the widely used Unless otherwise specified, the term ‘QR Code® ‘QR Code’ is a registered trademark of Denso Wave, a subsidiary of Denso Corporation. Codes. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 8 of 54

9 GS1 Web URI Structure Standard Introduction 3 What is a URI? 3.1 This subsection provides some clarification about what a Uniform Resource Identifier (URI) is, how URIs relate to Uniform Resource Names (URNs) and Uniform Resource Locators (URLs), as well as g an explanation of the main structural elements within a Web URI. providin -1 Figure 3 shows a Venn diagram in which we see that Uniform Resource Identifier is th e broad term that includes Uniform Resource Names (URNs) and Uniform Resource Locators (URLs) as well etc as URIs with various protocols including http or https, ftp, mailto, tel . This means that every URL and every URN is also a URI, since URI is the broader umbrella term. Furthermore, Internationalized Resource Identifiers (IRIs) are an even broader category that support characters from the Universal Character Set / Unicode, whereas URIs only support the ASCII character set. IRIs are defined in [IRIs]. 3-1 Figure URNs and URLs are also URIs -2 Figure 3 shows another Venn diagram. This time, it shows two capabilities: 1. The capability to easily resolve to resources (e.g. information) on the Web. The capability to provide a globally unambiguous 2. name for anything, whether or not the thing exists only on the Web or in the real world. The first capability is usually associated with URLs and Web addresses. The second capability is usually associated with URNs. Web URIs exist at the intersection of these two capabilities; in terms of their syntax, they look like and they can be configured to behave URLs because they specify http or https as their protocol - tp / https Web protocol. However, they are like URLs in terms of supporting Web requests via the ht also a perfectly valid way of assigning a globally unambiguous name for anything, whether in the real world or online. Note that 'globally unambiguous' does not mean globally unique; two different ve distinct URIs in any situation where we want to be able to distinguish between things should ha them. However, there may be many URIs that all refer to the same thing, even within the same URI namespace or domain name. It is also possible to use Linked Data [Linked Data] to make an assertion between two URIs to formally express that they both refer to the same thing, even if the URIs are different strings. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 9 of 54

10 GS1 Web URI Structure Standard r something, as well as providing an A Web URI can act both as a globally unambiguous name fo 3-2 Figure easy way to retrieve Web resources (e.g. information) relating to the identified thing provides a brief overview of the internal structural elements of a Web URI: Figure 3 -3 Internal structure of a Web URI 3-3 Figure shows the structural elements of a Web URI. The scheme indicates the protocol and (at -3 Figure 3 the time of writing) is always http:// or https:// (use of HTTPS is recommended as best practice). name or a subdomain of such a registered The hostname is typically a registered Internet domain domain name. Following the domain name, the remainder of the Web URI is case sensitive. The URI path information consists of a number of strings separated by the forward slash character. Although Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 10 of 54

11 GS1 Web URI Structure Standard 2 to ing, it is often used by the Linked Data community and in REST interfaces this is just a str represent a collection of resources organised in a conceptually hierarchical way, with the broadest (most general, least specific) category appearing towards the left of the URI path information and with the narrowest (most specific) category appearing towards the right of the URI path information. This design pattern provides a hint to humans that related Web URIs may exist and can be formed by successively truncating the Web URI path information from right to left, removing each successive segment preceded by its forward slash ( "/" ) character. These related Web URIs may provide information about an object at a broader, more general, less specific granularity. However, this is only a legible hint to humans. Computer software would typically treat the entire URI (at least up to the fragment identifier) as an opaque indivisible string and would not attempt such truncation. Instead, they will look for explicit links to related URIs, ideally expressed with semantic annotation, using Linked Data properties. For example, we might formally express that: https://example.com/gtin/{gtin}/ser/{ser} or https://example.com/gtin/{gtin}/lot/{lot}/ser/{ser} dcterms:isPartOf https://example.com/gtin/{gtin}/lot/{lot} or equivalently, https://example.com/01/{gtin}/21/{ser} or https://example.com/01/{gtin}/10/{lot}/21/{ser} dcterms:isPartOf https://example.com/01/{gtin}/10/{lot} (These examples follow the convention used in [RFC 6570]. The places where the values of variables should be inserted are written in braces, so, for example, {gtin} means "insert gtin here") As explained in [RFC 2606] and [RFC 6761], the domains example.com, example.org and level domain names reserved by the Internet Assigned Numbers Authority example.net are second- These are used in a number of examples throughout this standard (IANA) for use in documentation. level domain name. and should be understood as a placeholder for any registered second- It should be noted that a single script or Web Resource may provide information or services for Web URIs with different numbers of levels of path information and that care should be taken when using se most Web clients will treat such a relative links for images, scripts, stylesheets etc., becau hierarchical URI path as if the Web resource were literally nested within several parent folders. The query string enables multiple key=value pairs to be sent to a Web resource. The URI query string appears after the U RI path information and consists of everything between the "?" at the end of the path information and the end of the URI or the "#" symbol indicating the start of the ng & or ; fragment identifier. Within the URI query string, key=value pairs may be concatenated usi and it should be noted that each key should not appear more than once; the last declared value for a key within the query string is the final value assigned to that key. if present) and preceded The URI fragment identifier is optional and appears after the query string ( by the "#" character. The URI fragment identifier is typically used to provide a link to an internal subsection of an information resource. The Linked Data community do make use of URIs with ent identifier is not useful for passing key=value pairs. fragment identifiers, although the fragm sent to the server but are handled entirely within the Importantly, fragment identifiers are not client. - iers Web URIs provide essentially two options for expressing the values of GS1 Application Identif either within the URI path information or within the URI query string. The URI path information is the most appropriate place for expressing a GS1 identification key and an ordered set of optional identification key to form a compound key that qualifiers that are used in conjunction with the GS1 is used to retrieve information about something at a finer level of granularity (e.g. traceability data about an SGTIN, lot- level master data). The query string is appropriate for data attributes of the ified resource such as expiry date, weight etc., as well as being a natural extension point for ident any additional arbitrary key=value pairs that cannot be expressed using GS1 Application Identifiers; for example, the query string could include a key=value pai r to indicate a specific stakeholder role Any key=value pairs used for or a specific action or activity or type of service to be accessed. extension data shall not conflict with keys used for GS1 Application Identifiers either in terms of 2 https://en.wikipedia.org/wiki/Representational_state_transfer See Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 11 of 54

12 GS1 Web URI Structure Standard -numeric value NOR any of the ax; a key for extension data shall not use an all semantics or synt alphabetic short names (e.g. 'lot', 'exp', 'expdt') that are defined as alternatives to the numeric GS1 ring, key=value pairs should Application Identifiers for data attributes appearing in the URI query st not be used to express a value (such as a value for net weight) if that value can be expressed using It should be noted that no key=value pair should be GS1 Application Identifiers as data attributes. If a key is repeated, the last defined value for in the URI query string. repeated with the same key Conformance test scripts should be that key takes precedence over any previously defined value. pairs for developed for implementations of GS1 Web URI and should test for repeats of key=value the same key, as well as taking into account conversion of any alphabetic key names (specifically 'lot', 'exp' and 'expdt') into their corresponding numeric keys ('10','17' and '7003' respectively) to check that no value is assigned to a key of a key=value pair more than once and that for example 'exp' and '17' are treated as the same key for the purposes of such tests. Section 5.4.7 and 5.4.8 provide some examples of use of additional key=value pairs within the URI query string. Why Linked Data? 3.2 The previous section indicates that Linked Data [Linked Data] is an appropriate technology to satisfy the kind of industries typically served by GS1. It is reasonable to ask wh y. Put simply, Linked Data uses the concepts and technologies of the Web to model the real world. It and adds semantics, that is one thing pointing to another – uses the familiar idea of a hyperlink – meaning, to those links. So, for example, an item identified by a GTIN might be linked to its assembly instructions, its nutritional or food safety information; a location identified by a GLN might be linked to a related entry in a geospatial data system, a GSRN -P to contact information about the relevant orga . The first fax machine only Network Effect nisation and so on. These links create a became useful when the second one went online; both became more valuable with the advent of the third and so on. Each node in the network is connected via links that can be understood and -dimensional model, known as a knowledge graph. The best processed by computers into a multi known example of a knowledge graph is the information you often see to the right of search results: d for, drawn from multiple sources across the Web. tabulated facts about whatever it is you searche A version of Linked Data is the technology behind that. 4.7 Section has more to say on the topic of Linked Data. 3.3 Use of GS1 Web URIs with various kinds of data carriers Key GS1 Web URI provides a new syntax for expressing GS1 I dentifier s, Key qualifiers and data attributes in a format that can be used on the Web in an intuitive manner (via a straightforward Web request) to enable consumers and others to directly access relevant information and services about products, assets, locations, etc. GS1 Web URI can be obtained by translation of element string s in existing GS1 data carriers (including 1D and 2D barcodes, EPC RFID tags etc.) and can also be encoded natively in any other data carrier that can support the encoding of a web address or URL. This means that additional data carriers such as QR Codes® and NFC tags will also b e able to include GS1 identification key s and function as though they have a URL that links to relevant information. hat simply encodes a GTIN, typically expressed barcode t n EAN Many products currently carry a /UPC can as a GTIN- 8, GTIN -12 (UPC) or GTIN- 13 (EAN). In such situations, a reference GS1 Web URI always be constructed by simply appending the GTIN value to https://id.gs1.org/gtin/ , as shown in ection the examples in s 5.4.1 . mandatory. A GS1 Web URI may be constructed not : use of the id.gs1.org domain is Note under any domain name. Those that do use the id.gs1.org domain are referred to as reference GS1 Web URIs. See section for more. 4.3 From identification at GTIN granularity, level product master data in human - we can access class- -readable eb page for a specific product) and in a machine readable format (e.g. as a product W ), [GS1Voc] GS1 Web vocabulary format (e.g. using structured data based on schema.org and the which enables smartphones to access "just the data" and to provide an appropriate display based on Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 12 of 54

13 GS1 Web URI Structure Standard specific data items, such as alerting if a product contains a problematic allergen or has a high fat content. - , some objects carry 2 for a GTIN identifier Moving beyond the current EAN/UPC barcode dimensional GS1 barcodes or matrix codes, such as GS1 Data Matrix or GS1 QR Code or linear In some barcodes with an optional 2 -dimensional component, as is the case for GS1 DataBar. together with other information such as sectors, requirements recommend the use of GTIN Batch/Lot or Serial Number. n the healthcare / pharmaceutical sector, it is typical for For example, i GTIN, Batch/Lot, Serial Number and such GS1 DataMatrix codes to encode four essential elements: Expiry Date. With out making any changes to current practices for marking identifiers on products, it is possible to translate such information into the GS1 Web URI syntax, to enable access to information and services that use this finer granularity of identification to provide information such as traceability and provenance information or to support services such as warranty registration for a specific instance of a product. In this scenario, from a GS1 DataMatrix symbol carrying element strings, a reference GS1 Web URI can be constructed by simply inserting the actual values of the GTIN, Batch/Lot, Serial Number and Expiry Date into a URI template that looks like: https://id.gs1.org/gtin/{gtin}/lot/{lot}/ser/{ser}?exp={exp} , {lot} , {gtin} where {exp} are actual values for GTIN, Batch/Lot, Serial Number and {ser} and -encoded when used within a URI Note that some symbol characters need to be percent Expiry Date. 5.1.1 - see section for further details. s read from GS1 barcodes into a GS1 Web URI syntax, it is By translation of the element string possible to access information and services on the Web that are defined at GTIN granularity (as in the previous sce nario ) and additionally, to access information and services on the Web that are defined at finer granularity, such as traceability / provenance data that is defined at GTIN+ batch/lot or GTIN+ or warranty registration that is define serial number granularity d at GTIN+serial number . granularity / IEC ome brand owners have already begun adding ISO In retail, s 18004 QR codes containing URLs to their products, to enable consumers to link to promotional/marketing pages, competitions etc. SmartLabel also takes a similar approach, although it does not currently include GS1 identification By encoding the GS1 Web URI directly within a QR Code keys within the URI encoded in a QR code. or NFC tag, just as if it were any other URL, we can link it to information and services as well as retaining the ability to extract the GS1 identification key s. This means that a GS1 Web URI encoded within a QR code or NFC tag can either be used by consumers to access product information, also be used in the supply chain promotional/marketing pages, competitions etc. and could in future it still encodes the GS1 identification key and at point of sale because s within the GS1 Web URI Translation mechanisms will support translation between element string syntax. s and GS1 Web URI that currently, neither NFC tags nor ISO/IEC 18004 QR Codes are approved as GS1 Note syntax. data carriers for use within the supply chain or for point of sale applications. Table 3- 1 provides a summary of the discussion above as it relates to objects identified by GTIN or GTIN plus key qualifiers. keys. Similar considerations apply to other GS1 identification Table Comparison of capabilities of various data carriers 3-1 © 2018 GS1 1.0 , Ratified , Aug 2018 Release AISBL Page 13 of 54

14 GS1 Web URI Structure Standard EAN/UPC barcode GS1 barcode e.g. Data carrier Data carrier barcode symbol Type of containing GTIN GS1 DataMatrix, GS1 containing containing a GS1 , GS1 QR DataBar proprietary URL Web URI Code or GS1 -128 (e.g. link to containing GTIN + marketing page) other GS1 Application Identifiers No - in some sectors Yes , if specified in Can it be used at point of Yes Yes (e.g. healthcare) sale and in the supply GS1 AIDC Application chain? Standards Does not work at point of sale or supply chain - by translation to element strings Yes. Yes Yes Yes Can it be scanned by - by consumer smartphones to - by translation to translation to link to information and GS1 Web URI Reference GS1 Web GS1 Web URI syntax syntax and use of services? and use of resolvers URIs are redirected to redirect to corresponding Web resolvers to redirect URIs specified by each brand owner. Yes Access to information and Either no access or Yes Yes -specific vendor services defined at GTIN granularity, e.g. class proprietary access -level product master data to information or services about the product Yes Yes No Either no access or Access to information and -specific vendor services defined at finer granularity (e.g. proprietary access traceability/provenance to information or data defined for a services about the GTIN+Lot/Batch or product, possibly at finer granularity GTIN+Serial), warranty registration for a specific than GTIN. product instance, etc. echnical d esign p Working a ssumptions and t 4 rinciples MSWG collected working assumptions as well as technical design In this section, the GS1 Web URI principles. 4.1 Do no harm to the existing GS1 System Architecture and existing identification practices The work on GS1 Web URI s is intended to bring additional benefits to more efficiently connect consumers with relevant information and services on the Web about products, locations, assets etc., while also opening up possibilities for additional uses in many industries such as retail and healthcare supply chain ir respective within the s, retailing points, hospitals, pharmacies and the broader area of patient safety . Although element strings already provide the capability to access - information at various levels of granularity (e.g. class -level master data accessed via GDSN, lot level traceability data accessed via EPCIS), there was previously no standardised way level or serial- to information and services on the Web. The GS1 Web to link every kind of GS1 identification key at UR I syntax defined in this standard provides the ability to express every GS1 identification key any level of granularity in a Web -native format that functions like a Web address or Web URI and master data but potentially can link to online information on the Web. Such information includes the use of dynamic data such as traceability information includes accessed also via . It can be from , element strings read and a resolver service for Reference GS1 Web URIs translation functions n be translated into the GS1 Web URI syntax an existing GS1 barcode ca , then used to access 1.0 14 of 54 Page AISBL © 2018 GS1 , Aug 2018 , Ratified Release

15 GS1 Web URI Structure Standard information and services on the Web, using an existing straightforward mechanism, the HTTP / HTTPS Web protocol used to exchange data over the World Wide Web. 3.3 Section provided some examples of how GS1 Web URI can be used with various data carriers and how it can link to information and services related to identifiers at various levels of granularity, although it introduces no new mechanisms for the generation of such information. The Web URI shall do no harm to the existing GS1 Architecture, including current practices of encoding 1D/2D GS1 codes (e.g. a GS1 DataMatrix on a pharmaceutical product package encoding AIs 01,21,10,17) as well as operations in GS1 interface s tandards and data models, especially EPCIS and ALE. Some elements of the GS1 System (particularly EPCIS and ALE) make extensive use of the EPC URN syntax defined in the GS1 Tag Data Standard. There shall be no ambiguity and confusion in the ding 1D/2D codes or for capturing/querying for ALE/EPCIS messages, in order to market for enco eliminate data inconsistencies and integration issues; these could otherwise arise when joining visibility events captured by different stakeholders within a supply chain that u sed different registered domain names. Although EPC URNs are URIs, they are not Web URIs and they provide no straightforward intuitive way to link to information and services on the Web; if you type an EPC URN address bar not resolve to anything useful on the Web. , it will of a Web browser the into and GS1 barcodes containing GS1 Web URI 4.2 barcodes Use of on consumer trade items, but also logistics units, assets, The use of 2D barcodes is increasing for and more. patient safety locations, tems, packaging increasingly carries two barcodes: For consumer trade i GS1 barcode with GS1 Application Identifiers (or implied Application Identifiers (AI) as is the 1. case with EAN/UPC barcodes). s. -GS1 barcode with a URL, which is not backward compatible with GS1 identification key Non 2. This scenario makes consumer experiences inconsistent, eliminates the possible use of the non- GS1 barcode by all supply chain parties (as is the case with EAN/UPC), eliminates the possible use of a single barcode to support both supply chain and mobile applications. Use of GS1 identification key s barcode containing a GS1 Web URI in a can provide backward compatible functionality with the URLs used today while also providing for potential interoperability of supply chain and mobile applications, f or all trading partners, in the future. within the element string syntax) and a With the GS1 barcode (carrying GS1 identification keys GS1 Web URI within the barcode (carrying GS1 identification keys syntax) on consumer trade items, several assumptions apply for the solutions phase: 1. The use of GS1 Application Identifiers (whether explicit or implicit as is true of EAN/UPC) will packaging. This continue to be the mandatory, minimum requirement for all consumer product is aligned with the principle of "do no harm". 2. The use of GS1 identification keys within all barcodes on consumer packaging should gradually become the new norm. This is also aligned with the principle of "do no harm" as today’s situation makes clear (e.g., consumer confusion, drag on supply chain scanning, inability for ubiquitous use). 3. -existence of both syntaxes on consumer packaging means the industry would benefit The co from translation software (a translator) between them. The transla tion utility would allow: a. Mobile applications to use either syntax and simplify mobile scanning for consumers. Supply chain applications to use either syntax, therefore mitigating or reducing the b. encountering a barcode they performance drag on scanning systems (which are increasingly cannot process... today’s URL in a non -GS1 barcode). c. All trading partners and governments to leverage the GS1 Web URI barcode. GS1 Web URI syntax will have no effect on data carrier selections within GS1 application 4. standards. Fo r trade item packaging above the consumer packaging level, logistics units, assets, locations, and other entities, 2D use is also increasing. This impacts supply chain professionals (e.g., forklift Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 15 of 54

16 GS1 Web URI Structure Standard anning systems (e.g. conveyor mounted, operator s, store inventory control staff) and automated sc conveyor tunnel) in terms of imaging scanning, but based on continuing to use element string -based within 2D carriers s within a 2D data URI Web -facing applications, use of syntax . Unlike consumer is not trend That said, this does not ing in the same way above the consumer packaging level. carrier mean that it will not in the future, but the requirements within this document do not preclude its In the meantime, mec future application in a consistent and seamless manner. hanisms will be GS1 Web URI provided to permit translation of existing element strings into an equivalent reference by a suitable resolver syntax, which can be automatically redirected to relevant online information the additional benefits of GS1 Web URI for such objects to ’ thus supporting or ‘GS1 Digital Bridge, link to relevant information, without causing any disruption to existing practices for identifying and scanning such objects, i.e. continued use of element string s in existing GS1 barcodes. Independent of whether the translation capability were ever to become pervasive for either supply chain or mobile, the identification baseline is still established and the additional value for translation (detailed previously) will be enjoyed incrementally by th ose who implement it. If translator functions become pervasive... For supply chain application areas, then one barcode containing GS1 Web URI could support ■ supply chain and mobile ID. For mobile, then one GS1 barcode (containing element strings) could supp ort supply chain and ■ mobile ID. For both, then one GS1 barcode or one barcode containing a GS1 Web URI could support supply ■ chain and mobile ID. Until pervasive, it will remain important to orient consumers and supply chain they become which bar code to use for what purpose and to follow GS1 standards rules for professionals as to barcode placement. Also , it is important to remember that consumer trade items are scanned in distribution centres, warehouses, point of care, at home patient settings, field clinic s, etc. This means that the same principles will relate, even if on different timelines for these entities. In summary, the existence of a translator (point 3) does not ensure the pervasive use of translators, use of GS1 identification in either barcode provides hence the reason for point 1. However, the substantial benefits today and leaves open a future where one barcode "could" (if the translator were pervasively present) meet supply chain as well as mobile application requirements. For consumer packaging, if this were to occur, this would permit one barcode instead of two, therefore increasing supply chain scanning performance and making consumer experiences easier and more beneficial than today. If pervasive adoption of a translator does not occur, a ll the benefits that will -GS1 URL to a GS1 be realised without it will remain relevant and still justifies moving from a non Web URI syntax. A note on term inology 4.3 Discussion of encoding GS1 Web URIs within barcodes, QR Codes®, DataMatrix codes and more , quickly leads to confusion, especially when colloquial terminology is used to address a wider audience that may have specific meaning within a GS1 audience. Table 4-1 attempts to clear up this confusion. Table Examples of identifier formats and corresponding terminology 4-1 When encoded within Example When encoded within Identifier any barcode GS1 calls any barcode the public expressed as: this a ... calls this a... Element string (01)05000127163096 GS1 barcode 1D / 2D barcode 1D / containing barcode https://id.gs1.org/gtin/5000127163096 GS1 Reference 2D barcode GS1 Web URI Web URI on the id.gs1.org domain Release Page 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 16 of 54

17 GS1 Web URI Structure Standard When encoded within Identifier When encoded within Example expressed as: any barcode GS1 calls any barcode the public this a ... calls this a... http://example.com/gtin/5000127163096 GS1 Web URI 2D barcode 1D / barcode containing GS1 on any URI Web domain barcode according to -GS1 Web http://example.com/random/string Non 2D barcode URI the relevant ISO /IEC -GS1 standard or non barcode Security and privacy of information 4.4 Not all information on the Web is openly available to everyone. It is also possible to use a Web URI to link to information that requires a user or client to authenticate and where an authorisation decision on whether or not to provide access to the information depends on those authentication credentials, possibly in combination with other parameters. It is also possible for the same Web URI to provide different views or representations of information with different amounts of detail – and also depending on the specific access depending on whether a user or client authenticates rights of any specific authenticated user or client. This is similar to existing practices on the Web today where a Web page might provide anyone with an abstra ct or summary of a technical article, academic paper or standards document but require users to register or login in order to access the full document described in the abstract or summary. data that requires authentication Existing Web security technology will be used to restrict access to and authorisation of the client requesting the data. The HTTP protocol already provides response codes 401 "Unauthorized" and 407 "Proxy authentication required" to indicate that authorization is required. For further de tails on Web authentication, see [RFC 7235]. Contextual information 4.5 Contextual information enables a client to express a preferred data format, encoding, human language and character set for the information they would like to retrieve, so that the Web resource can consider that contextual information and attempt to provide information in the requested data format and human language, if they are supported, in order to provide the most appropriate information to each user. Contextual information can also include location information, in order to request or provide the user with information that is most relevant to a specific geographic location (typically their current location), such as the nearest retail store selling a specific product or the nearest provid er of a particular service. contextual information to be provided at the time of making a Existing Web protocols enable some Web request (for preferences about data format, human language, character set and data -grained location information is not transmitted by . For personal privacy reasons, fine encoding) in basis per request; the initial default when making an initial Web request but only via an opt- requests the client to allow location information to response may contain a script that subsequently shared be . The provision of contextual information about preferred data format and human language is known . This is used to indicate whether RFC 7231] as Content Negotiation, as described in section 3.4 of [ the server should retu rn a Web page (text/html) or data in a specified format' (e.g. application/json, text/xml, application/ld+json). Access to geolocation context information is specified in the W3C Geolocation API Recommendation [Geolocation API]. by various supply chain stakeholders Access to traceability data 4.6 for consumer Much interest in GS1 Web URI -facing mobile scanning is related to provision of more detailed information to consumers about the provenance of a product as well as the accreditations Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 17 of 54

18 GS1 Web URI Structure Standard and provision of transp arent factual information regarding its ingredients, components, the ethical and environmentally - -friendly /sustainable sourcing of these, as well as ethical and environmentally friendly processes involved in the manufacture of the product. Such information can vary between different instances of a product, whether identified at serial -level or batch -level and where there is variability in such information, it cannot be marked on packaging that is designed for all instances of ng mobile scanning and the use of a GS1 Web URI with a a product's GTIN. Consumer -faci sufficiently fine -grained identifier (potentially including indications of batch/lot and serial number) provides a mechanism to provide accurate fine -grained information to a consumer (or prospective consumer) at a level of detail beyond the information appearing on the product packaging. The purpose of this section of the document is to remind everyone that the brand owner will typically only be able to provide product provenance data for ingredients, components and processing that is upstream of the brand owner; the brand owner typically will not have access to downstream supply chain traceability data but the retailer may have access to such information and may be able to ubset of this to consumers, either while they browse within a store or provide a consumer -relevant s after they have purchased the product. Each party shipping or selling a product is expected to be able to provide some information on its upstream traceability, although typically they might not be entitled to have any downstream traceability information beyond their immediate 1 -down customer. This means that the Brand Owner typically will have access to upstream traceability information about the provenance of a product (and its ingredi ents, components, sourcing and production) up to the point where it is shipped from the manufacturer. The retailer is more likely to have access to upstream supply chain traceability information and in some regulated industries may be required (together wi th other intermediate stakeholders such as distributors) to prove an unbroken chain of custody or ownership back to the genuine manufacturer. for a product to a corresponding GS1 Web URI If the default behaviour is to redirect a reference rand Web URI specified by the B Owner may only be able to provide product Brand Owner, the provenance information that is upstream of the manufacturer and may not be able to provide supply chain tracking information because of its lack of privileges to downstream tracking information produced beyond its 1- down customer and the emergent nature of supply chain paths for mass- products that are built to stock, rather than custom built to order. unication and expressing facts and 4.7 Supporting machine -to -machine comm relationships between things and about things The World Wide Web is not only a collection of Web pages but also a huge decentralised database of kipedia page are (machine -readable) facts. For example, the facts and figures behind every Wi extracted and available via Wikidata and DBpedia. However, there are multiple sources of facts that are being embedded within Web pages using Linked Data technology (also known as Semantic Web inked Data] to make those facts available in a technology) using W3C Linked Data standards [L -interpretable format that can be processed automatically by software, search engines, machine smartphone apps etc., also using logical rules to derive additional facts and relationships. Of course, we need a l anguage for describing such relationships. One very popular vocabulary for doing so is -level collection of terms to describe products, places, schema.org, which provides a broad, high eb vocabulary people, things, organisations, music, events, etc. GS1 has developed a W [GS1Voc] that serves as an external extension to schema.org and allows products to be described in much richer detail, e.g. to provide detailed nutritional information, ingredients, details of product er product features and specifications. certifications, allergens, as well as oth Within schema.org, there are a number of properties that can be used to describe relationships between things. These include: , schema:isConsumableFor, schema:isRelatedTo, schema:isSimilarTo schema:isAccessoryOrSparePartFor e some further properties for expressing relationships Within the GS1 Web vocabulary we also defin between things. These include: gs1:dependentProprietaryProduct, gs1:equivalentProduct, gs1:replacedByProduct gs1:replacedProduct, gs1:primaryAlternateProduct, Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 18 of 54

19 GS1 Web URI Structure Standard In addition to the schema.org and GS1 Web vocabulary, a number of other foundational Linked Data vocabularies also provide terms for expressing high -level relationships between things. These include Dublin Core [DC] from which the following terms are particularly rele vant: dcterms:isPartOf, dcterms:hasPart Schema.org and the GS1 Web vocabulary [GS1Voc] provide many Linked Data terms to describe products in detail. At pre sent, most of these terms can be used to express product class- level master data defined on a per GTIN basis. In principle, the GS1 Web vocabulary can also be extended to support instance/lot master data, to express properties whose values are specific to a particular batch/lot or even serial number and potentially even to express consumer -facing summary information of a subset of critical tracking events from traceability data. This means that if a GS1 Web URI makes use of a GTIN in combination with key qu alifiers such as Batch/Lot identifier or Serial Number, we can provide data defined for that GTIN as well as data that are specific to that batch/lot or serial number, all using the same Linked Data technology, all embedded within the retrieved through a single Web request. same Web page and all At present, neither the GS1 Web vocabulary [GS1Voc] nor schema.org defines an expiration date property exists for a schema:expires – although the schema:Product property for a schema:CreativeWork. but not for vocabulary does include some terms for describing production variants – The GS1 Web consumer package variants, although this could be addressed in future updates. at. -readable form A Web URI can be used with Linked Data technology to express facts in a machine It does this using the W3C Resource Description Framework [RDF] in which facts are written as triples consisting of a Subject, a Property (or Predicate) and Value (or Object) and these are -Value themselves expressed as URIs. 4-1 shows two examples of these Subject -Property Figure triples. 4-1 -Value triples -Property Examples of Subject Figure xample simply says that the resource identified by The first e https://id.gs1.org/gtin/9507000009060/ is of type ‘Product’ as defined by schema.org. The second example formally states th at the same resource has a specific GTIN identifier with value (Note that the property "09507000009060". always https://gs1.org/voc/gtin expects a GTIN in 14 digit representation.) GS1 keys included within Web URIs are then not only mechanisms to retrieve information about a class citizens in the Web of Linked Data [Linked fication key. They are also first- specific GS1 identi Data] so that we can link all of these related facts to a GS1 Web URI . Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 19 of 54

20 GS1 Web URI Structure Standard In GS1 we recommend using the schema.org and GS1 Web vocabulary, and a semantic markup -LD [JSON format such as JSON -LD]. Explicit link to the 4.8 GS1 identification key (s) By standardising a Web URI structure under the gs1.org domain and recommending that brand owners also adopt a similar structure (even when constructing Web URIs for products using their own registered domain name), we can provide a consistent pattern from which a GTIN or other GS1 key can be conveniently extracted. This does not restrict a retailer who may wish to do an initial lookup of the Web URI for each product they stock in their store, to confirm that it is being used in http://schema.org/sameAs" ... > accordance with these guidelines, by checking for a 21 GS1 Web URI Structure Standard = "0" / "1" / "2" / "3" / "4" / DIGIT "5" / "6" / "7" / "8" / "9" 90 decimal, 41- UPPERALPHA = %x 41- 5A ; A- Z ( ASCII characters 65- 5A hex) z ( ASCII characters 97- 61- 7A ; a- = %x 7A hex) 122 decimal, 61- LOWERALPHA ALPHA z Z or a- = UPPERALPHA / LOWERALPHA ; A- = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" HEXDIG quote character " DoubleQuote = '"' ; the double- The following characters must be represented using percent -encoding (see Section 2.1 of RFC 3986 [PercentEncoding]) when used as literal characters within URIs, since many of these have special meanings within Web URIs: 23" ; percent- encoding of the # character Octothorpe = "%x ForwardSlash = "%x 2F" ; percent- encoding of the / character Percent = "%x 25" ; percent- encoding of the % character encoding of the & character 26" ; percent- Ampersand = "%x Plus encoding of the + character 2B" ; percent- = "%x = "%x character encoding of the , 2C" ; percent- Comma Exclamation encoding of the ! character 21" ; percent- = "%x LeftBracket 28" ; percent- encoding of the ( character = "%x RightBracket = "%x 29" ; percent- encoding of the ) character Asterisk = "%x 2A" ; percent- encoding of the * character Apostrophe 27" ; percent- encoding of the ' character = "%x Colon = "%x 3A" ; percent- encoding of the : character Semicolon = "%x 3B" ; percent- encoding of the ; character encoding of the < character 3C" ; percent- = "%x LeftAngleBracket -encoding of the = character 3D" ; percent = "%x Equals = "%x 3E" ; percent- encoding of the > character RightAngleBracket QuestionMark = "%x 3F" ; percent- encoding of the ? character -character subset of ISO/IEC The following group of symbol characters is permitted within the 82 indicated in Figure 7.11- 1 of the GS1 General Specifications [GENSPECS]. 646, XSYMBOL = DoubleQuote / "- " / "." / "_" / Exclamation / Percent / Ampersand / Plus / Comma / ForwardSlash / Asterisk / / Apostrophe / Semicolon / LeftBracket / RightBracket Colon / LeftAngleBracket / RightAngleBracket / Equals / QuestionMark The following group of symbol characters is permitted within the 39 -character subset of ISO/IEC 2 of the GS1 General Specifications [GENSPECS]. 646, indicated in Figure 7.11- Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 21 of 54

22 GS1 Web URI Structure Standard " / Octothorpe / ForwardSlash YSYMBOL = "- The following character set corresponds to all permitted characters within the 82 -character subset of 1 of the GS1 General Specifications [GENSPECS ]. ISO/IEC 646, indicated in Figure 7.11- = DIGIT / UPPERALPHA / LOWERALPHA / XSYMBOL XCHAR The following character set corresponds to all permitted characters within the 39 -character subset of ISO/IEC 646, indicated in Figure 7.11- 2 of the GS1 General Specifications [GENSPECS]. It is curren tly only used within the value of the Components and Parts Identifier (CPID). = DIGIT / UPPERALPHA / YSYMBOL YCHAR 5.1.2 Primary identification keys The following rules indicate which GS1 Application Identifiers (AI) are considered as primary identification ke ys for GS1 web URI. Note that for each of these (and the rules in the next section), the numeric AI value may be used or alternatively, a corresponding lower -case short name may be used if it is more friendly to software developers. The numeric AI value ma y be more suitable for use when encoding a GS1 Web URI within a 2D barcode, since this can be encoded more efficiently, resulting in a lower total module count and improved readability. %s prefix notation was introduced in [RFC 7405] and simply indicates that the following string The "gtin" value is case For example, in the rule below, gtin-code may be either "01" or -sensitive. but not "GTIN" nor "Gtin". code gtin- / %s"gtin" = "01" ; GTIN itip- = "8006" / %s"itip" ; ITIP code gmn- code = "8013" / %s"gmn" ; Global Model Number cpid- code = "8010" / %s"cpid" ; CPID ; ship- to shipTo- code = "410" / %s"shipTo" ; bill- / %s"billTo" = "411" -code billTo to purchasedFrom- / %s"purchasedFrom" ; purchased from GLN = "412" code code = "413" / %s"shipFor" ; ship- for shipFor- code = "414" / %s"gln" ; Physical Location GLN gln- payTo- code = "415" / %s"payTo" ; GLN of invoicing party glnProd- = "416" / %s"glnProd" ; GLN of production/service loc. code ; GSRN of the Provider code = "8017" / %s"gsrnp" gsrnp- ; GSRN of the Recipient gsrn- code = "8018" / %s"gsrn" gcn- ; GCN / %s"gcn" = "255" code ; SSCC code = "00" / %s"sscc" sscc- ; GDTI gdti- code = "253" / %s"gdti" ; GINC ginc- code = "401" / %s"ginc" = "402" / %s"gsin" ; GSIN code gsin- grai- code = "8003" / %s"grai" ; GRAI ; GIAI giai- code = "8004" / %s"giai" Key qualifiers 5.1.3 The following rules which GS1 Application Identifiers (AI) are considered as key qualifiers for a GS1 web URI. / %s"cpv" ; Consumer Product Variant = "22" code cpv- Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 22 of 54

23 GS1 Web URI Structure Standard code ; Batch/Lot identifier = "10" / %s"lot" lot- code = "21" / %s"ser" ; GTIN Serial Number ser- cpsn- code = "8011" / %s"cpsn" ; CPID Serial Number glnx- code = "254" / %s"glnx" ; GLN extension refno- code = "8020" / %s"refno" ; Payment Reference Number code srin- / %s"srin" = "8019" ; Service Relation Instance Number 5.1.4 Primary key formats The following rules express the format of the values of the primary GS1 identification keys. Note that the GS1 General Specifications [GENSPECS] define further restrictions on some of these values, particularly for those which include a GS1 Check Digit, Indicator Digit or Extension Digit. for further details. Please refer to the GS1 General Specifications [GENSPECS] gtin- value = 8DIGIT / 12DIGIT / 13DIGIT / 14DIGIT itip- = 14DIGIT 2DIGIT 2DIGIT value ; 14 digits then 2 digits then 2 digits gmn- chr subset = 1*30XCHAR ; 1- 30 characters from 82- value 30 characters from 39- chr subset value = 1*30YCHAR ; 1- cpid- = 13DIGIT ; exactly 13 digits value shipTo- billTo- = 13DIGIT ; exactly 13 digits value purchasedFrom- value = 13DIGIT ; exactly 13 digits value = 13DIGIT ; exactly 13 digits shipFor- value gln- = 13DIGIT ; exactly 13 digits payTo- value = 13DIGIT ; exactly 13 digits glnProd- value = 13DIGIT ; exactly 13 digits gsrnp- value = 18DIGIT ; exactly 18 digits = 18DIGIT ; exactly 18 digits gsrn- value ; 13 digits then 1- = 13DIGIT 1*12DIGIT 12 digits gcn- value sscc- = 18DIGIT ; exactly 18 digits value gdti- value = 13DIGIT 1*17XCHAR ; 13 digits then 1- 17 characters ; from the 82- character subset ginc- value = 1*30XCHAR 30 characters from the 82- character subset ; 1- gsin- value = 17DIGIT ; exactly 17 digits grai- value = 14DIGIT 1*16XCHAR 16 characters ; 14 digits then 1- character subset of ISO/IEC 646 ; from the 82- value giai- chr subset 30 characters from 82- ; 1- = 1*30XCHAR Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 23 of 54

24 GS1 Web URI Structure Standard 5.1.5 Key qualifier formats The following rules express the format of the values of the key qualifiers of primary GS1 keys: identification value = 1*20XCHAR ; 1- 20 characters from 82- chr subset cpv- lot- value = 1*20XCHAR ; 1- 20 characters from 82- chr subset chr subset ser- = 1*20XCHAR ; 1- 20 characters from 82- value cpsn- value = 1*12DIGIT ; 1- 12 digits 20 characters from 82- ; 1- = 1*20XCHAR value chr subset glnx- refno- = 1*25XCHAR ; 1- 25 characters from 82- chr subset value srin- value = 1*10DIGIT ; 1- 10 digits 5.1.6 Primary identifier and value concatenation The following rules express how each primary identifier code and its value should be con catenated (for use within the URI path information) : comp = "/" gtin- code "/" gtin- value gtin- itip- comp = "/" itip- code "/" itip- value gmn- comp = "/" gmn- code "/" gmn- value = "/" cpid- comp value code "/" cpid- cpid- o-comp o-value o-code "/" shipT = "/" shipT shipT code "/" billTo- = "/" billTo- comp billTo- value purchasedFrom- code "/" purchasedFrom- value = "/" purchasedFrom- comp comp = "/" shipFor- code "/" shipFor- value shipFor- comp = "/" gln- code "/" gln- value gln- = "/" payT comp o-value o-code "/" payT payTo- glnProd- = "/" glnProd- code "/" glnProd- value comp gsrnp- comp = "/" gsrnp- code "/" gsrnp- value gsrn- comp = "/" gsrn- code "/" gsrn- value value gcn- comp = "/" gcn- code "/" gcn- code "/" sscc- value = "/" sscc- sscc- comp gdti- = "/" gdti- code "/" gdti- value comp ginc- comp = "/" ginc- code "/" ginc- value gsin- comp = "/" gsin- code "/" gsin- value = "/" grai- grai- comp code "/" grai- value giai- = "/" giai- code "/" giai- value comp 5.1.7 Key qualifier concatenation The following rules express how each key qualifier and its value should be concatenated (for use within the URI path information) : cpv- comp = "/" cpv- code "/" cpv- value = "/" lot- code "/" lot- value lot- comp value code "/" ser- = "/" ser- comp ser- Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 24 of 54

25 GS1 Web URI Structure Standard comp = "/" cpsn- code "/" cpsn- value cpsn- comp glnx- code "/" glnx- value = "/" glnx- refno- comp = "/" refno- code "/" refno- value comp value srin- code "/" srin- = "/" srin- Path element order 5.1.8 The following rules express how the URI path information should be structured for each primary GS1 Note that some primary identifiers such as SSCC do not have any associated key identification k ey. qualifier. The square Other primary identifiers such as GTIN may have multiple key qualifiers. bracket notation indicates that the enclosed key qualifier component may be om itted but the sequence in which they appear is important and must be preserved. For example, the rule for gtin - path would permit any of these: /gtin/01234567890128/cpv/2A/lot/ABC123/ser/12345XYZ /gtin/01234567890128/lot/ABC123/ /gtin/01234567890128/lot/ABC123/ser/12345XYZ /gtin/01234567890128/ser/12345XYZ but does not permit strings such as: /gtin/01234567890128/ser/12345XYZ/lot/ABC123 in which the sequential ordering of the key qualifier components is not preserved. gtin- path = gtin- comp [cpv- comp] [lot- comp] [ser- comp] itip- path = itip- comp [cpv- comp] [lot- comp] [ser- comp] gmn- path = gmn- comp cpid- = cpid- comp [cpsn- comp] path shipTo- path = shipTo- comp billTo- path = billTo- comp purchasedFrom- path = purchasedFrom- comp comp path = shipFor- shipFor- path gln- comp] [glnx- comp = gln- payTo- = payTo- comp path glnProd- path = glnProd- comp gsrnp- path = gsrnp- comp [srin- comp] gsrn- path = gsrn- comp [srin- comp] gcn- path = gcn- comp sscc- = sscc- comp path gdti- path = gdti- comp ginc- path = ginc- comp comp = gsin- gsin- path grai- path comp = grai- path = giai- comp giai- The following rule simply states that any of the above is considered as a gs1path (which will be . referenced in a later rule) path / gs1path = gtin- path / itip- path / gmn- path / cpid- path / shipTo- path / path / gln- path / shipFor- billTo- path / purchasedFrom- path / gsrn- payTo- path / glnProd- path / gsrnp- path / gcn- path / path / gsin- path / path / grai- sscc- path / gdti- path / ginc- giai- path Data attributes 5.1.9 The following rules are concerned with GS1 Application Identifiers that are considered to be data Data attributes and their values attributes rather than primary identifier keys or key qualifiers. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 25 of 54

26 GS1 Web URI Structure Standard SHALL be expressed via the URI query string as key=value pairs. For most of the se, the key is -friendly short name. always the numeric AI value, rather than a more human netWeightVMTICode = "3100" / "3101" / "3102" / "3103" / "3104" / "3105" / "3200" / "3201" / "3202" / "3203" / "3204" / "3205" / "3560" / "3561" / "3562" / "3563" / "3564" / "3565" / "3570" / "3571" / "3572" / "3573" / "3574" / "3575" netWeightVMTIValue = 6DIGIT = netWeightVMTICode "=" netWeightVMTIValue netWeightVMTIParameter lengthVMTICode = "3110" / "3111" / "3112" / "3113" / "3114" / "3115" / "3210" / "3211" / "3212" / "3213" / "3214" / "3215" / "3220" / "3221" / "3222" / "3223" / "3224" / "3225" / "3230" / "3231" / "3232" / "3233" / "3234" / "3235" lengthVMTIValue = 6DIGIT = lengthVMTICode "=" lengthVMTIValue lengthVMTIParameter = "3120" / "3121" / "3122" / "3123" / "3124" / "3125" / widthVMTICode "3240" / "3241" / "3242" / "3243" / "3244" / "3245" / "3250" / "3251" / "3252" / "3253" / "3254" / "3255" / "3260" / "3261" / "3262" / "3263" / "3264" / "3265" widthVMTIValue = 6DIGIT = widthVMTICode "=" widthVMTIValue widthVMTIParameter depthVMTICode = "3130" / "3131" / "3132" / "3133" / "3134" / "3135" / "3270" / "3271" / "3272" / "3273" / "3274" / "3275" / "3280" / "3281" / "3282" / "3283" / "3284" / "3285" / "3290" / "3291" / "3292" / "3293" / "3294" / "3295" depthVMTIValue = 6DIGIT = depthVMTICode "=" depthVMTIValue depthVMTIParameter areaVMTICode = "3140" / "3141" / "3142" / "3143" / "3144" / "3145" / "3500" / "3501" / "3502" / "3503" / "3504" / "3505" / "3510" / "3511" / "3512" / "3513" / "3514" / "3515" / "3520" / "3521" / "3522" / "3523" / "3524" / "3525" areaVMTIValue = 6DIGIT areaVMTIParameter = areaVMTICode "=" areaVMTIValue netVolumeVMTICode = "3150" / "3151" / "3152" / "3153" / "3154" / "3155" / "3160" / "3161" / "3162" / "3163" / "3164" / "3165" / "3600" / "3601" / "3602" / "3603" / "3604" / "3605" / "3610" / "3611" / "3612" / "3613" / "3614" / "3615" / "3640" / "3641" / "3642" / "3643" / "3644" / "3645" / / "3653" / "3654" / "3655" / "3650" / "3651" / "3652" "3660" / "3661" / "3662" / "3663" / "3664" / "3665" = 6DIGIT netVolumeVMTIValue netVolumeVMTIParameter = netVolumeVMTICode "=" netVolumeVMTIValue massPerUnitAreaVMTICode = "3370" / "3371" / "3372" / "3373" / "3374" / "3375" massPerUnitAreaVMTIValue = 6DIGIT massPerUnitAreaVMTIParameter = massPerUnitAreaVMTICode "=" massPerUnitAreaVMTIValue = "3300" / "3301" / "3302" / "3303" / "3304" / "3305" / grossWeightCode "3400" / "3401" / "3402" / "3403" / "3404" / "3405" = 6DIGIT grossWeightValue = grossWeightCode "=" grossWeightValue grossWeightParameter Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 26 of 54

27 GS1 Web URI Structure Standard = "3310" / "3311" / "3312" / "3313" / "3314" / "3315" logisticLengthCode / "3410" / "3411" / "3412" / "3413" / "3414" / "3415" / "3420" / "3421" / "3422" / "3423" / "3424" / "3425" / "3430" / "3431" / "3432" / "3433" / "3434" / "3435" logisticLengthValue = 6DIGIT logisticLengthParameter = logisticLengthCode "=" logisticLengthValue = "3320" / "3321" / "3322" / "3323" / "3324" / "3325" / logisticWidthCode "3440" / "3441" / "3442" / "3443" / "3444" / "3445" / "3450" / "3451" / "3452" / "3453" / "3454" / "3455" / "3460" / "3461" / "3462" / "3463" / "3464" / "3465" logisticWidthValue = 6DIGIT = logisticWidthCode "=" logisticWidthValue logisticWidthParameter = "3330" / "3331" / "3332" / "3333" / "3334" / "3335" / logisticDepthCode "3470" / "3471" / "3472" / "3473" / "3474" / "3475" / "3480" / "3481" / "3482" / "3483" / "3484" / "3485" / "3490" / "3491" / "3492" / "3493" / "3494" / "3495" logisticDepthValue = 6DIGIT logisticDepthParameter = logisticDepthCode "=" logisticDepthValue = "3340" / "3341" / "3342" / "3343" / "3344" / "3345" / logisticAreaCode "3530" / "3531" / "3532" / "3533" / "3534" / "3535" / "3540" / "3541" / "3542" / "3543" / "3544" / "3545" / "3550" / "3551" / "3552" / "3553" / "3554" / "3555" = 6DIGIT logisticAreaValue = logisticAreaCode "=" logisticAreaValue logisticAreaParameter logisticVolumeCode = "3350" / "3351" / "3352" / "3353" / "3354" / "3355" / "3360" / "3361" / "3362" / "3363" / "3364" / "3365" / "3620" / "3621" / "3622" / "3623" / "3624" / "3625" / "3630" / "3631" / "3632" / "3633" / "3634" / "3635" / "3670" / "3671" / "3672" / "3673" / "3674" / "3675" / "3680" / "3681" / "3682" / "3683" / "3684" / "3685" / "3690" / "3691" / "3692" / "3693" / "3694" / "3695" logisticVolumeValue = 6DIGIT logisticVolumeParameter = logisticVolumeCode "=" logisticVolumeValue = "7030" / "7031" / "7032" / "7033" / "7034" / "7035" / processorCode / "7037" / "7038" / "7039" "7036" = 3DIGIT 1*27XCHAR processorValue = processorCode "=" processorValue processorParameter = "02" contentCode = 14DIGIT contentValue = contentCode "=" contentValue contentParameter = "11" prodDateCode prodDateValue = 6DIGIT = prodDateCode "=" prodDateValue prodDateParameter = "12" dueDateCode = 6DIGIT dueDateValue = dueDateCode "=" dueDateValue dueDateParameter = "13" packDateCode = 6DIGIT packDateValue packDateParameter = packDateCode "=" packDateValue Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 27 of 54

28 GS1 Web URI Structure Standard = "15" bestBeforeDateCode = 6DIGIT bestBeforeDateValue bestBeforeDateParameter = bestBeforeDateCode "=" bestBeforeDateValue sellByDateCode = "16" = 6DIGIT sellByDateValue sellByDateParameter = sellByDateCode "=" sellByDateValue firstFreezeDateCode = "7006" firstFreezeDateValue = 6DIGIT firstFreezeDateParameter = firstFreezeDateCode "=" firstFreezeDateValue harvestDateCode = "7007" harvestDateValue = 6*12DIGIT = harvestDateCode "=" harvestDateValue harvestDateParameter pricePerUnitCode = "8005" pricePerUnitValue = 6DIGIT = pricePerUnitCode "=" pricePerUnitValue pricePerUnitParameter = "20" variantCode variantValue = 2DIGIT = variantCode "=" variantValue variantParameter = "30" varCountCode = 1*8DIGIT varCountValue = varCountCode "=" varCountValue varCountParameter = "37" countCode countValue = 1*8DIGIT countParameter = countCode "=" countValue mutualCode = "90" mutualValue = 1*30DIGIT mutualParameter mutualValue "=" = mutualCode = "240" additionalIdCode = 1*30DIGIT additionalIdValue additionalIdParameter = additionalIdCode "=" additionalIdValue = "241" custPartNoCode = 1*30DIGIT custPartNoValue custPartNoParameter = custPartNoCode "=" custPartNoValue = "242" mtoVariantCode = 6DIGIT mtoVariantValue = mtoVariantCode "=" mtoVariantValue mtoVariantParameter pcnCode = "243" = 1*20DIGIT pcnValue = pcnCode "=" pcnValue pcnParameter = "250" secondarySerialCode = 1*30DIGIT secondarySerialValue secondarySerialParameter = secondarySerialCode "=" secondarySerialValue = "251" refToSourceCode = 1*30DIGIT refToSourceValue refToSourceParameter = refToSourceCode "=" refToSourceValue Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 28 of 54

29 GS1 Web URI Structure Standard = "3900" / "3901" / "3902" / "3903" / "3904" / "3905" amountCode = 1*15DIGIT amountValue = amountCode "=" amountValue amountParameter = "3910" / "3911" / "3912" / "3913" / "3914" / "3915" amountISOCode = 3DIGIT 1*15DIGIT amountISOValue = amountISOCode "=" amountISOValue amountISOParameter = "3920" / "3921" / "3922" / "3923" / "3924" / "3925" priceCode priceValue = 1*15DIGIT = priceCode "=" priceValue priceParameter priceISOCode = "3930" / "3931" / "3932" / "3933" / "3934" / "3935" 1*15DIGIT priceISOValue = 3DIGIT = priceISOCode "=" priceISOValue priceISOParameter percentOffCode = "3940" / "3941" / "3942" / "3943" / "3944" / "3945" = 4DIGIT percentOffValue = percentOffCode "=" percentOffValue percentOffParameter = "400" orderNumberCode orderNumberValue = 1*30DIGIT orderNumberParameter = orderNumberCode "=" orderNumberValue = "403" routeCode = 1*30DIGIT routeValue = routeCode "=" routeValue routeParameter shipToLocCode = "410" shipToLocValue = 13DIGIT = shipToLocCode "=" shipToLocValue shipToLocParameter = "411" billToCode = 13DIGIT billToValue = billToCode "=" billToValue billToParameter = "412" purchaseFromCode purchaseFromValue = 13DIGIT = purchaseFromCode "=" purchaseFromValue purchaseFromParameter shipForLocCode = "413" = 13DIGIT shipForLocValue = shipForLocCode "=" shipForLocValue shipForLocParameter locNoCode = "414" = 13DIGIT locNoValue = locNoCode "=" locNoValue locNoParameter = "415" payToCode payToValue = 13DIGIT = payToCode "=" payToValue payToParameter prodServLocCode = "416" = 13DIGIT prodServLocValue prodServLocParameter = prodServLocCode "=" prodServLocValue shipToPostCode = "420" = 1*20XCHAR shipToPostValue = shipToPostCode "=" shipToPostValue shipToPostParameter Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 29 of 54

30 GS1 Web URI Structure Standard = "421" shipToPostISOCode = 3DIGIT 1*9XCHAR shipToPostISOValue = shipToPostISOCode "=" shipToPostISOValue shipToPostISOParameter = "422" originCode originValue = 3DIGIT originParameter = originCode "=" originValue countryProcessCode = "424" countryProcessValue = 3DIGIT countryProcessParameter = countryProcessCode "=" countryProcessValue = "426" countryFullProcessCode countryFullProcessValue = 3DIGIT countryFullProcessParameter = countryFullProcessCode "=" countryFullProcessValue = "423" countryInitialProcessCode = 3DIGIT 1*12DIGIT countryInitialProcessValue = countryInitialProcessParameter countryInitialProcessCode "=" countryInitialProcessValue = "425" countryDisassemblyCode = 3DIGIT 1*12DIGIT countryDisassemblyValue countryDisassemblyParameter = countryDisassemblyCode "=" countryDisassemblyValue = "427" originSubdivisionCode = 1*3XCHAR originSubdivisionValue = originSubdivisionParameter originSubdivisionCode "=" originSubdivisionValue nhrnPZNCode = "710" = 1*20XCHAR nhrnPZNValue "=" = nhrnPZNCode nhrnPZNValue nhrnPZNParameter = "711" nhrnCIPCode nhrnCIPValue = 1*20XCHAR = nhrnCIPCode "=" nhrnCIPValue nhrnCIPParameter nhrnCNCode = "712" nhrnCNValue = 1*20XCHAR = nhrnCNCode "=" nhrnCNValue nhrnCNParameter = "713" nhrnDRNCode = 1*20XCHAR nhrnDRNValue nhrnDRNValue nhrnDRNParameter = nhrnDRNCode "=" nhrnAIMCode = "714" = 1*20XCHAR nhrnAIMValue = nhrnAIMCode "=" nhrnAIMValue nhrnAIMParameter = "7001" nsnCode nsnValue = 13DIGIT nsnParameter = nsnCode "=" nsnValue = "7002" meatCutCode = 1*30XCHAR meatCutValue meatCutParameter = meatCutCode "=" meatCutValue Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 30 of 54

31 GS1 Web URI Structure Standard = "7004" activePotencyCode = 1*4DIGIT activePotencyValue activePotencyParameter = activePotencyCode "=" activePotencyValue = "7005" catchAreaCode = 1*12XCHAR catchAreaValue = catchAreaCode "=" catchAreaValue catchAreaParameter = "7009" fishingGearTypeCode fishingGearTypeValue = 1*10XCHAR = fishingGearTypeCode "=" fishingGearTypeValue fishingGearTypeParameter = "7010" prodMethodCode prodMethodValue = 1*2XCHAR = prodMethodCode "=" prodMethodValue prodMethodParameter refurbLotCode = "7020" = 1*20XCHAR refurbLotValue = refurbLotCode "=" refurbLotValue refurbLotParameter = "7021" funcStatCode funcStatValue = 1*20XCHAR funcStatParameter = funcStatCode "=" funcStatValue = "7022" revStatCode = 1*20XCHAR revStatValue = revStatCode "=" revStatValue revStatParameter giaiAssemblyCode = "7023" giaiAssemblyValue = 1*30XCHAR = giaiAssemblyCode "=" giaiAssemblyValue giaiAssemblyParameter dimensionsCode = "8001" dimensionsValue = 14DIGIT dimensionsParameter = dimensionsCode "=" dimensionsValue = "8002" cmtNoCode = 1*20XCHAR cmtNoValue cmtNoParameter = cmtNoCode "=" cmtNoValue ibanCode = "8007" = 1*34XCHAR ibanValue = ibanCode "=" ibanValue ibanParameter = "8008" prodTimeCode = 8DIGIT 1*4DIGIT prodTimeValue = prodTimeCode "=" prodTimeValue prodTimeParameter = "8012" versionCode versionValue 1*20XCHAR = 4DIGIT = versionCode "=" versionValue versionParameter = "8020" refNoCode = 1*25XCHAR refNoValue = refNoCode "=" refNoValue refNoParameter couponIDNACode = "8110" = 1*70XCHAR couponIDNAValue = couponIDNACode "=" couponIDNAValue couponIDNAParameter Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 31 of 54

32 GS1 Web URI Structure Standard = "8111" pointsCode pointsValue = 4DIGIT = pointsCode "=" pointsValue pointsParameter = "8112" paperlessCouponIDNACode = 1*70XCHAR paperlessCouponIDNAValue = paperlessCouponIDNAParameter paperlessCouponIDNACode "=" paperlessCouponIDNAValue internalCode = "91" / "92" / "93" / "94" / "95" / "96" / "97" / "98" / "99" = 1*90XCHAR internalValue internalParameter = internalCode "=" internalValue ] and a Batch/Lot may also be used as a data attribute in conjunction with an SSCC [ AI (00) CONTENT [ AI (02) ] in order to indicate that the SSCC contains GTINs of a specific batch/lot. For fined for use within the URI query string. this reason, LotParameter is de value code "=" lot- = lot- LotParameter However, because of Expiry Date [ AI (17) ] and Expiry Date/Time [ AI (7003) ] are data attributes. cts, the following rules their importance in managing stock rotation and checking for expired produ -case short name, “exp” and “expdt” that may be used in place of numeric AIs also define a lower “17” and “7003” respectively. = "17" / %s"exp" expiryDateCode expiryDateValue = 6DIGIT expiryDateParameter = expiryDateCode "=" expiryDateValue = "7003" / %s"expdt" expiryTimeCode expiryTimeValue = 10DIGIT expiryTimeParameter = expiryTimeCode "=" expiryTimeValue The URI query string is a natural extension point within the syntax that can accommodate additional key=value pairs to express data attribute parameters that cannot be expressed using GS1 Application Identifiers. Examples of such usage may be to express a specific role, action, activity or The following extensionParameter is based on the ABNF rule for type of service to be accessed. query appearing in [RFC 3986] and serves as the main extension point for the GS1 Web URI syntax. key=value pairs to be included within the query string of a GS1 Web It permits multiple arbitrary URI. Any key=value pairs used for extension data SHALL NOT conflict with keys used for GS1 OT Application Identifiers either in terms of semantics or syntax; a key for extension data SHALL N use a numeric GS1 Application Identifier NOR the values 'lot', 'exp' or 'expdt' nor should they be used to express a value (such as a value for net weight) if that value can be expressed using GS1 Application Identifiers as data attributes. extensionParameter = *( pchar / "/" / "?" ) ; any other query string parameter permitted by RFC 3986 ; including additional arbitrary key=value pairs The following rule states that any of the above parameters for data attributes may appear as a queryStringParam query string param eter ( ), referenced later. queryStringParam = netWeightVMTIParameter / lengthVMTIParameter / widthVMTIParameter / depthVMTIParameter / areaVMTIParameter / netVolumeVMTIParameter / massPerUnitAreaVMTIParameter / grossWeightParameter / logisticLengthParameter / logisticWidthParameter / logisticDepthParameter / logisticAreaParameter / logisticVolumeParameter / processorParameter / LotParameter / expiryDateParameter / expiryTimeParameter / contentParameter / prodDateParameter / dueDateParameter / packDateParameter / bestBeforeDateParameter / sellByDateParameter / firstFreezeDateParameter / harvestDateParameter / pricePerUnitParameter / variantParameter / Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 32 of 54

33 GS1 Web URI Structure Standard varCountParameter / countParameter / internalParameter / additionalIdParameter / custPartNoParameter / mtoVariantParameter / pcnParameter / secondarySerialParameter / refToSourceParameter / amountParameter / amountISOParameter / priceParameter / priceISOParameter / percentOffParameter / orderNumberParameter / routeParameter / shipToLocParameter / billToParameter / purchaseFromParameter / shipForLocParameter / locNoParameter / prodServLocParameter / shipToPostParameter / shipToPostISOParameter / originParameter / countryProcessParameter / countryFullProcessParameter / countryInitialProcessParameter / countryDisassemblyParameter / originSubdivisionParameter / nhrnPZNParameter / nhrnCIPParameter / nhrnCNParameter / nhrnDRNParameter / nsnParameter / meatCutParameter / activePotencyParameter / catchAreaParameter / fishingGearTypeParameter / prodMethodParameter / refurbLotParameter / funcStatParameter / revStatParameter / giaiAssemblyParameter / dimensionsParameter / cmtNoParameter / ibanParameter / prodTimeParameter / versionParameter / refNoParameter / couponIDNAParameter / pointsParameter / paperlessCouponIDNAParameter / internalParameter / mutualParameter / extensionParameter Constructing the URI 5.1.10 The following rules are derived from rules appearing nd are used for defining the in [RFC 3986] a general structure of a Web URI or URL. These are particularly relevant for GS1 Web URIs that are . under the id.gs1.org domain not = "http" / "https" scheme " / "." / "_" / "~" = ALPHA / DIGIT / "- unreserved = gen- reserved delims delims / sub- encoded = "%" HEXDIG HEXDIG pct- gen- delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" sub- delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" pchar = unreserved / pct- encoded / sub- delims / ":" / "@" segment = *pchar = *( unreserved / pct- encoded / sub- delims ) reg- name 9 = DIGIT ; 0- dec- octet / %x31- 39 DIGIT ; 10- 99 199 / "1" 2DIGIT ; 100- 34 DIGIT ; 200- / "2" %x30- 249 35 ; 250- / "25" %x30- 255 octet "." dec- octet octet "." dec- IPv4address = dec- octet "." dec- IPv6address = 6( h16 ":" ) ls32 / "::" 5( h16 ":" ) ls32 / [ h16 ] "::" 4( h16 ":" ) ls32 / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 / [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 / [ *4( h16 ":" ) h16 ] "::" ls32 Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 33 of 54

34 GS1 Web URI Structure Standard / [ *5( h16 ":" ) h16 ] "::" h16 / [ *6( h16 ":" ) h16 ] "::" = ( h16 ":" h16 ) / IPv4address ls32 significant 32 bits of address ; least- = 1*4HEXDIG h16 ; 16 bits of address represented in hexadecimal = "[" ( IPv6address / IPvFuture IP- literal ) "]" IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub- delims / ":" ) = IP- name literal / IPv4address / reg- host port = *DIGIT = host [ ":" port ] hostname Finally, the following four rules define the syntax of a reference GS1 Web URI from the concatenation of previous defined components: queryStringDelim = "&" / ";" queryStringComp = "?" queryStringParam *( queryStringDelim queryStringParam) = gs1path [queryStringComp] gs1uriPattern referenceGS1webURI = "https://id.gs1.org" gs1uriPattern The following rules define the syntax of a non- reference GS1 Web URI from the concatenation of An example of usage of a non nce GS1 Web URI is when a -refere previous defined components. company chooses to use their own registered Internet domain name to construct the Web URI but aligns with this specification for the format of the final part of the URI path information and query Note that zero or more path segments are permitted to appear after the hostname or domain string. defined in this specification. name and before the start of the gs1uriPattern = scheme "://" hostname *( "/" segment ) customURIstem customGS1webURI = customURIstem gs1uriPattern The formal ABNF syntax for the Web URI should be read in combination with the GS1 General to ensure appropriate usage of Application Identifiers that represent data Specifications [GENSPECS] In particular, section 4.14 of the attributes of identified things. GS1 General Specifications [GENSPECS] provides guidance about data relationships, including invalid pairs of element string s In the GS1 s (see section 4.14.2). (see section 4.14.1) and mandatory associations of element string General Specifications [GENS PECS] , Section 2 specifies which identifiers are used for an application, Section 3 provides definitions for each Application Identifier, while Section 4 explains the . management rules for each GS1 identification key ry identifier keys include GS1 check digits and some also As previously mentioned, some GS1 prima Section 7 of the include indicator digits or extension digits that are to be used for specific purposes. .2.7 GS1 General Specifications [GENSPECS] provides details of AIDC validation rules and Section 7 Nothing in this GS1 specification changes the existing explains the GS1 check digit calculation. validation rules that apply to the values of GS1 Application Identifiers; this document only specifies how valid GS1 AI values shall be expressed in a Web URI structure. s GS1 Web URI Canonical 5.2 provide the formal specification of GS1 Web URIs in which the most 5.1 The rules in section commonly used identification keys can be represented as either their numeric value (their AI) or as Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 34 of 54

35 GS1 Web URI Structure Standard , the following URIs are both ‘reference 5.4 -friendly string. As shown in section a more developer GS1 Web URIs’ and both identify the same resource: https://id.gs1.org/gtin/614141123452 https://id.gs1.org/01/614141123452 This flexibility allows any combination of numeric and string identifiers so that: https://id.gs1.org/gtin/614141123452/cpv/2A https://id.gs1.org/01/614141123452/22/2A https://id.gs1.org/01/614141123452/cpv/2A https://id.gs1.org/gtin/614141123452/22/2A are all acceptable. This can be extended even further since a GS1 Web URI can be constructed in any domain name, may contain additional key/value pairs in the query string and so on. This flexibility is a deliberate feature of the standard to support its use in as many scenarios as possible. However, in some contexts it is necessary to identify a single preferred version of the URI. This is defined in [RFC 6596] as the canonical URI . Since the GS1 Web URI encodes element strings as defined in the GS1 General Specifications [GENSPECS] such that and this are equivalent, https://example.com/gtin/614141123452 (01)614141123452 and only defines short string alternatives for a subset of GS1 keys, we define the canonical document : follows as URI ■ ; the domain name SHALL be id.gs1.org ■ convenience string equivalents for AIs SHALL NOT be used; non-GS1 key= value pairs SHALL NOT appear in the query string. ■ 5.3 An explanation of Web URI syntax and options for extensions A Web URI is constructed from the concatenation of the protocol, the hostname, the path information and optionally a URI query string. The protocol may be either "http" or "https", although “https” is recommended because it provides a secure communication channel over the Web. Depending on usage, the hostname may be defined under the registered internet domain name of retailer or the designated hostname defined by GS1 as a reference the brand owner, retailer / e- : id.gs1.org. Web URI prefix The path information consists of pairs of keys and values delimited by the forward slash ("/") or solidus character, such that each key precedes the corresponding value. The query string typically consists of key=value pairs concatenated using either the ampersand query string accommodates data ("&") or semicolon (";") character. Within a GS1 Web URI, the attributes in which the key is a GS1 Application Identifier corresponding to a data attribute, as well as serving as an extension point for additional arbitrary key=value pairs that may be used for ific role, action, activity or type of service to be accessed. Any key=value example to indicate a spec pairs used for extension data SHALL NOT conflict with keys used for GS1 Application Identifiers either in terms of semantics or syntax; a key for extension data SHALL NOT use a nu meric GS1 Application Identifier NOR the values ' ', ' expdt lot ' nor should they be used to express a ' or ' exp value (such as a value for net weight) if that value can be expressed using GS1 Application Identifiers as data attributes. Section 5.1 defines the formal ABNF grammar for a Web URI structure for GS1 identification keys and the corresponding key qualifiers identified for each. Note also that the formal ABNF grammar does indicate a preferred ordering of the key qualifiers for although any of these may be GTIN and ITIP, with CPV first, then lot/batch, then serial number - omitted, since the square brackets in ABNF notation indicate that an element is optional. Note that there is no preferred ordering for key=value pairs appearing within the URI query string. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 35 of 54

36 GS1 Web URI Structure Standard Section 5.4 provides a small number of examples of GS1 Web URIs t o support many typical use cases. 5.4 Examples of GS1 Web URIs 5.4.1 GTIN https://id.gs1.org/gtin/614141123452 https://id.gs1.org/01/614141123452 GS1 Web URI s for GTIN are equivalent reference 614141123452 ; the second version is canonical. They are both equivalent to the following element string : (01)00614141123452 The following are all further valid GS1 Web URIs for GTIN 614141123452 using a custom domain name e.g. example.com instead of id.gs1.org https://brand.example.com/gtin/614141123452 https://brand.example.com/some- extra/pathinfo/gtin/614141123452 https://retailer.example.com/some- extra/pathinfo/gtin/614141123452 encoding a GTIN reference , any software can construct a If a product carries an EAN/UPC barcode "https://id.gs1.org/gtin/" to value GTIN by appending the GTIN GS1 Web URI for that . If redirection information has been specified to GS1 by the corresponding licensee of that GTIN or the GS1 Company Prefix (for GTINs constructed from GS1 Company Prefixes), a GS1 R esolver that supports GS1 Web URIs will be able to effectively redirect any requests for that GS1 Web URI to a corresponding Web URI or URL specified by the licensee. 5.4.2 GTIN + CPV https://id.gs1.org/gtin/614141123452/cpv/2A https://id.gs1.org/01/614141123452/22/2A GS1 Web URIs for GTIN reference equivalent are 614141123452 combined with Consumer Product They are both equivalent to the following element ; the second example is canonical. '2A' Variant s: string (01)00614141123452(22)2A combined with Consumer 614141123452 valid GS1 Web URIs for GTIN The following are further Product Variant '2A'. https://brand. example.com/gtin/614141123452/cpv/2A example.com/01/614141123452/22/2A https://brand. example.com/01/614141123452/22/2A https://retailer. GTIN + Batch/Lot 5.4.3 https://id.gs1.org/gtin/614141123452/lot/ABC123 https://id.gs1.org/01/614141123452/10/ABC123 are equivalent reference GS1 Web URIs for GTIN 614141123452 combined with Batch/Lot lowing ; the second version is canonical. They are both equivalent to the fol 'ABC123' element string s: Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 36 of 54

37 GS1 Web URI Structure Standard (01)00614141123452(10)ABC123 The following are valid GS1 Web URIs for GTIN further combined with Batch/Lot 614141123452 'ABC123' https://brand. example.com/gtin/614141123452/lot/ABC123 example.com/01/614141123452/10/ABC123 https://brand. example.com/01/614141123452/10/ABC123 https://retailer. 5.4.4 GTIN + Serial Number (also known as SGTIN) https://id.gs1.org/gtin/614141123452/ser/12345 https://id.gs1.org/01/614141123452/21/12345 614141123452 Web URIs for GTIN GS1 combined with Serial Number are equivalent reference ; the second version is canonical. s: They are both equivalent to the following element string ‘12345’ (01)00614141123452(21)12345 combined with Serial 614141123452 valid GS1 Web URIs for GTIN The following are further '12345' Number example.com/gtin/614141123452/ser/1234 https://brand. https://brand. example.com/01/614141123452/21/12345 https://retailer. example.com/01/614141123452/21/12345 5.4.5 GTIN + Batch/Lot + Serial Number + Expiry Date https://id.gs1.org/gtin/614141123452/lot/ABC1/ser/12345?exp=180426 https://id.gs1.org/01/614141123452/10/ABC1/21/12345?17=180426 GS1 Web URIs for GTIN combined with Batch/Lot ‘ABC1’ reference 614141123452 are equivalent and Serial Number ‘12345’ and with a n expiry date of 26th April 2018; the second version is canonical. element string s: They are both equivalent to the following (01)00614141123452(17)180426(10)ABC1(21)12345 614141123452 The following are further valid GS1 Web URIs for GTIN combined with Batch/Lot ‘ABC1’ and Serial Number and with an expiry date of 26th April 2018. '12345' https://example.com/gtin/614141123452/lot/ABC1/ser/12345?exp=180426 https://example.com/01/614141123452/10/ABC1/21/12345?17=180426 GTIN + Net Weight 5.4.6 https://id.gs1.org/gtin/614141123452?3103=000195 https://id.gs1.org/01/614141123452?3103=000195 GS1 Web URIs for GTIN combined with a net weight of 614141123452 are equivalent reference 0.195 kg; the second version is canonical . They are both equivalent to the following element s: string (01)00614141123452(3103)000195 The following are further combined with a net weight 614141123452 valid GS1 Web URIs for GTIN of 0.195 kg : https://example.com/gtin/614141123452?3103=000195 https://example.com/01/614141123452?3103=000195 Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 37 of 54

38 GS1 Web URI Structure Standard ed Link GTIN + Typ 5.4.7 but include an additional key=value These examples are very similar to those of section 5.4.1 above pair in the URI query string. first two examples, the key=value pair may be something like In the typedLink=gs1_ to provide a convenient declarative way of requesting the instructionsForUse instruction manual for the specified product. This additional key=value pair can be used to redirect to a different Web resource from the redirection that would otherwise happen, so whereas the example in section 5.4.1 might redirect to the brand owner's Web page about the product, these examples might be configured to redirect directly to the instruction manual for the product, providing a convenient direct link to specific types of information or services related to the product and greater convenience to the user by reducing or eb pages to find a particular kind of information eliminating the need to navigate through multiple W or service. instructionsForUse https://id.gs1.org/gtin/614141123452? typedLink=gs1_ https://id.gs1.org/01/614141123452? typedLink=gs1_ instructionsForUse Both of these are equivalent reference but they also include 614141123452 GS1 Web URIs for GTIN that cannot be an extra key=value pair within the URI query string, which represents information expressed unambiguously using GS1 Application Identifiers in element strings. The additional key=value pairs are lost when translating GS1 Web URIs to element strings and are not part of the canonical GS1 Web URI which would be https://id.gs1.org/01/614141123452 . All three are equivalent to the following element string: (01)00614141123452 614141123452 valid GS1 Web URIs for GTIN The following are further , also including the same additional key=value pair in the URI query string. https://example.com/gtin/614141123452?typedLink=gs1_ instructionsForUse https://example.com/01/614141123452&typedLink=gs1_instructionsForUse Note that at this stage, typedLink is only an example of a key. Its values have not yet been standardised by GS1. Br and owners, retailers and others are at liberty to use any key=value pairs but should take care to use percent encoding where appropriate for symbol characters, including colon. Future work on GS1 Web URI may define standardised values for various common typed links. There may be opportunities to align well with terms already defined in the GS1 Web vocabulary, as well as opportunities to extend that vocabulary, as well as contributing candidates for potential inclusion in [ IANA link relations]. GTIN + Batch /Lot + Serial Number + Expiry Date + Typed Link 5.4.8 but include an additional key=value above These examples are very similar to those of section 5.4.5 pair in the URI query string. to provide typedLink=hcpPortal In these two examples, the key=value pair may be something like a convenient declarative way of requesting information about the identified product that is provided via a portal for healthcare providers. This additional key=value pair can be used to redirect to a different Web resource from the redirection that would otherwise happen (e.g. in section 5.4.5 ). The alternative Web resource may also check for an appropriate security token that asserts that the requestor is a healthcare provider. https://id.gs1.org/gtin/614141123452/lot/ABC1/ser/12345?exp=180426&typedLink=hcpPortal https://id.gs1.org/01/614141123452/10/ABC1/21/12345?17=180426&typedLink=hcpPortal Both of these are equivalent combined with RIs for GTIN GS1 Web U reference 614141123452 Batch/Lot ‘ABC1’ and Serial Number ‘12345’ and with an expiry date of 26th April 2018 but they also include an extra key=value pair within the URI query string, which represents information that nambiguously using GS1 Application Identifiers in element strings. The cannot be expressed u additional key=value pairs are lost when translating GS1 Web URIs to element strings and do not form part of the canonical URI: Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 38 of 54

39 GS1 Web URI Structure Standard https://id.gs1.org/01/614141123452/10/ABC1/21/12345?17=180426 equivalent to the following element strings: All three are (01)00614141123452(17)180426(10)ABC1(21)12345 The following are further combined with Batch/Lot 614141123452 valid GS1 Web URIs for GTIN ‘ABC1’ and Serial Number ' and with an expiry date of 26th April 2018, also including the 12345' same additional key=value pair in the URI query string. https://example.com/gtin/614141123452/lot/ABC1/ser/12345?exp=180426&typedLink=hcpPortal https://example.com/01/614141123452/10/ABC1/21/12345?17=180426&typedLink=hcpPortal 5.4.9 SSCC https://id.gs1.org/sscc/106141412345678908 https://id.gs1.org/00/106141412345678908 are equivalent reference GS1 Web URIs for SSCC 106141412345678908 ; the second version is element string s: canonical. following They are both equivalent to the (00)106141412345678908 : 106141412345678908 valid GS1 Web URIs for SSCC The following are further https://example.com/sscc/106141412345678908 https://example.com/00/106141412345678908 specified Batch/Lot Content, Count and SSCC with 5.4.10 https://id.gs1.org/sscc/106141412345678908?02=00614141123452&37=25&10=ABC123 https://id.gs1.org/00/106141412345678908?02=00614141123452&37=25&10=ABC123 GS1 Web URIs for SSCC are equivalent reference containing a count [ AI 106141412345678908 (37 ) ] of 25 instances of Content [ AI (02) ] having Batch/Lot identifier [ AI (10) 00614141123452 ; the second version is canonical. They are both equivalent to the following element ] 'ABC123' string s: (00)106141412345678908(02)00614141123452(37)25(10)ABC123 The following are further containing a count [ 106141412345678908 valid GS1 Web URIs for SSCC having Batch/Lot identifier [ AI 00614141123452 AI (37) ] of 25 instances of Content [ AI (02) ] (10) ] : 'ABC123' https://example.com/sscc/106141412345678908?02=00614141123452&37=25&10=ABC123 https://example.com/00/106141412345678908?02=00614141123452&37=25&10=ABC123 Physical location represented by a GLN or GLN + GLN Extension 5.4.11 https://id.gs1.org/gln/0614141123452 https://id.gs1.org/414/0614141123452 GS1 Web URIs for GLN are equivalent reference ; the second version is canonical. 0614141123452 : They are both equivalent to the following element string (414)0614141123452 https://id.gs1.org/gln/0614141123452/glnx/32a%2Fb https://id.gs1.org/414/0614141123452/254/32a%2Fb Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 39 of 54

40 GS1 Web URI Structure Standard are equivalent reference GS1 Web URIs for GLN 0614141123452 combined with a GLN extension '32a/b' ; the second version is canonical. Note that because the forward slash character has a special meaning within Web URIs, it is replaced with %2F, its percent encoding when it is being used as a literal value, rather than as a URI path separator. They are both equivalent to the following element string s: (414)0614141123452(254)32a/b The following are valid GS1 Web URIs for GLN : 0614141123452 https://example.com/gln/0614141123452 https://example.com/414/0614141123452 The following are further valid GS1 Web URIs for GLN 0614141123452 combined with a GLN extension : '32a/b' https://example.com/gln/0614141123452/glnx/32a%2Fb https://example.com/414/0614141123452/glnx/32a%2Fb 6 Resolving GS1 Web URI s This chapter is intended to be informative to provide background information about how Web URIs will be resolved, together with a n umber of examples. up that Web URI ing Resolving a Web URI is simply the process of handling a Web request or look ing a corresponding service. The service could: and deliver provid ■ ; -readable format, such as a Web page e information in a human ■ provid e data in a machine readable format such as JSON or JSON- LD; ■ 7231] or as a RFC provide any combination of the previous two, either as separate entities via [ combined Web page with embedded machine readable data; redirect to another resolver capable of delivering a service. ■ That process might involve multiple organisations and multiple resolver services redirecting from one to another. Resolvers will leverage existing normative standards such as those that define the HTTP Protocol -specific normative content regarding behaviour of Any GS1 and associated HTTP response codes. resolvers will be provided in a separate document to be developed following pilot activities. 6.1 Resolving Protocol may be done in part by one or more resolvers. The initial resolver The resolution of a GS1 Web URI contacted for a particular Web URI is determined by the domain name or hostname used in this URI. For example, the GS1 Web URI: https://id.gs1.org/gtin/9507000000001/ser/9090909090 will result in invoking the resolver bound to the: hostname. https://id.gs1.org Similarly, the following GS1 Web URI: https://example.com/gtin/9507000000001/ser/9090909090 will result in invoking the resolver bound to the: hostname. https://example.com A resolver then performs 3 steps: Extraction of elements from the GS1 Web URI 1. Validation of the extracted elements 2. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 40 of 54

41 GS1 Web URI Structure Standard to information or a redirection Resolution of the GS1 Web URI 3. Figure 6 -1 The process is summari sed in the flowchart in : Summary flowchart of typical behaviour of a resolver for GS1 Web URIs 6-1 Figure For redirection, use of HTTP response 302 (Found) is not recommended because of a number of It is safer and more flexible to use HTTP response 307 inconsistent implementations in clients. (Temporary Redirect) since this has been implemented more consistently and also provides greater flexibility in changing redirections, since it is not cached by the client or web browser. Extraction step 6.2 , key qualifiers For extraction of elements from a GS1 Web URI , to extract GS1 identification keys and data values, a resolver may use a dedicated Web service or server -side script to parse the Web In situations where a resolver ht make use of extraction rules with regular expressions. URI or it mig redirects one URI to another URI, it should be possible to pass any additional key=value pairs from the query string of the first URI to the query string of the second URI, without loss of information. Furthermore, there may be some situations in which specific key=value pairs are used to assist with Content Negotiation, as a declarative way of requesting a redirection to a specific type of information resource of service, e.g. to say "I'd like the instruction manual for this product” (see ). section 5.4.7 6.3 Validation step Validation should be done for each extracted value. The actual validation steps to be performed data , a key qualifier or a depend on whether the extracted value is a GS1 identification key attribute. encoded characters to Before performing these validation tests, it is essential to convert any percent- Table 6- 1 their ASCII equivalent, as shown in , because some symbol characters have a special meaning when used within Web URIs and URLs and therefore need to be ‘escaped’ via percent encoding (see section 2.1 of RFC 3986 [PercentEncoding] ) when they are used literally. Table 6-1 Percent -encoding of symbol characters within Web URIs Name of character ASCII code (decimal) Percent -encoded Character %21 Exclamation mark 33 ! Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 41 of 54

42 GS1 Web URI Structure Standard -encoded Percent ASCII code (decimal) Name of character Character %23 # 35 Octothorpe (also known as Hash or US pound symbol ) %25 % 37 Percent %26 & 38 Ampersand Left bracket 40 ( %28 ) 41 Right bracket %29 %2A * 42 Asterisk 43 %2B + Plus Comma , 44 %2C 47 Solidus or %2F / Forward slash Check the length 6.3.1 For any value, check that its total number of digits or characters is within the limits in the ABNF grammar Section specified in 5.1 or within Figure 3.1 -1 of the GS1 General of this document Specifications [GENSPECS]. For example, if validating a GTIN value, the ABNF grammar states that the value should be exactly either 8, 12, 13 or 14 digits ( ) . value = 8DIGIT / 12DIGIT / 13DIGIT / 14DIGIT gtin- If v alidating a Batch/Lot number, the ABNF grammar states that the value should be up to 20 alphanumeric characters ( lot- value = 1*20XCHAR ) or N2+X..20 in Figure 3.1- 1 of the GS1 General Specifications [GENSPECS]. If validating a GTIN Serial number, the ABNF grammar states that the value should be up to 20 ) or alphanumeric characters ( ser- value = 1*20XCHAR N2+ X..20 in Figure 3.1- 1 of the GS1 General Specifications [GENSPECS]. Similar checks should be made for other key qualifiers and data attribute values. 6.3.2 Check the character set For any value, check that each character is within the character set specified in the ABNF grammar defined in Section 5.1 of this document or within Figure 3.1 -1 of the GS1 General Specifications [GENSPECS]. For example, if validating a GTIN value, the ABNF grammar states that the value should only consist of digits ( gtin- in Figure N2+N14 ) or value = 8DIGIT / 12DIGIT / 13DIGIT / 14DIGIT 3.1 -1 of the GS1 General Specifications [GENSPECS]. If validating a Batch/Lot number, the ABNF grammar states that the value should consist of alphanumeric characters in the 82 -character subset of ISO/IEC 646 (see Figure 7.11- 1 of the GS1 Gener al Specifications [GENSPECS]) ( lot- value = 1*20XCHAR ) or N2+X..20 in Figure 3.1- 1 of the GS1 General Specifications [GENSPECS]. The alphanumeric character set corresponding to Figure 7.11- 1 corresponds to the following regular expression [\x21- \x22\ x25- \x39\ x41- \x5A\ x5F\ x61- \x7A] The alphanumeric character set corresponding to Figure 7.11- 2 corresponds to the following regular expression \x39\ x30- x2F\ x2D\ \x5A] x41- [\x23\ Check the GS1 check digit (where appropriate) 6.3.3 identification key For any value that corresponds to a GS1 that has a GS1 check digit, perform the GS1 digit calculation appropriate to that identifier as specified in section 7.9 of the GS1 check Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 42 of 54

43 GS1 Web URI Structure Standard General Specifications [GENSPECS] and check that it matches the value of the digit at the position where the c digit should appear. heck keys do not include a check digit. Also note that the check digit is Note that some GS1 identification . Table 6- 2 not always the final digit of a GS1 identification key indicates which GS1 identification keys have a GS1 check digit - and its position within the identifier. Table Presence and position of GS1 check digit in various GS1 identification keys 6-2 GS1 identification key Check Digit present? Position of Check Digit GTIN Yes Final digit of GTIN -8, GTIN -12, GTIN -13 or GTIN -14 -13) 14 (calculated over digits 1 ITIP Yes SSCC Yes 18 (calculated over digits 1-17) GDTI Yes 13 (calculated over digits 1 -12) GLN Yes 13 (calculated over digits 1 -12) GRAI Yes 13 (calculated over digits 1 -12) GSRN Yes 18 (calculated over digits 1 -17) -P Yes 18 (calculated over digits 1 -17) GSRN -16) digits 1 GSIN Yes 17 (calculated over 13 (calculated over digits 1 Yes GCN -12) GIAI No CPID No No GMN Additionally, for values of the following data attributes, check digits should be checked , as shown in Table 6- 3 : 6-3 Table Position of GS1 check digit for various data attributes AI for data Gen Specs data Position of Check Digit title attribute 02 CONTENT Final digit of GTIN value -12) 410 SHIP TO LOC 13 (calculated over digits 1 BILL TO 13 (calculated over digits 1 411 -12) PURCHASE FROM 13 (calculated over digits 1 -12) 412 413 SHIP FOR LOC 13 (calculated over digits 1 -12) (calculated over digits 1 -12) 13 414 LOC No 415 PAY TO 13 (calculated over digits 1 -12) 416 PROD/SERV LOC -12) 13 (calculated over digits 1 Note : many of the validation checks on the length, character set and GS1 check digit (if any) can be performed at the time of inserting a redirection rule into the resolver for that specific identifier; the redirection will only happen for a specified identifier that is valid. Check the internal database of identifiers supported by this resolver 6.3.4 Some resolvers (especially those o perated by brand owners, manufacturers, retailers or service keys. providers) may only support a limited set of values for a limited range of GS1 identification or This internal database may be implemented as a database that is accessed by a validation script it may be implemented as an explicit literal string pattern appearing within a URI rewriting tool, e.g. site. within the configuration file of the company’s Web It may also be possible to perform validation GS1 registries of issued identifiers. using Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 43 of 54

44 GS1 Web URI Structure Standard 6.4 Resolution step Once the GS1 Web URI has been validated, a resolver may match specific identifiers , including extension identifiers of which it is aware, and redirect to Web URIs or URLs that were specified by ification key the respective licensee of a specific GS1 ident or GS1 Company Prefix. or GS1 Company Prefix by the ■ If no redirection was specified for that GS1 identification key respective licensee, a final stage of the process may do further checks of the Web URI syntax ormation from other sources. and also attempt to retrieve inf ■ If a syntax error is found, it should return an HTTP 400 response and an error page that explains the details of the syntax error. If no information nor redirection was found for the GS1 Web URI a 404 ‘Not Found’ response ■ code should be returned to the client. If the syntax is valid, it may attempt to retrieve some useful information from other services, ■ including some information about the product (potentially retrieved from GS1 Cloud) or about the licensee (potentially retr ieved from GEPIR.org) A note on HTTP response codes: 6.4.1 as in 302 (Found) or 307 (Temporary Redirect) is more appropriate than 301 (Moved Permanently) typical situations, flexibility is needed to update the redirection at any time; a 301 (Moved esponse is typically stored within a Web browser cache, which will generally mean Permanently) r that the Web browser will not discover any new redirection until the browser cache is cleared, whereas not cached. 307 (Temporary Redirect) are 302 and 6.4.2 When a resolver has on ly partial information best effort to redirect the request to a source of information or to return A resolver should make a information directly. There may be circumstances where the resolver is not able to complete the request, which can be for any number of reasons. There are a number of HTTP response codes that may be useful in providing an explanation as to why a request cannot be completed. These include 401 (Unauthorised) meaning that the client must be logged in, 402 (Payment Required) and 410 meaning that the identifier is no longer in use and the request should not be made again. (Gone) can be used to redirect to a resource that explains why the original request cannot 303 (See Other) be completed. The use of such response codes is optional but is encouraged to minimise the number of occasions response. (Not Found) when a request results in a 404 should use the most appropriate code for each circumstance [HTTPcodes]. Implementations 6.5 Examples of use This section contains examples of use of resolvers . It describes two ways of using resolvers: using the provided domain and replacing the domain to use alternative resolvers. 6.5.1 Using the provided domain to call the resolver In this first case the resolver is identified by the domain name contained in the GS 1 Web URI. To call this resolver the client simply needs to “go to this Web address”. Let’s assume an on pack QR code on product 1 containing a brand e xample.com managed GS1 Web URI such as . A customer scanning this QR code https://example.com/gtin/1234567891234 with a native QR code application (e.g., an iOS camera application) will reach the resolver at . This resolver then chooses what https://example.com experience should be served to the customer, for instance offering a page with a description of product 1. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 44 of 54

45 GS1 Web URI Structure Standard Simple resolution of a Web URI 6-2 Figure example.com might have sub- However, resolvers can also be chained. For instance, br and brands com example. sub. ) managing products with their own resolvers. In this case, brand (e.g., example.com might decide to redirect the client calling https://example.com/gtin/1234567891234 -brand resolver at to a more specific sub then com example. sub. . The website at https://sub.example.com/gtin/1234567891234 decides to serve a page with a promotion for product 1. Chained resolution for a Web URI Figure 6-3 In this example, the second resolver ( example. sub. com ) is capable of serving the request. However, further redirection (e.g., to a third or fourth resolver) is possible. In practice a large number of redirections should be avoided as each redirection needs to be called by the client leading to a slow response time and a poor consumer experience. 6.5.2 Replacing the domain to call an alternative resolver The following use cases make use of alternative resolvers rather than the resolvers provided by the brand owner or by GS1. They do so in order to be able to provide additional information from other parties, including information about price comparison, availability and promotions, as well as lated products that may be more suitable in some way. They may also link to comparisons with re independent accreditation agencies who certify claims about the product (such as organic status, At a technical level, these all beha fair trade status, sustainable sourcing etc.). ve in a similar way, Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 45 of 54

46 GS1 Web URI Structure Standard typically by extracting the path information and query string of the original Web URI and appending it to their own domain name or Web URI or passing these as input parameters to a Web resource that they operate, which may draw upon da ta from multiple sources and may use these to present data about the scanned product and related products in a format that is more convenient to the user or which provides additional benefits or additional insights for the benefit of the consumer. Figure Resolution with an alternative domain 6-4 6.5.3 Retailer operates their own resolver -scan terminals or the -store handheld self in-store WiFi or in A retailer may wish to configure its e of the retailer’s own resolver so that when a product is retailer’s own smartphone app to make us scanned, in order that the retailer can provide their information about the offer for the product, ing) or linking to including price, availability, promotional offers etc., as well as including (embedd product master data provided by the brand owner and potentially also by others (such as independent accreditation agencies). Figure Example in which a retailer operates their own resolver 6-5 being read from an existing UPC or EAN barcode but the a GTIN in plain syntax shows 6-5 Figure , GS1 QR Code same principles apply for other GS1 barcodes such as GS1 DataMatrix or GS1 . For any existing GS1 data carrier that encodes a that carry one or more element strings DataBar Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 46 of 54

47 GS1 Web URI Structure Standard primary GS1 identification key, it is possible to translate the corresponding element string s or plain esolver can redirect requests f A GS1 R GS1 Web URI. GS1 syntax into a reference or the reference Web URI to an alternative Web URI, such as one specified by the licensee of the respective GS1 identification key or GS1 Company Prefix. Alternatively, a GS1 Web URI might be encoded in any In that situation, it is possible to translate data carrier that can accommodate a URL or We b URI. from the GS1 Web URI to the corresponding element string, to support supply chain or retail applications that need that. The diagram also shows how a retailer may use their own resolver or proxy server to redirect requests to their own corresponding product pages, so that they can provide information about their offers for the product, including price, availability and promotions as well as opportunities for cross - selling, up -selling or alerting the con sumer to related products that may be of interest. Note that there are a limited number of opportunities through which a retailer can achieve such redirection. One scenario is when a consumer connects to in -store WiFi provided by the retailer. Another This limited scen ario is when a consumer uses a particular smartphone app provided by the retailer. ability for the retailer to redirect to their product offer page is independent of the kind of data carrier neric scanning app and uses their own data In other situations where a consumer uses a ge used. connectivity, they will normally directly access information resources and services specified by the respective brand owner, manufacturer or licensee of the GS1 identification key or GS1 Company n any information provided by any particular retailer. Prefix, rather tha This is a particularly important use case to consider because the manufacturer or brand owner will not know the details of every potentially seller of their product and will generally not be able to However, provide an outward link to each retailer and the retailer’s details about the product offer. each retailer can publish their own information about their offer for the product and can embed or published by the brand owner. link back to the product page and associated master data 6.5.3.1 Semantic implementation When considering machine -readable access to semantic structured data, it is worth noting that the schema.org vocabulary include s a data class that represents the retailer’s offer for a product ( ). It has an ‘ http://schema.org/Offer ’ property itemOffered ( http://schema.org/itemOffered ) that provides a semantic typed link to the corresponding Web URI that represents the product itself and the associated intrinsic product master data, as published by the brand owner. 6.5.4 Smartphone app for nutrition / dietary / allergen information A smartphone app that is focused on provision of customised nutrition and dietary information to a consumer may also be configured to use its own resolver to provide a different response to the consumer, rather than simply redirecting to the brand owner’s product page and associated master data. hat either makes a dynamic synchronous The provider of an app may provide a Web resource t query to the brand owner’s site (and possibly to other Web resources) to retrieve relevant data or it may have previously cached a recent copy of such data in its own internal database and provide that in response. Such an app may display such information to the user either in a similar format to how it appears on the product packaging or it may provide additional benefits, such as: Translation of the names of ingredients into the user’s local language (particularly useful if the ■ . user is shopping for food in a country where they don’t understand the local language) ■ Alerting the user to the health benefits/risks of the product (e.g. whether the product is high or . low in fat, sugar, calories etc.) potential allergens within the product. Alerting the user to This could also be custom configured ■ by the user for allergens that are particularly relevant to the user. Note that the filtering by -side within the app for privacy reasons , without any allergen may be performed entirely client real need to share such details with the back -end service that supports the app. ■ Using the product’s GTIN and GPC to find related products that are more nutritious / healthier or . more compatible with the user’s specific dietary needs Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 47 of 54

48 GS1 Web URI Structure Standard comparison apps Product 6.5.5 A smartphone app that is focused on comparison of products may be configured to use its own resolver to provide a different response to the consumer, rather than simply redirecting to the brand owner’s product page and associated master data. The provider of an app may provide a Web resource that either makes a dynamic synchronous query to the brand owner’s site (and possibly to other Web resources) to retrieve relevant data or it may have previously cached a recent copy of such data in its own internal database and provide that in response. Such an app may display such information to the user either in a similar format to how it appears on the product packaging or it may provide additional benefits, such as: ■ Details about current and histor ic online price comparison information for offers of the product, so that the user can find the best deals either online or in local physical stores and understand objectively how the current price compares with historic price fluctuations for that product ■ Information (product master data, price, availability etc.) about related products that are broadly similar (typically having the same GPC brick value) but which may be preferable in some way, such as: Healthier / more nutritious □ □ Locally sourced □ Source or manufactured in a way that is more: □ Environmentally friendly / sustainable □ Ethical / fair trade / cooperative Suitable for a particular diet □ Such product comparison apps may make use of data from multiple parties, including the brand owner, multiple retailers making offers for the product, as well as independent accreditation agencies (e.g. Marine Stewardship Council, Soil Association etc.) 7 Glossary The glossary lists the terms and definitions that are applied in this document. Please refer to the www.gs1.org/glossary for the online version Term Definition Source GENSPECS An element string that provides additional information about an entity attribute identified with a GS1 identification key, such as batch number associated with a Global Trade Item Number (GTIN). GENSPECS The organisation that owns the specifications of a trade item, regardless of brand owner where and by whom it is manufactured. The brand owner is normally responsible for the management of the Global Trade Item Number (GTIN). 5.2 Canonical GS1 Web The definitive GS1 Web URI for a given resource. See section URI An organizatio n which certifies that a product meets specific criteria (e.g., Certified information Fairtrade, Kosher, Halal, Electrical Rating) agency (also known as an 'accreditation agency') Consumer Often considered as the "recipient" of the supply chain in the past, today’s consumer is an active part of the supply chain and expects more data, with higher accuracy, and greater ease. An alphanumeric attribute of a GTIN assigned to a retail consumer trade item consumer product GENSPECS variant (CPV) variant for its lifetime. , Aug 2018 © 2018 GS1 Release Page 1.0 AISBL , Ratified 48 of 54

49 GS1 Web URI Structure Standard Source Term Definition Content Negotiation Content negotiation is a mechanism for offering information in different data formats and different languages. When a user agent (such as a browser) makes an HTTP request, it sends along some HTTP headers to indicate what data formats and language it prefers. The server then selects the best ma tch from its file system or generates the desired content on demand, and sends it back to the client. GENSPECS A field that contains a GS1 identification key, an RCN, or attribute information field data data titles Data titles are the abbreviated descri ptions of element strings which are used GENSPECS to support manual interpretation of barcodes. DataMatrix A standalone, two -dimensional matrix symbology that is made up of square modules arranged within a perimeter finder pattern. DataMatrix ISO version ECC 200 is the only version that supports GS1 system identification numbers, including the Function 1 Symbol Character (FNC1). DataMatrix symbols are read by two -dimensional imaging scanners or vision systems. The use of an appropriate access mechanism (e.g. Web request) to perform an Dereferencing a URI action on the URI's resource (e.g. to retrieve an information representation via HTTP GET or to send data to a resource via an HTTP POST operation). Dereferencing a URI is often considered synonymous with making a Web request or 'looking up' a URI on the Web. GENSPECS direct mode Mobile device information retrieval function when the barcode contains either the address (URL) of the content or service, or the content itself, in- line. A domain name is an identification string that defines a realm of administrative Domain name autonomy, authority or control within the Internet. Domain names are formed by the rules and procedures of the Domain Name System (DNS). Any name registered in the DNS is a do main name. Domain names are used in various networking contexts and application- specific naming and addressing purposes. Domain names provide a n abstraction layer that separates a registered name for an organisation or activity from the actual internet ad dresses (IP addresses) that provide its associated information services such as its Website, its e- mail server etc. The system that connects the domain names with the corresponding IP addresses is the Domain Name System (DNS). -13, UPC EAN/UPC barcode -E barcodes. -A, and UPC A family of barcodes including EAN -8, EAN Although UPC -E barcodes do not have a separate symbology identifier, they act symbology like a separate symbology through the scanning application software. See also -8 barcode, EAN -13 barcod e, UPC -A barcode, and UPC -E barcode. EAN element string The combination of a GS1 Application Identifier and GS1 Application Identifier GENSPECS data field. A means to represent data in a machine readable form; used to enable GENSPECS GS1 AIDC data automatic reading of the element strings as specified for use by GS1. carrier GS1 Application The field of two or more digits at the beginning of an element string that GENSPECS uniquely defines its format and meaning. identifier GS1 Application The data used in a business application defined by one GS1 Application GENSPECS identifier data Identifier. field GS1 barcode A data carrier which encodes GS1 Application Identifier element strings. GS1 All GS1 endorsed barcode symbologies that can encode more than a GTIN barcode using GS1 Application namely GS1 -128, GS1 DataMatrix, GS1 DataBar and Composite and GS1 QR Code. Identifiers GS1 DataBar The GS1 DataBar family consists of seven types of barcodes. Four of the barcodes are applied in scanning at retail point- of-sale (POS), two of which are able to carry additional information such as a serial number, lot number of expiry date. GS1 DataBar is also applied in general distribution and logistics environments. GENSPECS GS1 implementation specification for use of DataMatrix GS1 DataMatrix GS1 Digital Bridge A synonym for GS1 Resolver Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 49 of 54

50 GS1 Web URI Structure Standard Term Definition Source GS1 identification A unique identifier for a class of objects (e.g. a trade item) or an instance of an GENSPECS key object (e.g. a logistic unit). GS1 key qualifier A key qualifier is an additional attribute that is designated for use as part of a compound key (e.g., GTIN + serial number is a compound key, with the serial number being a key qualifier for the GTIN) SPECS GS1 implementation specification for use of QR Code GS1 QR Code GEN A Web server that is able to understand the GS1 Web URI syntax GS1 Resolver GS1 Web URI A Web URI conforming to the GS1 Web URI syntax. HTTP status codes digit integer code giving the result of the -code element is a three- The status attempt to understand and satisfy the request. Characters, such as letters and numbers, which can be read by persons and human readable GENSPECS interpretation (HRI) are encoded in GS1 AIDC data carriers confined to a GS1 standard structure and format. The human readable interpretation is a one -to-one illustration of the encoded data... A numeric or alphanumeric field intended to enable the recognition of one identification number GENSPECS entity versus another. Indirect mode tion when the code contains an Mobile device information retrieval func identifier, which needs to be resolved to obtain the content or service. Resolving an identifier means looking it up, typically at a network service, to determine the corresponding content or service. Internet application A company that provides an application or service available to consumers via provider an Internet- based platform (desktop or mobile), including Websites, smartphone apps etc. LGTIN (GTIN + (01) ] and A compound key formed from the combination of GTIN [ AI Lot/Batch) Batch/Lot identifier [ AI (10) ]. LGTIN is defined as an EPC Class URN in the current GS1 Tag Data Standard (v1.11), sections 6.4.1 and 7.14, which describes the mapping between the EPC Class URN format for LGTIN and the tring. corresponding element s -part string identifier that indicates a data format as a pair of type and Media Type (also A two subtype, e.g. image/jpeg, image/gif, image/png, text/html, text/rtf known as MIME type or Content type) Media types are sometimes also referred to as MIME types (MIME is an acronym of Multipurpose Internet Mail Extensions) or Content Types (after the HTTP header that indicates the Media type) Mobile scanning An approach to giving consumers access to additional information or services s through their mobile device. It is the ability to retrieve about trade item additional information about the trade item through mobile devices or in general between link a trade item with virtual information or services. Parsing The process of analysing the structure o f a sentence or URI structure in order to extract relevant information from it. Note that within the context of EPC URN structures, parsing refers to the ability to extract structural components within the EPC structure, e.g. for the purpose of matching ag ainst EPC URN patterns. A two -dimensional matrix symbology consisting of square modules arranged in QR Code® a square pattern. The symbology is characterised by a unique finder pattern located at three corners of the symbol. QR Code® symbols are read by two - dimensional imaging scanners or vision systems A GS1 Web URI that uses the id.gs1.org domain Reference GS1 Web URI Retailer An organization engaged in the sale and distribution of products to consumers. -tailers Also includes online retailers / e A compound key formed from the combination of a GTIN [AI (01) ] with Serial SGTIN (Serialised GTIN) Number [ AI (21) ] which provides globally unique identification for every instance of a product. The term SGTIN appears in section 6.3.1 and 7.1 of the current GS1 Tag Data Standard, v1.11 AISBL Release Page 1.0 , Ratified , Aug 2018 © 2018 GS1 50 of 54

51 GS1 Web URI Structure Standard Term Definition Source Subdomain A subdomain is a domain that is part of a main domain. Although example.com is a subdomain of the top -level domain (.com), we most often think of a subdomain as the part of the hostname that precedes the regis tered domain name. For example, the registered domain name gs1.org has one subdomain ('www') [ as in www.gs1.org ] that is used for its Website. It also has a subdomain (‘id’) [ as in id.gs1.org] that is used for Web -based data services for GS1. orm Resource Identifier. A string of characters used to identify a resource. Unif URI The resource may be an information resource such as a Web page or a thing in the real world, such as a physical object, person or location. URIs refer to the esource Names (URNs), Uniform Resource Locators superset of Uniform R (URLs) and Web URIs (which can function both as globally unambiguous names, while also behaving like URLs by enabling intuitive retrieval of related information via the Web). URI fragment fragment identifier component of a URI allows indirect identification of a The secondary resource by reference to a primary resource and additional identifier identifying information. The identified secondary resource may be some portion or subset of the primary resource , some view on representations of the primary resource, or some other resource defined or described by those representations. A fragment identifier component is indicated by the presence by the of an octothorpe / hash / number sign ("#") character and terminated end of the URI. A typical use of a URI fragment identifier is to provide a direct link to a specific section within a very long Web document such as fiers https://www.w3.org/TR/dwbp/#DataIdenti URI path information A path consists of a sequence of path segments separated by a slash ("/") character. A path is always defined for a URI, though the defined path may be empty (zero length). The path component contains data, usually organized in hierarchical form, that, along with data in the non- hierarchical query component, serves to identify a resource within the scope of the URI's scheme and naming authority (if any). The path is terminated by the first question mark ("?") or number sign ("#" ) character, or by the end of the URI. URI query string hierarchical data that, along with data in The query component contains non- the path component, serves to identify a resource within the scope of the URI's query component is indicated by scheme and naming authority (if any). The the first question mark ("?") character and terminated by a number sign ("#") character or by the end of the URI. URI resolution URI "resolution" is the process of determining an access mechanism and the appropriate parame ters necessary to dereference a URI; this resolution may require several iterations. URI resolver service A URI resolver service is any system that performs the resolution of a URI (see URI resolution) in order that it can be dereferenced (in order to support some kind of interaction with the corresponding resource, such as information retrieval). URI rewriting URI rewriting is a mechanism that provides a mapping between a logical address for an information resource (expressed via a URI) and the actual mechanism (such as a server -side script) that is used to retrieve the corresponding information resource. URL Uniform Resource Locator (URL), a specific type of URI colloquially known as Web address. A URL is a URI starting with http or https . , Aug 2018 © 2018 GS1 Release AISBL Page 1.0 , Ratified 51 of 54

52 GS1 Web URI Structure Standard 8 Referen ces Details Name ID GS1 System [ARCH] v7, GS1, February 2018 Architecture https://www.gs1.org/docs/architecture/GS1_System_Architecture.p df 7231 HTTP/1.1 Semantics ] [RFC https://tools.ietf.org/html/rfc7231#section -3.4 and Content, section 3.4 , "Content Negotiation" [DC] Dublin Core Metadata -terms/ http://dublincore.org/documents/dcmi Initiative [GS1 GS1 identification keys -keys https://www.gs1.org/standards/id identification keys] [GENSPECS] GS1 General v18, January 2018 Specifications https://www.gs1.org/sites/default/files/docs/barcodes/GS1_General _Specifications.pdf Geolocation API [Geolocation https://www.w3.org/TR/geolocation -API/ API] Specification 2nd Edition [GS1History] How we got here -got -here https://www.gs1.org/about/how -we The GS1 Web [GS1Voc] https://www.gs1.org/voc/ Vocabulary Hypertext Transfer [HTTPcodes] -sec10.html https://www.w3.org/Protocols/rfc2616/rfc2616 Protocol [RFC 2616], Section 10: Status Code Definitions [IANA Link List of defined Link ons/link -relations.xhtml https://www.iana.org/assignments/link -relati Relations] Relations, hosted by IANA. [IMP] Information https://www.w3.org/History/1989/proposal.html Management: A Proposal Internationalized [IRIs] https://tools.ietf.org/html/rfc3987 Resource Identifiers (IRIs) -based -LD] [JSON A JSON https://www.w3.org/TR/json -ld/ serialization for Linked Data [Linked Data] Linked Data, Tim https://www.w3.org/DesignIssues/LinkedData Lee, 2006 Berners- [PercentEncod Uniform Resource -2.1 https://tools.ietf.org/html/rfc3986#section ing] Identifier (URI): Generic Syntax, 2.1 section : Percent- Encoding Resource Description [RDF] https://www.w3.org/TR/rdf11 -primer/ Framework Primer Introduction to RDF [RDF Intro] https://www.w3.org/TR/NOTE -rdf -simple -intro Metadata Reserved Top Level [RFC 2606] https://tools.ietf.org/html/rfc2606 Domain Names , Ratified , Aug 2018 © 2018 GS1 Release AISBL Page 1.0 52 of 54

53 GS1 Web URI Structure Standard Details Name ID Uniform Resource [RFC 3986] https://tools.ietf.org/html/rfc3986 Identifier (URI): Generic Syntax Augmented BNF for [RFC 5234] https://tools.ietf.org/html/rfc5234 Syntax Specifications: ABNF Uri Template [RFC 6570] https://tools.ietf.org/html/rfc6570 [RFC 6596] The Canonical Link https://tools.ietf.org/html/rfc6596 Relation -Use Domain Special [RFC 6761] https://tools.ietf.org/html/rfc6761 Names [RFC 7232] HTTP/1.1 Conditional https://tools.ietf.org/html/rfc7232 Requests HTTP/1.1 [RFC 7235] https://tools.ietf.org/html/rfc7235 Authentication -Sensitive String Case [RFC 7405] https://tools.ietf.org/html/rfc7405 Support in ABNF Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 53 of 54

54 GS1 Web URI Structure Standard Intellectual property A Preliminary note Readers are reminded of the disclaimer included at the beginning of this document regarding the GS1 IP Policy, its application and scope. US Patent No. 8,590,776 GS1 has been made aware of US Patent No. 8,590,776 (for the purpose of this specific paragraph, the “Patent”). The Patent creates a system of identifiers and sample code. This sample code, in the section about the owner, contains a URI that may point to additional information concerning is attached to. The GS1 Web URI properties or rights reading on the physical object the code ifiers into the URI syntax. GS1 identifiers have been around Standard transforms existing GS1 ident for a long time [GS1 History] . The URI syntax to point to physical objects has been around since intro] 1997 RIs does not correspond identifiers to U . This means that transforming existing GS1 [RDF to the c laims that require additional information to be present at a specific point of the identifier. While the patented system encodes meta -information directly into the sample code, the GS1 Web ing and this has been -information from an HTTP server rts request more meta URI Standard suppo [IMP] . state of the art since 1989 US Patents No. 9,794,321 and 9,582,595 (United Kingdom) , the owner of the patents EVRYTHNG Limited of 122 East Road, London N16FB (for the purpose of this specific paragraph, the “Patents”), who participated ub-section in this s listed to the Work Group designing the GS1 Web URI Standard (Release 1.0), gave notice that the Patents ease 1.0), particularly in Web URI Standard (Rel may have relevance to implementations of the GS1 relation to implementing resolvers leveraging context to dynamically change redirections (related to section 4.5 of this s tandard ). The owners have acknowledged that the Patents do not contain any - Necessary Claims (as defined in the GS1 IP Policy) but have offered to grant a royalty free, non exclusive license to the Patents to users of the GS1 Web URI Standard (Release 1.0) , for use with their applications implementing it, and subject to (i) GS1 including a notice of the availability of the license in its documentation of the Standard, (ii) users who wish to benefit of the license registering with the owner to receive the lic ense (via https://evrythng.com/gs1 -license/) and (iii) such users including an acknowledgement of the use of the Patents in any of their applications that implement ts. For the the GS1 Web URI Standard. The term of the offered license will be for the life of the Paten avoidance of any doubt, this licensing offer pertains only to implementations of Release 1.0 of the GS1 Web URI Standard No. 9,864,889 US Patent EP3147890 and CN107016430 and pending applications US Patent applications 20180025195, EP3276503 and CN107065291 Mobi Lead SAS of 104 avenue de France, 75013 Paris (France), the owner of the granted patent and (for the purpose of this specific paragraph, the -section five patent applications listed in this sub “Patent and Patent Application s”) who participated to the Work Group designing the GS1 Web URI Standard (Release 1.0), gave notice in accordance with the GS1 IP Policy of certain Necessary Claims in relation to the GS1 Web URI Standard (Release 1.0). The use case descriptions mentioned in section 6.5.5 6.5.4 and spects that may be covered by the of the standard mention several a . The GS1 IP Policy is only applicable to Necessary Claims. and/or Patent Applications Patents Necessary Claims means all present, pending and hereafter acquired patent claims that would be necessarily infringed by implemen ting the Standard. A claim is necessarily infringed only when it is not possible to avoid such infringement because there is no non -infringing alternative for implementing the Standard. Given that the c laims of the Patents and/or Patent Applications only normative parts of the GS1 Web URI Standard (Release 1.0) GS1 Web URI , the concern non- (Release 1.0) can be implemented without necessarily infringing the Patent Standard and/or Patent Applications. Page Release 1.0 , Ratified , Aug 2018 © 2018 GS1 AISBL 54 of 54

Related documents

Fourth National Report on Human Exposure to Environmental Chemicals Update

Fourth National Report on Human Exposure to Environmental Chemicals Update

201 8 Fourth National Report on Human Exposure to Environmental Chemicals U pdated Tables, March 2018 , Volume One

More info »
Current APD Policy Manual 2017 1.5 issued 7 20 2017

Current APD Policy Manual 2017 1.5 issued 7 20 2017

APD Issued 2017-1.5 Manual Policy 7/20/2017 Austin Police Department Policy Manual CHIEF'S MESSAGE I am proud to present the newest edition of the Austin Police Department Policy Manual. The Policy Ma...

More info »
catalog 2019

catalog 2019

2019 ® HARLEY-DAVIDSON GENUINE MOTOR PARTS & ACCESSORIES

More info »
JO 7400.11C   Airspace Designations and Reporting Points

JO 7400.11C Airspace Designations and Reporting Points

U.S. DEPARTMENT OF TRANSPORTATION ORDER FEDERAL AVIATION ADMINISTRATION 7400.11C JO Air Traffic Organization Policy August 13, 2018 SUBJ: Airspace Designations and Reporting Points . This O rder, publ...

More info »
RIE Tenant List By Docket Number

RIE Tenant List By Docket Number

SCRIE TENANTS LIST ~ By Docket Number ~ Borough of Bronx SCRIE in the last year; it includes tenants that have a lease expiration date equal or who have received • This report displays information on ...

More info »
TS 124 501   V15.0.0   5G; Non Access Stratum (NAS) protocol for 5G System (5GS); Stage 3  (3GPP TS 24.501 version 15.0.0 Release 15)

TS 124 501 V15.0.0 5G; Non Access Stratum (NAS) protocol for 5G System (5GS); Stage 3 (3GPP TS 24.501 version 15.0.0 Release 15)

ETSI TS 124 501 V15.0.0 (2018-07) TECHNICAL SPECIFICATION 5G; Non-Access-Stratum (NAS) protocol for 5G System (5GS); Stage 3 (3GPP TS 24.501 version 15.0.0 Release 15)

More info »
IHE RAD TF Rev17 0 Vol1 FT 2018 07 27

IHE RAD TF Rev17 0 Vol1 FT 2018 07 27

Integrating the Healthcare Enterprise IHE Radiology (RAD) 5 Technical Framework Volume 1 10 IHE RAD TF -1 Integration Profiles 15 Revision 1 7.0 – Final Text 20 July 27, 2018 Please verify you have th...

More info »
IHE ITI TF Rev15.0 Vol1 FT 2018 07 24

IHE ITI TF Rev15.0 Vol1 FT 2018 07 24

Integrating the Healthcare Enterprise IHE IT Infrastructure (ITI) 5 Technical Framework Volume 1 (ITI TF -1) 10 Integration Profiles 15 Revision 1 20 5.0 – Final Text July 24, 201 8 which is published...

More info »
AT Commands Reference Guide

AT Commands Reference Guide

AT Commands Reference Guide GE863-QUAD, GE863-PY, GE863-GPS, GM862-QUAD, GM862-QUAD-PY, GE862-GPS, GE864-QUAD, GE864-PY, GC864-QUAD and GC864-PY 80000ST10025a Rev. 0 - 04/08/06

More info »
WEF GlobalInformationTechnology Report 2014

WEF GlobalInformationTechnology Report 2014

Insight Report The Global Information Technology Report 2014 Rewards and Risks of Big Data Beñat Bilbao-Osorio, Soumitra Dutta, and Bruno Lanvin, Editors

More info »
2018+Government+in+the+Sunshine+Manual

2018+Government+in+the+Sunshine+Manual

2018 GOVERNMENT-IN-THE-SUNSHINE MANUAL GOVERNMENT-IN- THE-SUNSHINE MANUAL 2018 Edition A Reference For Compliance with Florida’s Public Records and Open Meetings Laws Volume 40

More info »
OCS Operations Field Directory

OCS Operations Field Directory

Gulf of Mexico OCS Region OCS Operations Field Directory (Includes all active and expired fields and leases) Quarterly Repor t, as of March 31 , 201 9 U.S. Department of the Interior Bureau of Ocean E...

More info »
UNSCEAR 2008 Report Vol.I

UNSCEAR 2008 Report Vol.I

This publication contains: VOLUME I: SOURCES SOURCES AND EFFECTS Report of the United Nations Scientific Committee on the Effects of Atomic Radiation to the General Assembly OF IONIZING RADIATION Scie...

More info »
CompleteBusBook

CompleteBusBook

February 10, 2019 $ 1 BUS BOOK EFFECTIVE THROUGH JUNE 8, 2019 OCBus.com EFECTIVO HASTA EL 8 DE JUNIO 2019 EASY JUST GOT EASIER. Upgrade to version 2.0 See back for cool new features! CHANGE HIGHLIGHTS...

More info »
OperatorHoursReport

OperatorHoursReport

John Bel Edwards Rebekah E. Gee MD, MPH SECRETARY GOVERNOR State of Louisiana Louisiana Department of Health Office of Public Health Certified Water and Wastewater Operators 2018 - 2019 Hours Hours li...

More info »
dbi

dbi

REGISTERED DEPUTY BUILDING INSPECTORS LICENSE TYPE LICENSE NO. EXPIRE DATE DEPUTY BUILDING INSPECTOR P002118 ABBATOYE, CHRIS J. CASTAIC, CA 91384 (661) 312-9347 CONCRETE 09/01/2019 CONSTRUCTION 03/12/...

More info »
vol9 organic ligands

vol9 organic ligands

C HERMODYNAMICS HEMICAL T OMPOUNDS AND C OMPLEXES OF OF C U, Np, Pu, Am, Tc, Se, Ni and Zr O ELECTED WITH RGANIC L IGANDS S Wolfgang Hummel (Chairman) Laboratory for Waste Management Paul Scherrer Ins...

More info »
CityNT2019TentRoll 1

CityNT2019TentRoll 1

STATE OF NEW YORK 2 0 1 9 T E N T A T I V E A S S E S S M E N T R O L L PAGE 1 VALUATION DATE-JUL 01, 2018 COUNTY - Niagara T A X A B L E SECTION OF THE ROLL - 1 CITY - North Tonawanda TAX MAP NUMBER ...

More info »
Strong Start for Mothers and Newborns Evaluation: Year 5 Project Synthesis Volume 1: Cross Cutting Findings

Strong Start for Mothers and Newborns Evaluation: Year 5 Project Synthesis Volume 1: Cross Cutting Findings

g Star t f or Mothe rs and Newbor ns Evaluation: Stron YNTHESIS ROJECT S AR 5 P YE Volume 1 indings -Cutting F ross : C Prepared for: ss Caitlin Cro -Barnet Center fo HS nd Medicaid Innovation, DH r M...

More info »