Use cached DFC context

This commit is contained in:
Maikel Linke
2023-08-03 14:30:08 +10:00
parent 32cc776725
commit ff359664a9
5 changed files with 58 additions and 185 deletions

View File

@@ -1,5 +1,6 @@
# frozen_string_literal: true
require_relative "context"
require_relative "importer"
module DataFoodConsortium

View File

@@ -0,0 +1,56 @@
# frozen_string_literal: true
# Preload the DFC context.
#
# Similar to: https://github.com/ruby-rdf/json-ld-preloaded/
module DataFoodConsortium
module Connector
class Context < JSON::LD::Context
VERSION_1_8 = JSON.parse <<~JSON
{
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"skos" : "http://www.w3.org/2004/02/skos/core#",
"dfc": "https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_FullModel.owl#",
"dc": "http://purl.org/dc/elements/1.1/#",
"dfc-b": "https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_BusinessOntology.owl#",
"dfc-p": "https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_ProductGlossary.owl#",
"dfc-t": "https://github.com/datafoodconsortium/ontology/releases/latest/download/DFC_TechnicalOntology.owl#",
"dfc-m": "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/measures.rdf#",
"dfc-pt": "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/productTypes.rdf#",
"dfc-f": "https://github.com/datafoodconsortium/taxonomies/releases/latest/download/facets.rdf#",
"ontosec": "http://www.semanticweb.org/ontologies/2008/11/OntologySecurity.owl#",
"dfc-p:hasUnit":{ "@type":"@id" },
"dfc-b:hasUnit":{ "@type":"@id" },
"dfc-b:hasQuantity":{ "@type":"@id" },
"dfc-p:hasType":{ "@type":"@id" },
"dfc-b:hasType":{ "@type":"@id" },
"dfc-b:references":{ "@type":"@id" },
"dfc-b:referencedBy":{ "@type":"@id" },
"dfc-b:offeres":{ "@type":"@id" },
"dfc-b:supplies":{ "@type":"@id" },
"dfc-b:defines":{ "@type":"@id" },
"dfc-b:affiliates":{ "@type":"@id" },
"dfc-b:hasCertification":{ "@type":"@id" },
"dfc-b:manages":{ "@type":"@id" },
"dfc-b:offeredThrough":{ "@type":"@id" },
"dfc-b:hasBrand":{ "@type":"@id" },
"dfc-b:hasGeographicalOrigin":{ "@type":"@id" },
"dfc-b:hasClaim":{ "@type":"@id" },
"dfc-b:hasAllergenDimension":{ "@type":"@id" },
"dfc-b:hasNutrientDimension":{ "@type":"@id" },
"dfc-b:hasPhysicalDimension":{ "@type":"@id" },
"dfc:owner":{ "@type":"@id" },
"dfc-t:hostedBy":{ "@type":"@id" },
"dfc-t:hasPivot":{ "@type":"@id" },
"dfc-t:represent":{ "@type":"@id" }
}
JSON
add_preloaded("http://www.datafoodconsortium.org/") { parse(VERSION_1_8) }
alias_preloaded(
"http://static.datafoodconsortium.org/ontologies/context.json",
"http://www.datafoodconsortium.org/"
)
end
end
end

View File

@@ -91,13 +91,6 @@ RSpec.configure do |config|
expectations.syntax = :expect
end
config.around(:each, vcr: true) do |example|
# The DFC Connector fetches the context when loaded.
VCR.use_cassette("dfc-context") do
example.run
end
end
# Enable caching in any specs tagged with `caching: true`.
config.around(:each, :caching) do |example|
caching = ActionController::Base.perform_caching

File diff suppressed because one or more lines are too long

View File

@@ -3,7 +3,7 @@
require 'spec_helper'
require Rails.root.join('lib/data_food_consortium/connector/connector')
describe DataFoodConsortium::Connector::Importer, vcr: true do
describe DataFoodConsortium::Connector::Importer do
let(:connector) { DataFoodConsortium::Connector::Connector.instance }
let(:enterprise) do
DataFoodConsortium::Connector::Enterprise.new(