The current official version of the GS1 Web vocabualary is published at https://www.gs1.org/voc. It is an external extension to schema.org that allows further details about products and assets to be expressed using Linked Data technology. gs1:Product is semantically equivalent to schema:Product. The GS1 Web vocabulary also defines subclasses of gs1:Product
The GS1 Web vocabulary is released under an Apache 2.0 licence. A further licence statement is provided within the GS1 Web vocabulary files.
This repository is intended to encourage suggestions for improvements to the GS1 Web Vocabulary. Please note the license terms (Apache 2.0).
Files in this repository are arranged as follows.
- An immutable copy of each ratified version of the GS1 Web Vocabulary is stored in a directory that gives the version number.
- There is a copy of the current version provided in the root directory so there is a stable URI from which the current version can be obtained, in addition to the formally published version on gs1.org. In case of any discrepency, the formally published version at https://www.gs1.org/voc/ is authoritative.
- There is a 'patch' file that just contains informally proposed terms.
- A copy of the current file plus the patch is also included.
- Each file is made available in both Turtle and JSON-LD.
Most terms within the GS1 Web vocabulary can usually be classified as one of the following:
One use of a class (rdfs:Class, owl:Class) is to express an entity such as a product, organization, place, postal address.
Another use of a class is to provide a repeatable data structure as a container for a number of interdependent properties.
For example, a gs1:QuantitativeValue or schema:QuantitativeValue express both a numeric value and a code for a unit of measure.
Similarly, gs1:CertificationDetails is used to group interdependent properties such as gs1:certificationAgency , gs1:certificationStandard and gs1:certificationValue so that when a product has more than one certification, there is no ambiguity about which standard was evaluated by which agency - or which value was obtained for each standard.
Some classes are defined as subclasses of other classes.
For example,
gs1:FoodBeverageTobaccoProduct is a subclass of gs1:Product
gs1:FruitsVegetables is a subclass of gs1:FoodBeverageTobaccoProduct
By defining subclasses, we can 'attach' more specialised properties that are relevant to the subclass but not generally relevant to all members of the parent class / superclass.
Browse all classes within the GS1 Web vocabulary
Each property has an expected value type (indicated via rdfs:range)
Each property also has an 'attachment point' (indicated via rdfs:domain)
A property that could apply to all kinds of products will generally have an rdfs:domain of gs1:Product / schema:Product
Other properties that are only really relevant to a more specialised category of products will have an rdfs:domain that is a subclass of gs1:Product (such as gs1:WearableProduct ) or even a subclass of a subclass of gs1:Product (such as gs1:Footwear )
For example,
gs1:isSeedless is a property of gs1:FruitsVegetables - and it probably has little relevance to any other kind of product.
Formally, the GS1 Web vocabulary expresses that gs1:isSeedless has an rdfs:domain of gs1:FruitsVegetables.
Browse all properties within the GS1 Web vocabulary
The GS1 Web vocabulary defines a large number of code lists for enumerated values. Code lists are useful because a globally defined URI can be used for each permitted value. Each of these URIs may have multilingual labels and descriptions in different human languages but we agree to use the global URI to express the value, to avoid the need to translate 'free text' values expressed in different human languages when exchanging data globally using such code lists.
Each code list is modelled as a class (rdfs:Class, owl:Class) and as a subclass of gs1:TypeCode, the abstract superclass for all GS1 Code Lists within the GS1 Web vocabulary.
For example, gs1:SharpnessOfCheeseCode is a subclass of gs1:TypeCode
Browse all code lists within the GS1 Web vocabulary
Each defined value within a code list has its own Web URI and may have multilingual human labels and descriptions. Membership of a particular code list is indicated via rdf:type
For example, gs1:SharpnessOfCheeseCode-EXTRA_SHARP is an individual code value within the gs1:SharpnessOfCheeseCode code list.
Its rdf:type is gs1:SharpnessOfCheeseCode, the code list to which it belongs.
The GS1 Web vocabulary introduced a group of additional properties that connect a GS1 Digital Link URI to a target resource URL, such as a product information page, instruction manual, related video, electronic patient information leaflet for a pharmaceutical etc.
Each link type property expresses a distinct kind of information resource found at the target resource URL.
In this way, a Web request to a resolver for GS1 Digital Link URI can specify a particular kind of information resource that is desired, e.g. 'give me the instruction manual'. The Link Type is typically expressed as a compact URI expression (CURIE) within the URI query string, as the value of the special 'linkType' key. It is also expressed in the linkset of results returned by a resolver conforming to the GS1 Digital Link standard.
The GS1 Web vocabulary defines one abstract property, gs1:linkType.
All specific link type values are defined as a subproperty of gs1:linkType.
For example, gs1:instructions is a subproperty of gs1:linkType
gs1:instructions is a typed link that is used to link to instructions related to the product, such as assembly instructions, usage tips etc.