version 1.5

Changes log from version 1.3

  • changes prefix according to ontology
  • rdfs:label was replaced by dfc-b description on CutomerCategory
  • units were added
  • context on @id was made more easier
  • change @context with static.datafoodconsortium.org instead datafoodconsortium.org
  • ProductType reference system
  • Patch example

GET User Data

{
"@context": {
"dfc-b": "http://static.datafoodconsortium.org/ontologies/dfc_FullModel.owl#",
"dfc-p": "http://static.datafoodconsortium.org/ontologies/DFC_ProductOntology.owl#",
"dfc-u": "http://static.datafoodconsortium.org/data/units.rdf#",
"dfc-pt": "http://static.datafoodconsortium.org/data/types.rdf#",
"dfc-p:hasUnit":{
"@type":"@id"
},
"dfc-p:hasType":{
"@type":"@id"
},
"dfc-b:references":{
"@type":"@id"
},
"dfc-b:offeredThroug":{
"@type":"@id"
},
"dfc-b:offeredTo":{
"@type":"@id"
},
"@base": "http://maPlateformeNationale"
},
"@id": "/person/personId",
"@type": "dfc-b:Person",
"dfc-b:familyName": "Doe",
"dfc-b:firtsName": "Jhon",
"dfc-b:hasAdress": {
"@type": "dfc-b:Address",
"dfc-b:city": "",
"dfc-b:country": "",
"dfc-b:postcode": "",
"dfc-b:street": ""
},
"dfc-b:affiliates": [
{
"@id": "/entreprise/entrepriseId",
"@type": "dfc-b:Entreprise",
"dfc-b:VATnumber": "",
"dfc-b:defines": [
{
"@id": "/customerCategory/customerCategoryId1",
"@type": "dfc-b:CustomerCategory",
"dfc-b:description": "member"
},
{
"@id": "/customerCategory/customerCategoryId2",
"@type": "dfc-b:CustomerCategory",
"dfc-b:description": "non member"
}
],
"dfc-b:supplies": [
{
"@id": "/suppliedProduct/item3",
"@type": "dfc-b:SuppliedProduct",
"dfc-p:hasUnit": "dfc-u:u",
"dfc-b:quantity": "99.99",
"dfc-p:hasType": "dfc-pt:egg",
"dfc-b:description": "supply description 1",
"dfc-b:totalTheoriticalStock": "999",
"dfc-b:brand": "supply brand",
"dfc-b:claim": "supply claim",
"dfc-b:image": "supply image url",
"dfc-b:lifeTime": "supply lifeTime",
"dfc-b:physicalCharacterisctics": "supply physical characterisctics"
},
{
"@id": "/suppliedProduct/item4",
"@type": "dfc-b:SuppliedProduct",
"dfc-p:hasUnit": "dfc-u:u",
"dfc-b:quantity": "1",
"dfc-p:hasType": "dfc-pt:strawberry",
"dfc-b:description": "supply description 2",
"dfc-b:totalTheoriticalStock": "999",
"dfc-b:brand": "supply brand",
"dfc-b:claim": "supply claim",
"dfc-b:image": "supply image url",
"dfc-b:lifeTime": "supply lifeTime",
"dfc-b:physicalCharacterisctics": "supply physical characterisctics"
}
],
"dfc-b:manages": [
{
"@id": "/catalogItem/catalogItemId1",
"@type": "dfc-b:CatalogItem",
"dfc-b:references": "/suppliedProduct/item3",
"dfc-b:sku": "catalog item gtin or sku",
"dfc-b:stockLimitation": "999",
"dfc-b:offeredThrough": [
{
"@id": "/offer/offerId1",
"@type": "dfc-b:Offer",
"dfc-b:offeresTo": "/customerCategory/customerCategoryId1",
"dfc-b:price": "0",
"dfc-b:stockLimitation": "999"
},
{
"@id": "/offer/offerId2",
"@type": "dfc-b:Offer",
"dfc-b:offeresTo": "/customerCategory/customerCategoryId2",
"dfc-b:price": "999",
"dfc-b:stockLimitation": "999"
}
]
},
{
"@id": "/catalogItem/catalogItemId2",
"@type": "dfc-b:CatalogItem",
"dfc-b:sku": "catalog item gtin or sku",
"dfc-b:stockLimitation": "999",
"dfc-b:references": "/suppliedProduct/item4",
"dfc-b:offeredThrough": [
{
"@id": "/offer/offerId3",
"@type": "dfc-b:Offer",
"dfc-b:offeresTo": "/customerCategory/customerCategoryId1",
"dfc-b:price": "000",
"dfc-b:stockLimitation": "999"
},
{
"@id": "/offer/offerId4",
"@type": "dfc-b:Offer",
"dfc-b:offeresTo": "/customerCategory/customerCategoryId2",
"dfc-b:price": "999",
"dfc-b:stockLimitation": "999"
}
]
}
]
}
]
}

Patch Catalog item

HTTP PATCH at uri provided by previous example :
PATCH http://maPlateformeNationale/catalogItem/catalogItemId1
{
"@context": {
"dfc-b": "http://static.datafoodconsortium.org/ontologies/dfc_FullModel.owl#",
"dfc-u": "http://static.datafoodconsortium.org/data/units.rdf#",
"dfc-p": "http://static.datafoodconsortium.org/ontologies/DFC_ProductOntology.owl#",
"dfc-b:references":{
"@type":"@id"
},
"dfc-b:b:offeredThrough":{
"@type":"@id"
},
"@base": "http://maPlateformeNationale"
},
"@type": "dfc-b:CatalogItem",
"dfc-b:references": "/suppliedProduct/item3",
"dfc-b:sku": "an other catalog item gtin or sku",
"dfc-b:stockLimitation": "10",
"dfc-b:offeredThrough": ["/customerCategory/customerCategoryId1";"/customerCategory/customerCategoryId2"]
}
LDP is atomic. Platform have to request and accept atomic request . One request has one subject scope. For example if offer have to be updated , a other request have to be executed. Same mechanism for all subject as SuppliedProduct.
PATCH http://maPlateformeNationale/offer/offerId1
{
"@context": {
"dfc-b": "http://static.datafoodconsortium.org/ontologies/dfc_FullModel.owl#",
"dfc-p": "http://static.datafoodconsortium.org/ontologies/DFC_ProductOntology.owl#",
"dfc-u": "http://static.datafoodconsortium.org/data/units.rdf#",
"dfc-p:hasUnit":{
"@type":"@id"
},
"dfc-b:references":{
"@type":"@id"
},
"dfc-b:offeresTo":{
"@type":"@id"
},
"@base": "http://maPlateformeNationale"
},
"@type": "dfc-b:Offer",
"dfc-b:offeresTo": "/customerCategory/customerCategoryId1",
"dfc-b:price": "20",
"dfc-b:stockLimitation": "5"
}