Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GS1 EPCIS Events #552

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
$linkedData:
term: EPCISAggregationEvent
'@id': https://ref.gs1.org/epcis/AggregationEvent
title: EPCIS Aggregation Event
description: The event type AggregationEvent describes events that apply to objects that have been aggregated to one another. In such an event, there is a set of 'contained' objects that have been aggregated within a 'containing' entity that's meant to identify the aggregation itself. This event type is intended to be used for 'aggregations', meaning an association where there is a strong physical relationship between the containing and the contained objects such that they will all occupy the same location at the same time, until such time as they are disaggregated.
type: object
properties:
type:
oneOf:
- type: array
items:
type: string
enum:
- EPCISAggregationEvent
bizLocation:
title: Business Location
description: The business location where the objects associated with the EPCs may be found, until contradicted by a subsequent event.
$ref: ./Place.yml
$linkedData:
term: bizLocation
'@id': https://ref.gs1.org/epcis/bizLocation
bizStep:
title: Business Step
description: The business step of which this event was a part.
type: string
$linkedData:
term: bizStep
'@id': https://ref.gs1.org/epcis/bizStep
additionalProperties: false
example: |-
{
"type": ["EPCISAggregationEvent"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
$linkedData:
term: EPCISAssociationEvent
'@id': https://ref.gs1.org/epcis/AssociationEvent
title: EPCIS Association Event
description: The event type AssociationEvent describes the association or disassociation of one or several physical objects with a parent object or a specific physical location. Like the AggregationEvent, the AssociationEvent is also used to capture associations where there is a strong physical relationship between the containing and the contained objects such that they will all occupy the same location at the same time, until such time as they are disaggregated. However, the AggregationEvent does not allow for associations of objects with physical locations; if action is DELETE while omitting the childEPC and childQuantityList field, all contained children are disaggregated from the containing parent. Because there are situations in which associations are more permanent, i.e. beyond the physical flow of goods (e.g. packing/unpacking and loading/unloading), an AssociationEvent SHOULD be used (a) when objects need to be associated with a physical location or (b) when the parent object could also be subject to other, more temporary associations (i.e. captured using AggregationEvent).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description: The event type AssociationEvent describes the association or disassociation of one or several physical objects with a parent object or a specific physical location. Like the AggregationEvent, the AssociationEvent is also used to capture associations where there is a strong physical relationship between the containing and the contained objects such that they will all occupy the same location at the same time, until such time as they are disaggregated. However, the AggregationEvent does not allow for associations of objects with physical locations; if action is DELETE while omitting the childEPC and childQuantityList field, all contained children are disaggregated from the containing parent. Because there are situations in which associations are more permanent, i.e. beyond the physical flow of goods (e.g. packing/unpacking and loading/unloading), an AssociationEvent SHOULD be used (a) when objects need to be associated with a physical location or (b) when the parent object could also be subject to other, more temporary associations (i.e. captured using AggregationEvent).
description: The event type AssociationEvent describes the association or disassociation of one or several physical objects with a parent object or a specific physical location. Like the AggregationEvent, the AssociationEvent is used to capture associations where there is a strong physical relationship between the containing and the contained objects, such that they will all occupy the same location at the same time, until such time as they are disaggregated. However, the AggregationEvent does not allow for associations of objects with physical locations; if action is DELETE while omitting the childEPC and childQuantityList field, all contained children are disaggregated from the containing parent. Because there are situations in which associations are more permanent, i.e., beyond the physical flow of goods (e.g., packing/unpacking and loading/unloading), an AssociationEvent SHOULD be used (a) when objects need to be associated with a physical location or (b) when the parent object could also be subject to other, more temporary associations (i.e., captured using AggregationEvent).

type: object
properties:
type:
oneOf:
- type: array
items:
type: string
enum:
- EPCISAssociationEvent
bizLocation:
title: Business Location
description: The business location where the objects associated with the EPCs may be found, until contradicted by a subsequent event.
$ref: ./Place.yml
$linkedData:
term: bizLocation
'@id': https://ref.gs1.org/epcis/bizLocation
bizStep:
title: Business Step
description: The business step of which this event was a part.
type: string
$linkedData:
term: bizStep
'@id': https://ref.gs1.org/epcis/bizStep
additionalProperties: false
example: |-
{
"type": ["EPCISAssociationEvent"],
"bizLocation": {
"type": ["Place"],
"id": "urn:epc:id:sgln:4012345.00002.0",
"globalLocationNumber": "4012345.00002.0"
},
"bizStep": "assembling"
}
39 changes: 39 additions & 0 deletions docs/openapi/components/schemas/common/EPCISDocument.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
$linkedData:
term: EPCISDocument
'@id': https://ref.gs1.org/epcis/EPCISDocument
title: EPCIS Document
description: An EPCISDocument is a means to transport a collection of EPCIS events, optionally accompanied by relevant master data, as a single electronic document. It is used by the concrete bindings of the EPCIS Capture Interface. In addition, trading partners may by mutual agreement use it as a single electronic document.
type: object
properties:
type:
oneOf:
- type: array
items:
type: string
enum:
- EPCISDocument
eventList:
title: Event List
description: List of EPCIS events included in a document, connects EPCISDocumentBody to EPCISEvent
type: array
items:
- $ref: ./EPCISEvent.yml
$linkedData:
term: eventList
'@id': https://ref.gs1.org/epcis/eventList
additionalProperties: false
example: |-
{
"type": ["EPCISDocument"],
"eventList": [
{
"type": ["EPCISAssociationEvent"],
"bizLocation": {
"type": ["Place"],
"id": "urn:epc:id:sgln:4012345.00002.0",
"globalLocationNumber": "4012345.00002.0"
},
"bizStep": "assembling"
}
]
}
23 changes: 23 additions & 0 deletions docs/openapi/components/schemas/common/EPCISEvent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
$linkedData:
term: EPCISEvent
'@id': https://w3id.org/traceability#EPCISEvent
title: EPCIS Event
description: A logistics event. This is a common superclass (base type) for all EPCIS events. All of the more specific event types are subclasses of EPCISEvent.
anyOf:
- $ref: ./EPCISObjectEvent.yml
- $ref: ./EPCISAggregationEvent.yml
- $ref: ./EPCISAssociationEvent.yml
- $ref: ./EPCISTransactionEvent.yml
- $ref: ./EPCISTransformationEvent.yml

additionalProperties: false
example: |-
{
"type": ["EPCISAssociationEvent"],
"bizLocation": {
"type": ["Place"],
"id": "urn:epc:id:sgln:4012345.00002.0",
"globalLocationNumber": "4012345.00002.0"
},
"bizStep": "assembling"
}
33 changes: 33 additions & 0 deletions docs/openapi/components/schemas/common/EPCISObjectEvent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
$linkedData:
term: EPCISObjectEvent
'@id': https://ref.gs1.org/epcis/ObjectEvent
title: EPCIS Object Event
description: An ObjectEvent captures information about an event pertaining to one or more physical or digital objects identified by instance-level (EPC) or class-level (EPC Class) identifiers. In most situations, an ObjectEvent is envisioned to represent an actual observations of objects, but strictly speaking it can be used for any event a Capturing Application wants to assert about objects, including for example capturing the fact that an expected observation failed to occur.
type: object
properties:
type:
oneOf:
- type: array
items:
type: string
enum:
- EPCISObjectEvent
bizLocation:
title: Business Location
description: The business location where the objects associated with the EPCs may be found, until contradicted by a subsequent event.
$ref: ./Place.yml
$linkedData:
term: bizLocation
'@id': https://ref.gs1.org/epcis/bizLocation
bizStep:
title: Business Step
description: The business step of which this event was a part.
type: string
$linkedData:
term: bizStep
'@id': https://ref.gs1.org/epcis/bizStep
additionalProperties: false
example: |-
{
"type": ["EPCISObjectEvent"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
$linkedData:
term: EPCISTransactionEvent
'@id': https://ref.gs1.org/epcis/TransactionEvent
title: EPCIS Transaction Event
description: The event type TransactionEvent describes the association or disassociation of physical or digital objects to one or more business transactions. While other event types have an optional bizTransactionList field that may be used to provide context for an event, the TransactionEvent is used to declare in an unequivocal way that certain objects have been associated or disassociated with one or more business transactions as part of the event.
type: object
properties:
type:
oneOf:
- type: array
items:
type: string
enum:
- EPCISTransactionEvent
bizLocation:
title: Business Location
description: The business location where the objects associated with the EPCs may be found, until contradicted by a subsequent event.
$ref: ./Place.yml
$linkedData:
term: bizLocation
'@id': https://ref.gs1.org/epcis/bizLocation
bizStep:
title: Business Step
description: The business step of which this event was a part.
type: string
$linkedData:
term: bizStep
'@id': https://ref.gs1.org/epcis/bizStep
additionalProperties: false
example: |-
{
"type": ["EPCISAssociationEvent"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
$linkedData:
term: EPCISTransformationEvent
'@id': https://ref.gs1.org/epcis/TransformationEvent
title: EPCIS Transformation Event
description: A TransformationEvent captures information about an event in which one or more physical or digital objects identified by instance-level (EPC) or class-level (EPC Class) identifiers are fully or partially consumed as inputs and one or more objects identified by instance-level (EPC) or class-level (EPC Class) identifiers are produced as outputs. The TransformationEvent captures the relationship between the inputs and the outputs, such that any of the inputs may have contributed in some way to each of the outputs.
type: object
properties:
type:
oneOf:
- type: array
items:
type: string
enum:
- EPCISTransformationEvent
bizLocation:
title: Business Location
description: The business location where the objects associated with the EPCs may be found, until contradicted by a subsequent event.
$ref: ./Place.yml
$linkedData:
term: bizLocation
'@id': https://ref.gs1.org/epcis/bizLocation
bizStep:
title: Business Step
description: The business step of which this event was a part.
type: string
$linkedData:
term: bizStep
'@id': https://ref.gs1.org/epcis/bizStep
additionalProperties: false
example: |-
{
"type": ["EPCISTransformationEvent"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
$linkedData:
term: EPCISDocumentCertificate
'@id': https://w3id.org/traceability#EPCISDocumentCertificate
title: Commercial Invoice Certificate
tags:
- eCommerce
description: >-
The document recording a transaction between the seller and the buyer. Commercial invoices are normally prepared by sellers.
The commercial invoice on itself does not grant any ownership of the goods, unless it has an attached document proving the importer's payment for the total amount. The number of copies of the invoice (both original and copies) required for the delivery of the goods, must be agreed with the importer. Usually, invoices are issued with the original and two copies. Although normally the legislation in different countries does not limit the number of originals, it is not advisable to make more than those strictly necessary in order to accomplish with the customs needs required by the buyer. It is advisable that the importer confirms with the exporter all data that the invoice must provide before its issuing, as well as the particularities it must include in order to accomplish with the regulation of the destination country.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The commercial invoice on itself does not grant any ownership of the goods, unless it has an attached document proving the importer's payment for the total amount. The number of copies of the invoice (both original and copies) required for the delivery of the goods, must be agreed with the importer. Usually, invoices are issued with the original and two copies. Although normally the legislation in different countries does not limit the number of originals, it is not advisable to make more than those strictly necessary in order to accomplish with the customs needs required by the buyer. It is advisable that the importer confirms with the exporter all data that the invoice must provide before its issuing, as well as the particularities it must include in order to accomplish with the regulation of the destination country.
In itself, the commercial invoice does not grant any ownership of the goods, unless it has an attached document proving the importer's payment for the total amount. The number of copies of the invoice (both original and copies) required for the delivery of the goods, must be agreed with the importer. Usually, invoices are issued with the original and two copies. Although normally the legislation in different countries does not limit the number of originals, it is not advisable to make more than those strictly necessary in order to comply with the customs needs required by the buyer. It is advisable that the importer confirm with the exporter all data that the invoice must provide before its issuing, as well as the particularities it must include in order to comply with the regulation of the destination country.

(source: Olegario Llamazares: Dictionary Of International Trade, Key definitions of 2000 trade terms and acronyms).
type: object
properties:
'@context':
type: array
items:
type: string
enum:
- https://www.w3.org/2018/credentials/v1
- https://w3id.org/traceability/v1
type:
type: array
items:
type: string
enum:
- VerifiableCredential
- EPCISDocumentCertificate
id:
type: string
name:
type: string
description:
type: string
issuanceDate:
type: string
issuer:
$ref: ../common/Organization.yml
credentialSubject:
$ref: ../common/EPCISDocument.yml
proof:
type: object
additionalProperties: false
required: []
example: |-
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/traceability/v1"
],
"type": [
"VerifiableCredential",
"EPCISDocumentCertificate"
],
"issuanceDate": "2022-08-30T10:00:00Z",
"issuer": {
"type": [
"Organization"
],
"id": "did:key:z6MktHQo3fRRohk44dsbE76CuiTpBmyMWq2VVjvV6aBSeE3U"
},
"credentialSubject": {
"type": [
"EPCISDocument"
],
"eventList": [
{
"type": [
"EPCISAssociationEvent"
],
"bizLocation": {
"type": [
"Place"
],
"id": "urn:epc:id:sgln:4012345.00002.0",
"globalLocationNumber": "4012345.00002.0"
},
"bizStep": "assembling"
}
]
},
"proof": {
"type": "Ed25519Signature2018",
"created": "2022-08-30T11:34:04Z",
"verificationMethod": "did:key:z6MktHQo3fRRohk44dsbE76CuiTpBmyMWq2VVjvV6aBSeE3U#z6MktHQo3fRRohk44dsbE76CuiTpBmyMWq2VVjvV6aBSeE3U",
"proofPurpose": "assertionMethod",
"jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..FXuRpeEXcN_bj_gm0fNlQ8LJt9DkK7RMDzUpgFE4i-Wh2FjvOVNrHwjrPgbMM-DaGRDzNg0UVkoH8nnZ35WZCA"
}
}