Skip to content

Change type of hasTopic in Subscription and hasLogisticsObjectType in Notification to xsd#AnyURI

At the moment, ne-one server expects api:hasTopic to be of type http://www.w3.org/2001/XMLSchema#string see https://git.openlogisticsfoundation.org/wg-digitalaircargo/ne-one/-/blob/bba8c3f87d6a7d6ace279d991cf7ed32530614b9/src/main/java/org/openlogisticsfoundation/neone/model/handler/SubscriptionHandler.java#L28

The same holds true for api:hasLogisticsObjectType in https://git.openlogisticsfoundation.org/wg-digitalaircargo/ne-one/-/blob/bba8c3f87d6a7d6ace279d991cf7ed32530614b9/src/main/java/org/openlogisticsfoundation/neone/model/handler/NotificationHandler.java#L25

However, according to the API ontology, hasTopic and hasLogisticsObjectType must be of type http://www.w3.org/2001/XMLSchema#anyURI see https://github.com/IATA-Cargo/ONE-Record/blob/master/working_draft/API/ONE-Record-API-Ontology.ttl#L419 and https://github.com/IATA-Cargo/ONE-Record/blob/master/working_draft/API/ONE-Record-API-Ontology.ttl#L310

For example,

{
  "@context": {
    "cargo": "https://onerecord.iata.org/ns/cargo#",
    "api": "https://onerecord.iata.org/ns/api#"
  },
  "@id": "https://1r.example.com/subscriptions/5f1a4869-e324-45b1-9ab0-60271ba54185",
  "@type": "api:Subscription",
  "api:hasContentType": "application/ld+json",
  "api:hasSubscriber": {
    "@id": "https://1r.example.com/logistics-objects/957e2622-9d31-493b-8b8f-3c805064dbda"
  },
  "api:hasTopicType": {
    "@id": "api:LOGISTICS_OBJECT_IDENTIFIER"
  },
  "api:includeSubscriptionEventType": [
    {
      "@id": "api:LOGISTICS_OBJECT_UPDATED"
    },
    {
      "@id": "api:LOGISTICS_OBJECT_CREATED"
    },
    {
      "@id": "api:LOGISTICS_EVENT_RECEIVED"
    }
  ],
  "api:hasTopic": {
    "@type": "http://www.w3.org/2001/XMLSchema#anyURI",
    "@value": "https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c"
  }
}

Source: https://iata-cargo.github.io/ONE-Record/subscriptions/

{
    "@context": {        
        "api": "https://onerecord.iata.org/ns/api#"
    },
    "@type": "api:Notification",    
    "api:hasEventType": {
        "@id": "api:LOGISTICS_OBJECT_CREATED"
    },
    "api:hasLogisticsObject": {
        "@id": "https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c"
    },
    "api:hasLogisticsObjectType": {
        "@type": "http://www.w3.org/2001/XMLSchema#anyURI",
        "@value": "https://onerecord.iata.org/ns/cargo#Piece"
    },
    "api:isTriggeredBy": {
        "@id": "https://1r.example.com/action-requests/599fea49-7287-42af-b441-1fa618d2aaed"
    }
}

Source: https://iata-cargo.github.io/ONE-Record/notifications/

Edited by Daniel A. Doeppner