diff --git a/CHANGELOG.md b/CHANGELOG.md index e056750..d66d2e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,11 @@ Ruby: - Add Import method reading JSON and returning objects. - Add `SEMANTIC_TYPE` constant to every semantic class. +Php: +- Add vocabulary thesaurus in tests. +- Add fetch method in `Connector`. +- Set default prefix value in `Connector` for dfc-f, dfc-m, dfc-pt and dfc-v. + ### Fixed Ruby: @@ -21,6 +26,9 @@ Ruby: - Enable loading of measures v1.0.2 (6ef17f7d4a19aebd9d89b544db115d36f7e6fe93). - Improve SKOS Concept parsing ([PR #10](https://github.com/datafoodconsortium/connector-codegen/pull/10)). +Php: +- Fix missing `$` in variable name and missing `->` in `generateAdderBody`. + ### Changed Ruby: diff --git a/src/org/datafoodconsortium/connector/codegen/php/operation.mtl b/src/org/datafoodconsortium/connector/codegen/php/operation.mtl index 7342266..4a5ae8d 100644 --- a/src/org/datafoodconsortium/connector/codegen/php/operation.mtl +++ b/src/org/datafoodconsortium/connector/codegen/php/operation.mtl @@ -59,7 +59,7 @@ if ($other) { [let parameter: Parameter = operation.getInputParameter()] [let property: Property = operation.getProperty(aClass)] [let map: String = property.getMapping()] -[if (parameter.type.isPrimitive())]this.addSemanticPropertyLiteral("[map/]", [parameter.name/]);[else]$this->addSemanticPropertyReference("[map/]", $[parameter.name/]);[/if][/let][/let][/let] +[if (parameter.type.isPrimitive())]$this->addSemanticPropertyLiteral("[map/]", $[parameter.name/]);[else]$this->addSemanticPropertyReference("[map/]", $[parameter.name/]);[/if][/let][/let][/let] [/template] [template public generateGetterBody(aClass: Class, operation: Operation)] diff --git a/src/org/datafoodconsortium/connector/codegen/php/static/CHANGELOG.md b/src/org/datafoodconsortium/connector/codegen/php/static/CHANGELOG.md index a5a59b1..b9933ba 100644 --- a/src/org/datafoodconsortium/connector/codegen/php/static/CHANGELOG.md +++ b/src/org/datafoodconsortium/connector/codegen/php/static/CHANGELOG.md @@ -7,18 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.0-beta3] - 2024-01-31 + +### Added + +- Support phone number and social media. +- Add logo to Agent. +- Add latitude, longitude and region to Address. +- Add hasFulfilmentStatus, hasOrderStatus and hasPaymentStatus to Order. +- Add `AsPlannedTransformation` loop. +- Add `Connector:fetch` and `IConnector:fetch`. +- Add default prefix value for dfc-f, dfc-m, dfc-pt and dfc-v. + +### Changed + +- Update Readme. + ## [1.0.0-beta2] - 2023-09-19 ### Fixed - Allow [hyphen in prefix](https://github.com/sweetrdf/easyrdf/issues/32). -### Updated - -- Update virtual-assembly/semantizer to version 1.0.0-beta2. - ### Changed +- Update virtual-assembly/semantizer to version 1.0.0-beta2. - Change prefix of all mapped objects from "dfc" to "dfc-b". - Use "dfc-b" prefix in the `Connector` class. @@ -31,6 +44,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Initial release. -[unreleased]: https://github.com/datafoodconsortium/connector-php/compare/v1.0.0-beta1...HEAD +[unreleased]: https://github.com/datafoodconsortium/connector-php/compare/v1.0.0-beta3...HEAD +[1.0.0-beta3]: https://github.com/datafoodconsortium/connector-php/compare/v1.0.0-beta2...v1.0.0-beta3 [1.0.0-beta2]: https://github.com/datafoodconsortium/connector-php/compare/v1.0.0-beta1...v1.0.0-beta2 [1.0.0-beta1]: https://github.com/datafoodconsortium/connector-php/releases/tag/v1.0.0-beta1 diff --git a/src/org/datafoodconsortium/connector/codegen/php/static/README.md b/src/org/datafoodconsortium/connector/codegen/php/static/README.md index 4631ec6..36e1d6d 100644 --- a/src/org/datafoodconsortium/connector/codegen/php/static/README.md +++ b/src/org/datafoodconsortium/connector/codegen/php/static/README.md @@ -26,18 +26,19 @@ You can then load our different SKOS taxonomies providing the corresponding JSON $connector->import("/path/to/measures.json"); $connector->import("/path/to/facets.json"); $connector->import("/path/to/productTypes.json"); +$connector->import("/path/to/vocabulary.json"); ``` These taxonomies are accessible directly from the connector, like: ```PHP // Example of a facet -$fruit = $connector->fetch("dfcf:Fruit"); +$fruit = $connector->fetch("dfc-f:Fruit"); // Example of an measure -$kilogram = $connector->fetch("dfcm:Kilogram"); +$kilogram = $connector->fetch("dfc-m:Kilogram"); // Example of a product type -$tomato = $connector->fetch("dfcpt:RoundTomato"); +$tomato = $connector->fetch("dfc-pt:RoundTomato"); ``` ## Object creation @@ -59,21 +60,21 @@ $allergenCharacteristic = new AllergenCharacteristic( connector: $connector, // You have to pass a reference to the connector. value: 1, unit: $kilogram, - allergenDimension: $connector->fetch("dfcm:Peanuts"); + allergenDimension: $connector->fetch("dfc-m:Peanuts"); ); $nutrientCharacteristic = new NutrientCharacteristic( connector: $connector, // You have to pass a reference to the connector. value: 10, unit: $gram, - nutrientDimension: $connector->fetch("dfcm:Calcium") + nutrientDimension: $connector->fetch("dfc-m:Calcium") ); $physicalCharacteristic = new PhysicalCharacteristic({ connector: $connector, // You have to pass a reference to the connector. value: 100, unit: $gram, - physicalDimension: $connector->fetch("dfcm:Weight") + physicalDimension: $connector->fetch("dfc-m:Weight") }); $catalogItem = new CatalogItem({ @@ -85,21 +86,21 @@ $suppliedProduct = new SuppliedProduct({ connector: onnector, // You have to pass a reference to the connector. semanticId: "http://myplatform.com/tomato", description: "Awesome tomato", - productType: $connector->fetch("dfcpt:RoundTomato"), + productType: $connector->fetch("dfc-pt:RoundTomato"), quantity: $quantity, totalTheoreticalStock: 2.23, alcoholPercentage: 0, lifetime: "a week", - claims: [$connector->fetch("dfcf:NoAddedSugar")], + claims: [$connector->fetch("dfc-f:NoAddedSugar")], usageOrStorageConditions: "free text", allergenCharacteristics: [$allergenCharacteristic], nutrientCharacteristics: [$nutrientCharacteristic], physicalCharacteristics: [$physicalCharacteristic], - geographicalOrigin: $connector->fetch("dfcf:CentreValLoire"), + geographicalOrigin: $connector->fetch("dfc-f:CentreValLoire"), catalogItems: [$catalogItem], - certifications: [$connector->fetch("dfcf:OrganicAB"), $connector->fetch("dfcf:OrganicEU")], - natureOrigin: [$connector->fetch("dfcf:PlantOrigin")], - partOrigin: [$connector->fetch("dfcf:Fruit")] + certifications: [$connector->fetch("dfc-f:OrganicAB"), $connector->fetch("dfc-f:OrganicEU")], + natureOrigin: [$connector->fetch("dfc-f:PlantOrigin")], + partOrigin: [$connector->fetch("dfc-f:Fruit")] }); ``` @@ -116,6 +117,9 @@ $suppliedProduct = new SuppliedProduct({ - `OrderLine` - `Person` - `PhysicalCharacteristic` +- `PlannedConsumptionFlow` +- `PlannedProductionFlow` +- `PlannedTransformation` - `Price` - `QuantitativeValue` - `Quantity` @@ -127,7 +131,7 @@ $suppliedProduct = new SuppliedProduct({ ## Object accessors and mutators ### Read object properties (accessor) -You can read the properties of an objet using getter methods. +You can read the properties of an object using getter methods. ```PHP $suppliedProduct->getDescription(); @@ -153,7 +157,7 @@ $suppliedProduct->setQuantity(new QuantitiveValue(connector: $connector, unit: $ You can also add a value to properties that are array: ```PHP // Add a new certification to the product -$suppliedProduct->addCertification($connector->fetch("dfcf:AocFR")); +$suppliedProduct->addCertification($connector->fetch("dfc-f:AocFR")); ``` ## Export objects @@ -270,4 +274,42 @@ Connector::setFetchFunction(\Closure $fetch); Connector::setFactory(IFactory $factory); ``` -See the [Semantizer](https://github.com/assemblee-virtuelle/semantizer-php) documentation for more details. \ No newline at end of file +See the [Semantizer](https://github.com/assemblee-virtuelle/semantizer-php) documentation for more details. + +## Examples + +### Planned transformation loop + +```php +$connector = new Connector(); +$connector->import("./test/thesaurus/measures.json"); +$connector->import("./test/thesaurus/vocabulary.json"); + +$quantity = new Quantity( + connector: $connector, + unit: $connector->fetch("dfc-m:Kilogram"), + value: 1.0 +); + +$consumptionFlow = new PlannedConsumptionFlow( + connector: $connector, + semanticId: "http://example.org/consumptionFlow", + quantity: $quantity +); + +$productionFlow = new PlannedProductionFlow( + connector: $connector, + semanticId: "http://example.org/productionFlow", + quantity: $quantity +); + +$transformation = new PlannedTransformation( + connector: $connector, + semanticId: "http://example.org/transformation", + consumptionFlow: $consumptionFlow, + productionFlow: $productionFlow, + transformationType: $connector->fetch("dfc-v:combine") +); + +echo $connector->export([$transformation, $consumptionFlow, $productionFlow]); +``` \ No newline at end of file diff --git a/src/org/datafoodconsortium/connector/codegen/php/static/src/Connector.php b/src/org/datafoodconsortium/connector/codegen/php/static/src/Connector.php index c936cb6..a040e96 100644 --- a/src/org/datafoodconsortium/connector/codegen/php/static/src/Connector.php +++ b/src/org/datafoodconsortium/connector/codegen/php/static/src/Connector.php @@ -3,8 +3,8 @@ namespace DataFoodConsortium\Connector; use \VirtualAssembly\Semantizer\Semantizer; +use \VirtualAssembly\Semantizer\Semanticable; use \VirtualAssembly\Semantizer\IFactory; -use \VirtualAssembly\Semantizer\SemanticObjectAnonymous; class Connector implements IConnector { @@ -15,6 +15,10 @@ public function __construct() { $this->semantizer = new Semantizer(); $this->setFactory(new ConnectorFactory($this)); $this->setPrefix("dfc-b", "https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_BusinessOntology.owl#"); + $this->setPrefix("dfc-f", "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/facets.rdf#"); + $this->setPrefix("dfc-m", "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/measures.rdf#"); + $this->setPrefix("dfc-pt", "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/productTypes.rdf#"); + $this->setPrefix("dfc-v", "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#"); $this->context = ["https://www.datafoodconsortium.org"]; } @@ -55,6 +59,11 @@ public function export(Array $objects, Array $context = null): string { return $this->getSemantizer()->export($objects, $context); } + public function fetch(string $semanticId): Semanticable { + $expanded = $this->getSemantizer()->expand($semanticId); // allow to use prefixed id, like "dfc-m:Kilogram". + return $this->getSemantizer()->fetch($expanded); + } + /** * The data can be supplied directly as string, by passing a file * path, or by passing a URL. diff --git a/src/org/datafoodconsortium/connector/codegen/php/static/src/IConnector.php b/src/org/datafoodconsortium/connector/codegen/php/static/src/IConnector.php index 1cf8a44..664a3c1 100644 --- a/src/org/datafoodconsortium/connector/codegen/php/static/src/IConnector.php +++ b/src/org/datafoodconsortium/connector/codegen/php/static/src/IConnector.php @@ -3,10 +3,12 @@ namespace DataFoodConsortium\Connector; use \VirtualAssembly\Semantizer\Semantizer; +use \VirtualAssembly\Semantizer\Semanticable; interface IConnector { public function export(Array $objects): string; + public function fetch(string $semanticId): Semanticable; public function import(string $data, string $baseUri): Array; public function getSemantizer(): Semantizer; diff --git a/src/org/datafoodconsortium/connector/codegen/php/static/test/thesaurus/vocabulary.json b/src/org/datafoodconsortium/connector/codegen/php/static/test/thesaurus/vocabulary.json new file mode 100644 index 0000000..c9077b1 --- /dev/null +++ b/src/org/datafoodconsortium/connector/codegen/php/static/test/thesaurus/vocabulary.json @@ -0,0 +1,350 @@ +{ + "@graph" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#", + "@type" : [ "http://www.w3.org/2002/07/owl#Ontology" ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Cancelled", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#OrderState" + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#PaymentState" + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#FulfilmentState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Cancelled" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Complete", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#OrderState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Complete" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary", + "@type" : [ "http://www.w3.org/2004/02/skos/core#ConceptScheme" ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "DFC_Vocabulary" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Draft", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#OrderState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Draft" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Fulfilled", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#FulfilmentState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Fulfilled" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#FulfilmentState", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#States" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Fulfilment state" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Held", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#OrderState" + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#FulfilmentState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Held" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#OrderState", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#States" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Order state" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Paid", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#PaymentState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Paid" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#PaymentState", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#States" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Payment state" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#States", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "States" + } ], + "http://www.w3.org/2004/02/skos/core#topConceptOf" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Unfulfilled", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#FulfilmentState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Unfulfilled" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#Unpaid", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#PaymentState" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Unpaid" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#accept", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "accept" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#c_734fc709", + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "FulfilmentState" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#combine", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "combine" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#consume", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "consume" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#dropoff", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "dropoff" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#lower", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "lower" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#modify", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "modify" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#move", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "move" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#pickup", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "pickup" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#produce", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "produce" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#raise", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "raise" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#separate", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "separate" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "Transformation type" + } ], + "http://www.w3.org/2004/02/skos/core#topConceptOf" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ] + }, { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#use", + "@type" : [ "http://www.w3.org/2004/02/skos/core#Concept" ], + "http://www.w3.org/2004/02/skos/core#broader" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#transformationType" + } ], + "http://www.w3.org/2004/02/skos/core#inScheme" : [ { + "@id" : "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/vocabulary.rdf#DFC_Vocabulary" + } ], + "http://www.w3.org/2004/02/skos/core#prefLabel" : [ { + "@language" : "en", + "@value" : "use" + } ] + } ] +} \ No newline at end of file