From 4a562d0e7fc459485ca7b100a8f9f87b69cdbace Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Mon, 3 Jul 2023 15:25:06 +1000 Subject: [PATCH] Add workaround for updated DFC v1.8 URLs Once the DFC Connector was updated we can all use the new URLs. But for now we have the old ones and add some compatibility to the old ones. --- lib/data_food_consortium/connector/importer.rb | 17 +++++++++++++++++ .../connector/importer_spec.rb | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/data_food_consortium/connector/importer.rb b/lib/data_food_consortium/connector/importer.rb index 606e302835..0808ba2b4a 100644 --- a/lib/data_food_consortium/connector/importer.rb +++ b/lib/data_food_consortium/connector/importer.rb @@ -22,6 +22,13 @@ module DataFoodConsortium args = Array.new(number_of_required_args) type_uri = clazz.new(*args).semanticType result[type_uri] = clazz + + # Add support for the new DFC v1.8 URLs: + new_type_uri = type_uri.gsub( + "http://static.datafoodconsortium.org/ontologies/DFC_BusinessOntology.owl#", + "https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_BusinessOntology.owl#" + ) + result[new_type_uri] = clazz end end @@ -73,6 +80,13 @@ module DataFoodConsortium property_id = statement.predicate.value value = resolve_object(statement.object) + # Hacky support of new DFC v1.8 ids: + unless subject.hasSemanticProperty?(property_id) + property_id = property_id.gsub( + "https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_BusinessOntology.owl#", + "http://static.datafoodconsortium.org/ontologies/DFC_BusinessOntology.owl#" + ) + end return unless subject.hasSemanticProperty?(property_id) property = subject.__send__(:findSemanticProperty, property_id) @@ -98,6 +112,9 @@ module DataFoodConsortium id = object.value.sub( "http://static.datafoodconsortium.org/data/measures.rdf#", "dfc-m:" + ).sub( + "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/measures.rdf#", + "dfc-m:" ) SKOSParser.concepts[id] end diff --git a/spec/lib/data_food_consortium/connector/importer_spec.rb b/spec/lib/data_food_consortium/connector/importer_spec.rb index e14674596a..4b4b3b7800 100644 --- a/spec/lib/data_food_consortium/connector/importer_spec.rb +++ b/spec/lib/data_food_consortium/connector/importer_spec.rb @@ -130,7 +130,7 @@ describe DataFoodConsortium::Connector::Importer, vcr: true do expect(result.totalTheoreticalStock).to eq 3 end - xit "imports an object with DFC v1.8 context" do + it "imports an object with DFC v1.8 context" do result = connector.import(product_data_with_context_v1_8) expect(result.class).to eq DataFoodConsortium::Connector::SuppliedProduct