Skip to content

Bridge Technical Exhibits

10. Bridge technical exhibits

10.1 Illustrative OWL bridge axioms

Where a reviewed source and target property are semantically and structurally equivalent, the compiled OWL bridge module may contain axioms such as:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix gs1: <https://ref.gs1.org/voc/> .
@prefix gdsn: <https://example.org/generated-gdsn/> .

## Illustrative only. Production source properties shall use reviewed mappings
## to the real generated GDSN IRIs.

gs1:ingredientStatement
    owl:equivalentProperty gdsn:reviewedIngredientStatementProperty .

The example demonstrates compilation form, not approval of a specific mapping.

10.2 Manchester Syntax model

The source baseline included a human-readable Manchester Syntax model. The consolidated form below separates stable classes and properties from conditional rules:

Prefix: : <https://example.org/gs1-product-holon-bridge#>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Prefix: gs1: <https://ref.gs1.org/voc/>
Prefix: gdsn: <https://example.org/generated-gdsn/>
Prefix: gpc: <https://example.org/generated-gpc/>
Prefix: schema: <https://schema.org/>

Ontology: <https://example.org/gs1-product-holon-bridge>

Class: gdsn:TradeItem
Class: gpc:FoodBeverage
Class: gpc:CheeseCheeseSubstitutes
    SubClassOf: gpc:FoodBeverage
Class: gpc:CheeseFrozen
    SubClassOf: gpc:CheeseCheeseSubstitutes,
                gdsn:TradeItem

Class: schema:Product
Class: gs1:Product
Class: schema:PropertyValue

ObjectProperty: gdsn:nutrientDetail
    Domain: gdsn:TradeItem

DataProperty: gdsn:nutrientTypeCode
DataProperty: gdsn:quantityContained
DataProperty: schema:calories
DataProperty: schema:fatContent
DataProperty: schema:proteinContent
DataProperty: schema:sodiumContent

ObjectProperty: gpc:hasAttribute
    Domain: gdsn:TradeItem

ObjectProperty: schema:additionalProperty
    Range: schema:PropertyValue

DataProperty: schema:propertyID
DataProperty: schema:name
DataProperty: schema:value

The source listing also contained a representative Gouda ABox. Its purpose was to demonstrate the distinction between the TBox, Product Holon instance data and properties deliberately left without direct EquivalentTo axioms.

The baseline noted that the Manchester Syntax file had been hand-checked against the grammar but not parsed by a formal Manchester parser. It should therefore be treated as an explanatory exhibit until parser validation is recorded.

10.3 DL-safe nutrient rules

The following rules express Route 2 derivations. Syntax varies between rule engines; the logical content is:

TradeItem(?product) ^
nutrientDetail(?product, ?detail) ^
nutrientTypeCode(?detail, "ENERC") ^
quantityContained(?detail, ?quantity)
  -> calories(?product, ?quantity)

TradeItem(?product) ^
nutrientDetail(?product, ?detail) ^
nutrientTypeCode(?detail, "FAT") ^
quantityContained(?detail, ?quantity)
  -> fatContent(?product, ?quantity)

TradeItem(?product) ^
nutrientDetail(?product, ?detail) ^
nutrientTypeCode(?detail, "PRO-") ^
quantityContained(?detail, ?quantity)
  -> proteinContent(?product, ?quantity)

TradeItem(?product) ^
nutrientDetail(?product, ?detail) ^
nutrientTypeCode(?detail, "NA") ^
quantityContained(?detail, ?quantity)
  -> sodiumContent(?product, ?quantity)

All variables bind to named Product Holon individuals already present in the ABox. The rule module should be independently versioned and imported by the bridge ontology.

10.4 Consolidated SPARQL transform rules

The source baseline executed the following representative rules. Namespace values are illustrative and shall be replaced by compiled real IRIs in production.

PREFIX gdsn:   <https://example.org/gdsn/>
PREFIX gpc:    <https://example.org/gpc/>
PREFIX schema: <https://schema.org/>
PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>

## Route 2 — fixed, one rule per NutrientTypeCode with a schema.org target

CONSTRUCT { ?product schema:calories ?qty }
WHERE {
  ?product gdsn:nutrientDetail ?n .
  ?n gdsn:nutrientTypeCode "ENERC" ;
     gdsn:quantityContained ?qty .
}

CONSTRUCT { ?product schema:fatContent ?qty }
WHERE {
  ?product gdsn:nutrientDetail ?n .
  ?n gdsn:nutrientTypeCode "FAT" ;
     gdsn:quantityContained ?qty .
}

CONSTRUCT { ?product schema:proteinContent ?qty }
WHERE {
  ?product gdsn:nutrientDetail ?n .
  ?n gdsn:nutrientTypeCode "PRO-" ;
     gdsn:quantityContained ?qty .
}

CONSTRUCT { ?product schema:sodiumContent ?qty }
WHERE {
  ?product gdsn:nutrientDetail ?n .
  ?n gdsn:nutrientTypeCode "NA" ;
     gdsn:quantityContained ?qty .
}

## Route 3 — one generic rule for GPC facts

CONSTRUCT {
  ?product schema:additionalProperty [
    a schema:PropertyValue ;
    schema:propertyID ?attr ;
    schema:name ?label ;
    schema:value ?value
  ]
}
WHERE {
  ?product gpc:hasAttribute ?attr .
  ?attr rdfs:label ?label ;
        gpc:value ?value .
}

## Route 3 — generic residual nutrient rule

CONSTRUCT {
  ?product schema:additionalProperty [
    a schema:PropertyValue ;
    schema:propertyID ?code ;
    schema:value ?qty
  ]
}
WHERE {
  ?product gdsn:nutrientDetail ?n .
  ?n gdsn:nutrientTypeCode ?code ;
     gdsn:quantityContained ?qty .
  FILTER(?code NOT IN ("ENERC", "FAT", "PRO-", "NA"))
}

In the final architecture, these substantive transforms may be compiled as DL-safe rules where the chosen reasoner supports them, leaving SPARQL as a thin export layer. The executed SPARQL remains valuable as a deterministic reference and regression oracle.

10.5 Thin export query pattern

Where the reasoner has already materialised the approved target properties, a thin export query may select only the target profile:

PREFIX schema: <https://schema.org/>
PREFIX gs1: <https://ref.gs1.org/voc/>

CONSTRUCT {
  ?product a schema:Product ;
           ?property ?value .
}
WHERE {
  ?product a schema:Product ;
           ?property ?value .
  VALUES ?property {
    schema:gtin
    gs1:ingredientStatement
    schema:calories
    schema:fatContent
    schema:proteinContent
    schema:sodiumContent
    schema:additionalProperty
  }
}

The actual allow-list belongs to a versioned publication profile.

10.6 Worked Web Vocabulary/schema.org projection

The source baseline used the following logical projection for the Gouda example:

{
  "@context": {
    "gs1": "https://ref.gs1.org/voc/",
    "schema": "https://schema.org/"
  },
  "@id": "https://example.com/01/09506000134352",
  "@type": "schema:Product",
  "schema:gtin": "09506000134352",
  "gs1:ingredientStatement": "Pasteurised milk, salt, rennet, cheese cultures.",
  "schema:nutrition": {
    "@type": "schema:NutritionInformation",
    "schema:calories": "1500 kJ",
    "schema:fatContent": "28 g",
    "schema:proteinContent": "24 g",
    "schema:sodiumContent": "620 mg"
  },
  "schema:additionalProperty": [
    {
      "@type": "schema:PropertyValue",
      "schema:propertyID": "gdsn:NutrientTypeCode-CA",
      "schema:name": "Calcium",
      "schema:value": "700 mg"
    },
    {
      "@type": "schema:PropertyValue",
      "schema:propertyID": "gpc:20000031",
      "schema:name": "Type of Cheese",
      "schema:value": "GOUDA"
    },
    {
      "@type": "schema:PropertyValue",
      "schema:propertyID": "gpc:20000192",
      "schema:name": "Firmness of Cheese",
      "schema:value": "FIRM/SEMI-HARD"
    }
  ]
}

The example is an illustrative output structure. Every first-class target term and source-to-target mapping still requires the governance process described above.

10.7 Product and Offer composition

A marketplace representation should compose product and commercial facts as separate objects:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "gtin": "09506000134352",
  "name": "Illustrative Gouda",
  "offers": [
    {
      "@type": "Offer",
      "seller": { "@type": "Organization", "name": "Seller A" },
      "price": "4.50",
      "priceCurrency": "GBP",
      "availability": "https://schema.org/InStock"
    },
    {
      "@type": "Offer",
      "seller": { "@type": "Organization", "name": "Seller B" },
      "price": "4.75",
      "priceCurrency": "GBP",
      "availability": "https://schema.org/InStock"
    }
  ]
}

The price and availability are not manufacturer Product Holon facts unless the manufacturer is also the seller and is authoritative for the offer.