diff --git a/.github/workflows/ruby-unit-tests.yml b/.github/workflows/ruby-unit-tests.yml index 1ade7407..12d57325 100644 --- a/.github/workflows/ruby-unit-tests.yml +++ b/.github/workflows/ruby-unit-tests.yml @@ -9,8 +9,8 @@ jobs: strategy: fail-fast: false matrix: - goo-slice: [ '20', '100', '500' ] - ruby-version: [ '2.7' ] + goo-slice: [ '100'] + ruby-version: [ '3.2.0'] triplestore: [ 'fs', 'ag', 'vo', 'gb' ] runs-on: ubuntu-latest steps: @@ -34,7 +34,7 @@ jobs: # http://docs.codecov.io/docs/testing-with-docker run: | ci_env=`bash <(curl -s https://codecov.io/env)` - GOO_SLICES=${{ matrix.goo-slice }} bundle exec rake test:docker:${{ matrix.triplestore }} TESTOPTS="-v" + GOO_SLICES=${{ matrix.goo-slice }} RUBYOPT="-W0" bundle exec rake test:docker:${{ matrix.triplestore }} TESTOPTS="-v" - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 with: diff --git a/Gemfile b/Gemfile index a2e9a576..82592b99 100644 --- a/Gemfile +++ b/Gemfile @@ -5,24 +5,25 @@ gem 'addressable', '~> 2.8' gem 'bcrypt', '~> 3.0' gem 'cube-ruby', require: 'cube' gem 'faraday', '~> 1.9' -gem 'ffi', '~> 1.16.3' +gem 'ffi' gem 'libxml-ruby' gem 'minitest' gem 'multi_json', '~> 1.0' gem 'oj' gem 'omni_logger' gem 'pony' -gem 'rack', '~> 1.0' -gem 'rack-test', '~> 0.6' -gem 'rake', '~> 10.0' +gem 'rack' +gem 'rack-test' +gem 'rake' gem 'rest-client' gem 'rsolr', '~> 1.0' gem 'rubyzip', '~> 1.0' gem 'thin' gem 'request_store' gem 'jwt' -gem 'json-ld', '~> 3.0.2' +gem 'json-ld', '~> 3.2.0' gem "parallel", "~> 1.24" +gem 'rdf-raptor', github:'ruby-rdf/rdf-raptor', ref: '6392ceabf71c3233b0f7f0172f662bd4a22cd534' # use version 3.3.0 when available # Testing @@ -42,3 +43,7 @@ end # NCBO gems (can be from a local dev path or from rubygems/git) gem 'goo', github: 'ontoportal-lirmm/goo', branch: 'development' gem 'sparql-client', github: 'ontoportal-lirmm/sparql-client', branch: 'development' + +gem 'net-ftp' +gem 'public_suffix', '~> 5.1.1' +gem 'net-imap', '~> 0.4.18' diff --git a/Gemfile.lock b/Gemfile.lock index 9fa16e15..2415b8cd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -25,6 +25,15 @@ GIT net-http-persistent (~> 4.0, >= 4.0.2) rdf (~> 3.2, >= 3.2.11) +GIT + remote: https://github.com/ruby-rdf/rdf-raptor.git + revision: 6392ceabf71c3233b0f7f0172f662bd4a22cd534 + ref: 6392ceabf71c3233b0f7f0172f662bd4a22cd534 + specs: + rdf-raptor (3.3.0) + ffi (~> 1.15) + rdf (~> 3.3) + GEM remote: https://rubygems.org/ specs: @@ -39,6 +48,7 @@ GEM ansi (1.5.0) ast (2.4.2) base64 (0.2.0) + bcp47_spec (0.2.1) bcrypt (3.1.20) bigdecimal (3.1.9) builder (3.3.0) @@ -83,7 +93,7 @@ GEM faraday-patron (1.0.0) faraday-rack (1.0.0) faraday-retry (1.0.3) - ffi (1.16.3) + ffi (1.17.1) hashdiff (1.1.2) hashie (5.0.0) htmlentities (4.3.4) @@ -93,9 +103,14 @@ GEM i18n (0.9.5) concurrent-ruby (~> 1.0) json (2.10.1) - json-ld (3.0.2) - multi_json (~> 1.12) - rdf (>= 2.2.8, < 4.0) + json-canonicalization (0.4.0) + json-ld (3.2.5) + htmlentities (~> 4.3) + json-canonicalization (~> 0.3, >= 0.3.2) + link_header (~> 0.0, >= 0.0.8) + multi_json (~> 1.15) + rack (>= 2.2, < 4) + rdf (~> 3.2, >= 3.2.10) jwt (2.10.1) base64 language_server-protocol (3.17.0.4) @@ -105,7 +120,8 @@ GEM logger (~> 1.6) libxml-ruby (5.0.3) link_header (0.0.8) - logger (1.6.5) + lint_roller (1.1.0) + logger (1.6.6) macaddr (1.7.2) systemu (~> 2.6.5) mail (2.8.1) @@ -127,6 +143,9 @@ GEM powerbar multi_json (1.15.0) multipart-post (2.4.1) + net-ftp (0.3.8) + net-protocol + time net-http-persistent (4.0.5) connection_pool (~> 2.2) net-imap (0.4.19) @@ -158,25 +177,24 @@ GEM method_source (~> 1.0) public_suffix (5.1.1) racc (1.8.1) - rack (1.6.13) - rack-test (0.8.3) - rack (>= 1.0, < 3) + rack (2.2.11) + rack-test (2.2.0) + rack (>= 1.3) rainbow (3.1.1) - rake (10.5.0) - rdf (3.2.12) + rake (13.2.1) + rdf (3.3.2) + bcp47_spec (~> 0.2) + bigdecimal (~> 3.1, >= 3.1.5) link_header (~> 0.0, >= 0.0.8) - rdf-raptor (3.2.0) - ffi (~> 1.15) - rdf (~> 3.2) - rdf-rdfxml (3.2.2) - builder (~> 3.2) + rdf-rdfxml (3.3.0) + builder (~> 3.2, >= 3.2.4) htmlentities (~> 4.3) - rdf (~> 3.2) - rdf-xsd (~> 3.2) - rdf-vocab (3.2.7) - rdf (~> 3.2, >= 3.2.4) - rdf-xsd (3.2.1) - rdf (~> 3.2) + rdf (~> 3.3) + rdf-xsd (~> 3.3) + rdf-vocab (3.3.2) + rdf (~> 3.3) + rdf-xsd (3.3.0) + rdf (~> 3.3) rexml (~> 3.2) redis (5.3.0) redis-client (>= 0.22.0) @@ -193,9 +211,10 @@ GEM rexml (3.4.0) rsolr (1.1.2) builder (>= 2.1.2) - rubocop (1.71.2) + rubocop (1.72.1) json (~> 2.3) - language_server-protocol (>= 3.17.0) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) @@ -225,6 +244,8 @@ GEM eventmachine (~> 1.0, >= 1.0.4) rack (>= 1, < 3) thread_safe (0.3.6) + time (0.4.1) + date timeout (0.4.3) tzinfo (0.3.62) unicode-display_width (3.1.4) @@ -247,22 +268,26 @@ DEPENDENCIES cube-ruby email_spec faraday (~> 1.9) - ffi (~> 1.16.3) + ffi goo! - json-ld (~> 3.0.2) + json-ld (~> 3.2.0) jwt libxml-ruby minitest minitest-reporters (>= 0.5.0) multi_json (~> 1.0) + net-ftp + net-imap (~> 0.4.18) oj omni_logger parallel (~> 1.24) pony pry - rack (~> 1.0) - rack-test (~> 0.6) - rake (~> 10.0) + public_suffix (~> 5.1.1) + rack + rack-test + rake + rdf-raptor! request_store rest-client rsolr (~> 1.0) @@ -276,4 +301,4 @@ DEPENDENCIES webmock BUNDLED WITH - 2.1.4 + 2.6.3 diff --git a/lib/ontologies_linked_data/concerns/ontology_submissions/skos/skos_submission_roots.rb b/lib/ontologies_linked_data/concerns/ontology_submissions/skos/skos_submission_roots.rb index 717afb3a..624c792d 100644 --- a/lib/ontologies_linked_data/concerns/ontology_submissions/skos/skos_submission_roots.rb +++ b/lib/ontologies_linked_data/concerns/ontology_submissions/skos/skos_submission_roots.rb @@ -33,7 +33,7 @@ def roots_by_query(query_body, page, paged, pagesize) #needs to get cached class_ids = [] - Goo.sparql_query_client.query(root_skos, { graphs: [self.id] }).each_solution do |s| + Goo.sparql_query_client.query(root_skos, **{ graphs: [self.id] }).each_solution do |s| class_ids << s[:root] end diff --git a/lib/ontologies_linked_data/diff/bubastis_diff.rb b/lib/ontologies_linked_data/diff/bubastis_diff.rb index ff72ffb4..0184edd7 100644 --- a/lib/ontologies_linked_data/diff/bubastis_diff.rb +++ b/lib/ontologies_linked_data/diff/bubastis_diff.rb @@ -77,7 +77,7 @@ def setup_environment if (not Dir.exist?(@output_repo)) begin FileUtils.mkdir_p(@output_repo) - rescue SystemCallError => e + rescue SystemCallError raise MkdirException, "Output folder #{@output_repo} folder cannot be created." end end @@ -116,8 +116,7 @@ def call_bubastis_java_cmd Diff.logger.info(stdout) end if not File.exist?(@file_diff_path) - raise Diff::BubastisDiffException, "Bubastis diff command exited with status=#{status.exitstatus}. " +\ - "Output file #{@file_diff_path} cannot be found." + raise Diff::BubastisDiffException, "Bubastis diff command exited with status=#{status.exitstatus}. " + "Output file #{@file_diff_path} cannot be found." else Diff.logger.info("Output size #{File.stat(@file_diff_path).size} in `#{@file_diff_path}`") end diff --git a/lib/ontologies_linked_data/mappings/mappings.rb b/lib/ontologies_linked_data/mappings/mappings.rb index 6f0fde64..f4dd99ad 100644 --- a/lib/ontologies_linked_data/mappings/mappings.rb +++ b/lib/ontologies_linked_data/mappings/mappings.rb @@ -66,7 +66,6 @@ def self.mapping_ontologies_count(sub1, sub2, reload_cache = false) eos group_count = sub2.nil? ? {} : nil count = 0 - latest_sub_ids = self.retrieve_latest_submission_ids epr = Goo.sparql_query_client(:main) mapping_predicates().each do |_source, mapping_predicate| @@ -698,7 +697,7 @@ def self.mappings_ont_build_query(class_id, page, size, sub1, sub2) def self.mappings_union_template(class_id, sub1, sub2, predicate, bind) class_id_subject = class_id.nil? ? '?s1' : "<#{class_id.to_s}>" target_graph = sub2.nil? ? '?g' : "<#{sub2.to_s}>" - union_template = <<-eos + return <<-eos { GRAPH <#{sub1.to_s}> { #{class_id_subject} <#{predicate}> ?o . diff --git a/lib/ontologies_linked_data/models/class.rb b/lib/ontologies_linked_data/models/class.rb index 87431a36..e4a18ff6 100644 --- a/lib/ontologies_linked_data/models/class.rb +++ b/lib/ontologies_linked_data/models/class.rb @@ -447,7 +447,7 @@ def retrieve_descendants(page=nil, size=nil) total_size = ids.length if !page.nil? ids = ids.to_a.sort - rstart = (page -1) * size + rstart = (page - 1) * size rend = (page * size) -1 ids = ids[rstart..rend] end diff --git a/lib/ontologies_linked_data/models/metric.rb b/lib/ontologies_linked_data/models/metric.rb index d410cf47..65688db7 100644 --- a/lib/ontologies_linked_data/models/metric.rb +++ b/lib/ontologies_linked_data/models/metric.rb @@ -54,7 +54,7 @@ def self.ontology_submission_links(m) ont.bring(:acronym) if ont.bring?(:acronym) acronym_link = "ontologies/#{ont.acronym}" submission_link = "/submissions/#{m.submission.first.submissionId}" - rescue Exception => e + rescue Exception acronym_link = "" submission_link = "" end diff --git a/lib/ontologies_linked_data/models/mod/semantic_artefact.rb b/lib/ontologies_linked_data/models/mod/semantic_artefact.rb index 98919381..17388c20 100644 --- a/lib/ontologies_linked_data/models/mod/semantic_artefact.rb +++ b/lib/ontologies_linked_data/models/mod/semantic_artefact.rb @@ -117,7 +117,7 @@ def attribute_mapped(name, **options) attribute_mapped :metrics, namespace: :mod, mapped_to: {model: :ontology_submission, attribute: :metrics} - attribute :ontology, type: :ontology + attribute :ontology, type: :ontology, enforce: [:existence] links_load :acronym link_to LinkedData::Hypermedia::Link.new("distributions", lambda {|s| "artefacts/#{s.acronym}/distributions"}, LinkedData::Models::SemanticArtefactDistribution.type_uri), @@ -132,7 +132,9 @@ def attribute_mapped(name, **options) LinkedData::Hypermedia::Link.new("collection", lambda {|s| "artefacts/#{s.acronym}/collections"}, LinkedData::Models::SKOS::Collection.uri_type), LinkedData::Hypermedia::Link.new("labels", lambda {|s| "artefacts/#{s.acronym}/labels"}, LinkedData::Models::SKOS::Label.uri_type) - + # Access control + read_restriction_based_on ->(artefct) { artefct.ontology } + serialize_default :acronym, :accessRights, :subject, :URI, :versionIRI, :creator, :identifier, :status, :language, :license, :rightsHolder, :description, :landingPage, :keyword, :bibliographicCitation, :contactPoint, :contributor, :publisher, :coverage, :createdWith, :accrualMethod, :accrualPeriodicity, @@ -157,7 +159,7 @@ def self.type_uri end def self.find(artefact_id) - ont = Ontology.find(artefact_id).include(:acronym).first + ont = Ontology.find(artefact_id).include(:acronym, :viewingRestriction, :administeredBy, :acl).first return nil unless ont new.tap do |sa| @@ -190,20 +192,17 @@ def bring(*attributes) end end - def self.all_artefacts(options = {}) - onts = if options[:also_include_views] - Ontology.where.to_a - else - Ontology.where.filter(Goo::Filter.new(:viewOf).unbound).include(:acronym).to_a - end - - onts.map do |o| + def self.all_artefacts(attributes, page, pagesize) + all_count = Ontology.where.count + onts = Ontology.where.include(:acronym, :viewingRestriction, :administeredBy, :acl).page(page, pagesize).page_count_set(all_count).all + all_artefacts = onts.map do |o| new.tap do |sa| sa.ontology = o sa.acronym = o.acronym - sa.bring(*options[:includes]) if options[:includes] + sa.bring(*attributes) if attributes end end + Goo::Base::Page.new(page, pagesize, all_count, all_artefacts) end def latest_distribution(status) @@ -217,7 +216,6 @@ def distribution(dist_id) end def all_distributions(options = {}) - status = options[:status] to_bring = options[:includes] @ontology.bring(:submissions) @@ -235,4 +233,3 @@ def analytics end end end - \ No newline at end of file diff --git a/lib/ontologies_linked_data/models/mod/semantic_artefact_distribution.rb b/lib/ontologies_linked_data/models/mod/semantic_artefact_distribution.rb index 03583c66..e613a82a 100644 --- a/lib/ontologies_linked_data/models/mod/semantic_artefact_distribution.rb +++ b/lib/ontologies_linked_data/models/mod/semantic_artefact_distribution.rb @@ -60,6 +60,9 @@ def attribute_mapped(name, **options) # Attr special to SemanticArtefactDistribution attribute :submission, type: :ontology_submission + + # Access control + read_restriction_based_on ->(artefct_distribution) { artefct_distribution.submission.ontology } serialize_default :distributionId, :title, :hasRepresentationLanguage, :hasSyntax, :description, :created, :modified, :conformsToKnowledgeRepresentationParadigm, :usedEngineeringMethodology, :prefLabelProperty, @@ -80,7 +83,7 @@ def self.distribution_id_generator(ss) def initialize(sub) super() @submission = sub - @submission.bring(*[:submissionId, :ontology=>[:acronym]]) + @submission.bring(*[:submissionId, :ontology=>[:acronym, :administeredBy, :acl, :viewingRestriction]]) @distributionId = sub.submissionId end diff --git a/lib/ontologies_linked_data/models/ontology.rb b/lib/ontologies_linked_data/models/ontology.rb index 9b93fc8a..625bf203 100644 --- a/lib/ontologies_linked_data/models/ontology.rb +++ b/lib/ontologies_linked_data/models/ontology.rb @@ -202,7 +202,6 @@ def next_submission_id end def highest_submission_id(options = {}) - reload = options[:reload] || false status = options[:status] || :ready LinkedData::Models::Ontology.where.models([self]) @@ -215,7 +214,7 @@ def highest_submission_id(options = {}) begin subs = self.submissions - rescue Exception => e + rescue Exception i = 0 num_calls = LinkedData.settings.num_retries_4store subs = nil diff --git a/lib/ontologies_linked_data/models/ontology_submission.rb b/lib/ontologies_linked_data/models/ontology_submission.rb index 53f4cf28..ff9d4469 100644 --- a/lib/ontologies_linked_data/models/ontology_submission.rb +++ b/lib/ontologies_linked_data/models/ontology_submission.rb @@ -179,7 +179,7 @@ def self.agents_attrs end # Hypermedia settings - embed *%i[contact ontology metrics] + agents_attrs + embed *(%i[contact ontology metrics] + agents_attrs) def self.embed_values_hash out = { @@ -237,7 +237,7 @@ def self.ontology_link(m) begin m.ontology.bring(:acronym) if m.ontology.bring?(:acronym) ontology_link = "ontologies/#{m.ontology.acronym}" - rescue Exception => e + rescue Exception ontology_link = "" end end @@ -301,7 +301,7 @@ def self.clear_indexed_content(ontology) conn = Goo.init_search_connection(:ontology_data) begin conn.delete_by_query("ontology_t:\"#{ontology}\"") - rescue StandardError => e + rescue StandardError # puts e.message end conn @@ -340,7 +340,7 @@ def sanity_check begin sum_only = self.ontology.summaryOnly - rescue Exception => e + rescue Exception i = 0 num_calls = LinkedData.settings.num_retries_4store sum_only = nil @@ -354,7 +354,7 @@ def sanity_check self.ontology.bring(:summaryOnly) sum_only = self.ontology.summaryOnly puts "Success getting summaryOnly for #{self.id.to_s} after retrying #{i} times..." - rescue Exception => e1 + rescue Exception sum_only = nil raise $!, "#{$!} after retrying #{i} times...", $!.backtrace if i == num_calls @@ -540,7 +540,7 @@ def metrics_from_file(logger = nil) begin metrics = CSV.read(m_path) - rescue Exception => e + rescue Exception logger.error("Unable to find metrics file: #{m_path}") logger.flush end @@ -852,7 +852,7 @@ def parsable?(logger: Logger.new($stdout)) parsable = true begin owlapi.parse - rescue StandardError => e + rescue StandardError parsable = false end parsable @@ -892,7 +892,7 @@ def check_ftp_file(uri) ftp.login begin file_exists = ftp.size(uri.path) > 0 - rescue Exception => e + rescue Exception # Check using another method path = uri.path.split("/") filename = path.pop diff --git a/lib/ontologies_linked_data/models/provisional_class.rb b/lib/ontologies_linked_data/models/provisional_class.rb index 1f4b06c4..ff8306ad 100644 --- a/lib/ontologies_linked_data/models/provisional_class.rb +++ b/lib/ontologies_linked_data/models/provisional_class.rb @@ -33,7 +33,7 @@ class ProvisionalClass < LinkedData::Models::Base else "" end - rescue Exception => e + rescue Exception "" end }, Goo.vocabulary["Ontology"]) diff --git a/lib/ontologies_linked_data/models/resource.rb b/lib/ontologies_linked_data/models/resource.rb index 6caf601e..beec6889 100644 --- a/lib/ontologies_linked_data/models/resource.rb +++ b/lib/ontologies_linked_data/models/resource.rb @@ -80,7 +80,7 @@ def namespaces def transform_to_prefixes(ns_count, prefixes, uris) uris.each do |uri| - namespace, id = namespace_predicate(uri) + namespace, _ = namespace_predicate(uri) next if namespace.nil? || prefixes.value?(namespace) prefix, prefix_namespace = Goo.namespaces.select { |_k, v| v.to_s.eql?(namespace) }.first @@ -177,12 +177,13 @@ def get_type(value) end def namespace_predicate(property_url) - return nil if property_url.is_a?(RDF::Literal) || !URI.regexp.match?(property_url) - regex = /^(?.*[\/#])(?[^\/#]+)$/ + return nil if property_url.is_a?(RDF::Literal) || !URI::DEFAULT_PARSER.make_regexp.match?(property_url) + + regex = %r{^(?.*[/#])(?[^/#]+)$} match = regex.match(property_url.to_s) [match[:namespace], match[:id]] if match end end end -end \ No newline at end of file +end diff --git a/lib/ontologies_linked_data/models/submission_status.rb b/lib/ontologies_linked_data/models/submission_status.rb index d7c74363..04797343 100644 --- a/lib/ontologies_linked_data/models/submission_status.rb +++ b/lib/ontologies_linked_data/models/submission_status.rb @@ -89,7 +89,7 @@ def self.readable_statuses(statuses) begin readable_stats = statuses_raw.map { |s| s.bring(:code); s.code } - rescue Exception => e + rescue Exception readable_stats = nil if i == num_calls @@ -145,4 +145,3 @@ def ==(that) end end end - diff --git a/lib/ontologies_linked_data/parser/owlapi.rb b/lib/ontologies_linked_data/parser/owlapi.rb index 20cfc971..d8720f60 100644 --- a/lib/ontologies_linked_data/parser/owlapi.rb +++ b/lib/ontologies_linked_data/parser/owlapi.rb @@ -124,7 +124,7 @@ def call_owlapi_java_command end if not File.exist?(File.join([@output_repo, "owlapi.xrdf"])) raise Parser::OWLAPIParserException, "OWLAPI java command exited with"+ - " #{w.value.exitstatus}. " +\ + " #{w.value.exitstatus}. " + \ "Output file #{File.join([@output_repo, "owlapi.xrdf"])} cannot be found." else @file_triples_path = File.join([@output_repo, "owlapi.xrdf"]) diff --git a/lib/ontologies_linked_data/purl/purl_client.rb b/lib/ontologies_linked_data/purl/purl_client.rb index 6180d07b..eaa560bf 100644 --- a/lib/ontologies_linked_data/purl/purl_client.rb +++ b/lib/ontologies_linked_data/purl/purl_client.rb @@ -63,7 +63,7 @@ def purl_exists(acronym) def delete_purl(acronym) headers = purl_server_login() http = get_http() - res, data = http.delete(PURL_ADMIN_PATH.call(acronym), headers) + res, _ = http.delete(PURL_ADMIN_PATH.call(acronym), headers) return res.code == "200" end @@ -78,4 +78,4 @@ def get_http() return http end end -end \ No newline at end of file +end diff --git a/lib/ontologies_linked_data/sample_data/ontology.rb b/lib/ontologies_linked_data/sample_data/ontology.rb index 61dcc04d..b7a363e9 100644 --- a/lib/ontologies_linked_data/sample_data/ontology.rb +++ b/lib/ontologies_linked_data/sample_data/ontology.rb @@ -116,7 +116,7 @@ def self.create_ontologies_and_submissions(options = {}) begin ss.process_submission(tmp_log, process_options) - rescue Exception => e + rescue Exception puts "Error processing submission: #{ss.id.to_s}" puts "See test log for errors: #{test_log_file.path}" raise @@ -132,7 +132,7 @@ def self.load_semantic_types_ontology(options = {}) file_path = options[:file_path] file_path = "../../../../test/data/ontology_files/umls_semantictypes.ttl" if file_path.nil? - count, acronyms, sty = create_ontologies_and_submissions({ + _, _, sty = create_ontologies_and_submissions({ ont_count: 1, submission_count: 1, process_submission: true, @@ -176,7 +176,7 @@ def self.delete_ontologies_and_submissions def self.sample_owl_ontologies(process_submission: false, process_options: nil) process_options ||= {process_rdf: true, extract_metadata: false, index_search: false} - count, acronyms, bro = create_ontologies_and_submissions({ + _, _, bro = create_ontologies_and_submissions({ process_submission: process_submission, process_options: process_options, acronym: "BROTEST", @@ -187,7 +187,7 @@ def self.sample_owl_ontologies(process_submission: false, process_options: nil) }) # This one has some nasty looking IRIS with slashes in the anchor - count, acronyms, mccl = create_ontologies_and_submissions({ + _, _, mccl = create_ontologies_and_submissions({ process_submission: process_submission, process_options: process_options, acronym: "MCCLTEST", diff --git a/lib/ontologies_linked_data/serializers/jsonp.rb b/lib/ontologies_linked_data/serializers/jsonp.rb index 48a28ccf..58cb5e1c 100644 --- a/lib/ontologies_linked_data/serializers/jsonp.rb +++ b/lib/ontologies_linked_data/serializers/jsonp.rb @@ -5,7 +5,7 @@ def self.serialize(obj, options) callback = options[:params]["callback"] || options[:params]["jsonp"] || "?" variable = options[:params]["variable"] json = LinkedData::Serializers::JSON.serialize(obj, options) - response = begin + begin if callback && variable "var #{variable} = #{json};\n#{callback}(#{variable});" elsif variable @@ -19,4 +19,4 @@ def self.serialize(obj, options) end end end -end \ No newline at end of file +end diff --git a/lib/ontologies_linked_data/services/submission_process/operations/submission_all_data_indexer.rb b/lib/ontologies_linked_data/services/submission_process/operations/submission_all_data_indexer.rb index e236883c..6d2d080b 100644 --- a/lib/ontologies_linked_data/services/submission_process/operations/submission_all_data_indexer.rb +++ b/lib/ontologies_linked_data/services/submission_process/operations/submission_all_data_indexer.rb @@ -6,7 +6,7 @@ class OntologySubmissionAllDataIndexer < OntologySubmissionProcess def process(logger, options = nil) status = LinkedData::Models::SubmissionStatus.find('INDEXED_ALL_DATA').first begin - index_all_data(logger, options) + index_all_data(logger, **options) @submission.add_submission_status(status) rescue StandardError => e logger.error("Error indexing all data for submission: #{e.message} : #{e.backtrace.join("\n")}") diff --git a/lib/ontologies_linked_data/services/submission_process/operations/submission_indexer.rb b/lib/ontologies_linked_data/services/submission_process/operations/submission_indexer.rb index ac8b22f4..471df1f9 100644 --- a/lib/ontologies_linked_data/services/submission_process/operations/submission_indexer.rb +++ b/lib/ontologies_linked_data/services/submission_process/operations/submission_indexer.rb @@ -117,7 +117,7 @@ def index(logger, commit = true, optimize = true) begin # this cal is needed for indexing of properties LinkedData::Models::Class.map_attributes(c, paging.equivalent_predicates, include_languages: true) - rescue Exception => e + rescue Exception i = 0 num_calls = LinkedData.settings.num_retries_4store success = nil @@ -195,4 +195,3 @@ def index(logger, commit = true, optimize = true) end end end - diff --git a/lib/ontologies_linked_data/services/submission_process/operations/submission_missing_labels.rb b/lib/ontologies_linked_data/services/submission_process/operations/submission_missing_labels.rb index 9a4ca0d2..9d0ef3f9 100644 --- a/lib/ontologies_linked_data/services/submission_process/operations/submission_missing_labels.rb +++ b/lib/ontologies_linked_data/services/submission_process/operations/submission_missing_labels.rb @@ -194,6 +194,8 @@ def generate_missing_labels_each(artifacts = {}, logger, paging, page_classes, p if no_default_pref_label lang_rdfs_labels = c.label(include_languages: true) + lang_rdfs_labels = {none: lang_rdfs_labels} if lang_rdfs_labels.is_a?(Array) && !lang_rdfs_labels.blank? + # Set lang_rdfs_labels to { none: [] } if empty or no match for default label if Array(lang_rdfs_labels).empty? || (lang_rdfs_labels.keys & [portal_lang, :none, '@none']).empty? lang_rdfs_labels = { none: [] } diff --git a/lib/ontologies_linked_data/services/submission_process/operations/submission_obsolete_classes.rb b/lib/ontologies_linked_data/services/submission_process/operations/submission_obsolete_classes.rb index aedb70a4..42086c72 100644 --- a/lib/ontologies_linked_data/services/submission_process/operations/submission_obsolete_classes.rb +++ b/lib/ontologies_linked_data/services/submission_process/operations/submission_obsolete_classes.rb @@ -70,7 +70,7 @@ def generate_obsolete_classes(logger, file_path) fsave.write(LinkedData::Utils::Triples.obselete_class_triple(class_id) + "\n") end fsave.close() - result = Goo.sparql_data_client.append_triples_from_file( + Goo.sparql_data_client.append_triples_from_file( @submission.id, save_in_file, mime_type = "application/x-turtle") @@ -79,4 +79,3 @@ def generate_obsolete_classes(logger, file_path) end end end - diff --git a/lib/ontologies_linked_data/utils/file.rb b/lib/ontologies_linked_data/utils/file.rb index dd517877..59bf5fb9 100644 --- a/lib/ontologies_linked_data/utils/file.rb +++ b/lib/ontologies_linked_data/utils/file.rb @@ -124,7 +124,6 @@ def self.download_file(uri, limit = 10) file, filename = download_file_ftp(uri) else file = Tempfile.new('ont-rest-file') - file_size = 0 filename = nil http_session = Net::HTTP.new(uri.host, uri.port) http_session.verify_mode = OpenSSL::SSL::VERIFY_NONE diff --git a/lib/ontologies_linked_data/utils/notifications.rb b/lib/ontologies_linked_data/utils/notifications.rb index cae49e50..6950bc62 100644 --- a/lib/ontologies_linked_data/utils/notifications.rb +++ b/lib/ontologies_linked_data/utils/notifications.rb @@ -81,7 +81,6 @@ def self.new_user(user) .gsub('%email%', user.email.to_s) .gsub('%site_url%', LinkedData.settings.ui_host) .gsub('%ui_name%', LinkedData.settings.ui_name) - recipients = LinkedData.settings.admin_emails Notifier.notify_support_grouped subject, body end @@ -96,7 +95,6 @@ def self.new_ontology(ont) .gsub('%site_url%', LinkedData.settings.ui_host) .gsub('%ont_url%', LinkedData::Hypermedia.generate_links(ont)['ui']) .gsub('%ui_name%', LinkedData.settings.ui_name) - recipients = LinkedData.settings.admin_emails Notifier.notify_support_grouped subject, body end diff --git a/lib/ontologies_linked_data/utils/triples.rb b/lib/ontologies_linked_data/utils/triples.rb index fe6542c3..ff9b46a4 100644 --- a/lib/ontologies_linked_data/utils/triples.rb +++ b/lib/ontologies_linked_data/utils/triples.rb @@ -79,7 +79,7 @@ def self.label_for_class_triple(class_id, property, label, language=nil) params[:datatype] = RDF.langString params[:language] = lang.to_sym end - triple(class_id, property, RDF::Literal.new(label, params)) + triple(class_id, property, RDF::Literal.new(label, **params)) end def self.generated_label(class_id, existing_label) diff --git a/mise.toml b/mise.toml new file mode 100644 index 00000000..47a05ac7 --- /dev/null +++ b/mise.toml @@ -0,0 +1,2 @@ +[tools] +ruby = "3.2.0" diff --git a/test/data/ontology_files/apto.owl b/test/data/ontology_files/apto.owl new file mode 100644 index 00000000..ceb167c5 --- /dev/null +++ b/test/data/ontology_files/apto.owl @@ -0,0 +1,11147 @@ + + + + + + + + + + + + + + + + + + http://www.w3.org/TR/skos-reference/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + agrovoc:c_019ee1cc + Farelo de trigo + + + + agrovoc:c_019ee1cc + Wheat bran + + + + agrovoc:c_10097 + Coentro + + + + agrovoc:c_10097 + Coriander + + + + agrovoc:c_10097 + https://sistemas.sede.embrapa.br/agrotermos/resources/64eb2b6204d7163a62fd0692b221260e + + + + agrovoc:c_10195 + Cucumber + + + + agrovoc:c_10195 + Pepino + + + + agrovoc:c_10677 + Etanol + + + + agrovoc:c_10677 + Ethanol + + + + agrovoc:c_10677 + https://sistemas.sede.embrapa.br/agrotermos/resources/95eac3b4e952901f4b80aea54f6f9e16 + + + + agrovoc:c_1071 + Pão + + + + agrovoc:c_1071 + bread + + + + agrovoc:c_10722 + Broad beans + + + + agrovoc:c_10722 + Fava + + + + agrovoc:c_11091 + Alho + + + + agrovoc:c_11091 + Garlic + + + + agrovoc:c_11131 + Germe de trigo + + + + agrovoc:c_11131 + Wheat germ + + + + agrovoc:c_11392 + Goiaba + + + + agrovoc:c_11392 + Guava + + + + agrovoc:c_11392 + https://sistemas.sede.embrapa.br/agrotermos/resources/a0b91d8e06136094e4e9f2633d219324 + + + + agrovoc:c_1147 + Boi + + + + agrovoc:c_1147 + Bullock + + + + agrovoc:c_1147 + https://sistemas.sede.embrapa.br/agrotermos/resources/86a270a74dd36082d129dbc67da00c36 + + + + agrovoc:c_12109 + Galinha poedeira + + + + agrovoc:c_12109 + Layer chicken + + + + agrovoc:c_12109 + https://sistemas.sede.embrapa.br/agrotermos/resources/fd2c4059780b8a9637c4e67191980744 + + + + agrovoc:c_12151 + Alface + + + + agrovoc:c_12151 + Lettuce + + + + agrovoc:c_12151 + https://sistemas.sede.embrapa.br/agrotermos/resources/57a28dbfb65685d05aba506ff9728f85 + + + + agrovoc:c_1219 + Bezerro + + + + agrovoc:c_1219 + Calf + + + + agrovoc:c_1219 + https://sistemas.sede.embrapa.br/agrotermos/resources/dbe05e794688e1e0a690316f4e3cb155 + + + + agrovoc:c_12332 + Maize + + + + agrovoc:c_12332 + Milho + + + + agrovoc:c_12332 + https://sistemas.sede.embrapa.br/agrotermos/resources/48f22450ff89f732ae0cd7c0f2dfe1eb + + + + agrovoc:c_12367 + Manga + + + + agrovoc:c_12367 + Mango + + + + agrovoc:c_12367 + https://sistemas.sede.embrapa.br/agrotermos/resources/b16e21785bcdd2394b3e2a77de0f8eaa + + + + agrovoc:c_12487 + Melão + + + + agrovoc:c_12487 + Muskmelon + + + + agrovoc:c_12920 + Okra + + + + agrovoc:c_12920 + Quiabo + + + + agrovoc:c_12934 + Cebola + + + + agrovoc:c_12934 + Onion + + + + agrovoc:c_12934 + https://sistemas.sede.embrapa.br/agrotermos/resources/281d59c6d9c8fe4b4e627a3aa56a9670 + + + + agrovoc:c_13120 + Parsley + + + + agrovoc:c_13120 + Salsa + + + + agrovoc:c_13120 + Salsinha + + + + agrovoc:c_13120 + Salsa + + + + agrovoc:c_13132 + Leite pasteurizado + + + + agrovoc:c_13132 + Pasteurized milk + + + + agrovoc:c_13132 + https://sistemas.sede.embrapa.br/agrotermos/resources/6a3e0cb43f80ee57b0895dc0870d5f12 + + + + agrovoc:c_13394 + Abacaxi + + + + agrovoc:c_13394 + Pineapple + + + + agrovoc:c_13394 + https://sistemas.sede.embrapa.br/agrotermos/resources/4b96d5c1ff312eea069ddc760794963d + + + + agrovoc:c_13551 + Batata + + + + agrovoc:c_13551 + Potatoe + + + + agrovoc:c_14010 + Centeio + + + + agrovoc:c_14010 + Rye + + + + agrovoc:c_1423 + Cellulose + + + + agrovoc:c_1423 + Celulose + + + + agrovoc:c_1423 + https://sistemas.sede.embrapa.br/agrotermos/resources/6a324a803fcf2cb57faddfe4ea18326a + + + + agrovoc:c_14386 + Trigo mole + + + + agrovoc:c_14386 + soft wheat + + + + agrovoc:c_14386 + Trigo brando + + + + agrovoc:c_14386 + Trigo mole + + + + agrovoc:c_14477 + Soja + + + + agrovoc:c_14477 + Soybean + + + + agrovoc:c_14477 + Soja em Grão + + + + agrovoc:c_14477 + https://sistemas.sede.embrapa.br/agrotermos/resources/bdc7645e04618dd9f14f06d96ab6967d + + + + agrovoc:c_14727 + Pimentão + + + + agrovoc:c_14727 + Sweet pepper + + + + agrovoc:c_14727 + https://sistemas.sede.embrapa.br/agrotermos/resources/a5f74e850f12620e61ba8013e75b59b4 + + + + agrovoc:c_14729 + Batata-doce + + + + agrovoc:c_14729 + Sweet potatoe + + + + agrovoc:c_1473 + Cereal product + + + + agrovoc:c_1473 + Produto à base de cereal + + + + agrovoc:c_1473 + https://sistemas.sede.embrapa.br/agrotermos/resources/7f875377fcab131e0629c16fc503e31a + + + + agrovoc:c_1474 + Cereal + + + + agrovoc:c_1474 + Cereal + + + + agrovoc:c_1474 + https://sistemas.sede.embrapa.br/agrotermos/resources/42a1751fa85f0a5024720bd40f350ba3 + + + + agrovoc:c_14791 + Inhame + + + + agrovoc:c_14791 + Taro + + + + agrovoc:c_14791 + Cará + + + + agrovoc:c_14791 + Taro + + + + agrovoc:c_14791 + https://sistemas.sede.embrapa.br/agrotermos/resources/3886bc9c9655241c5737d45eec5447bb + + + + agrovoc:c_14791 + Inhame + + + + agrovoc:c_15068 + Leite UHT + + + + agrovoc:c_15068 + UHT milk + + + + agrovoc:c_15068 + https://sistemas.sede.embrapa.br/agrotermos/resources/2428d4ce74f58cd871700239f5136f3f + + + + agrovoc:c_1507 + Cheese + + + + agrovoc:c_1507 + Queijo + + + + agrovoc:c_1507 + https://sistemas.sede.embrapa.br/agrotermos/resources/c4d194cfc9f10a4885bd388564036bef + + + + agrovoc:c_15277 + Melancia + + + + agrovoc:c_15277 + Watermelon + + + + agrovoc:c_15277 + https://sistemas.sede.embrapa.br/agrotermos/resources/5e8f4e06a72887b71ce41638fca221cf + + + + agrovoc:c_1540 + Chicken + + + + agrovoc:c_1540 + Frango + + + + agrovoc:c_1540 + https://sistemas.sede.embrapa.br/agrotermos/resources/10d5a0555a83f8bb41290c1e14e603e3 + + + + agrovoc:c_15463 + Iogurte + + + + agrovoc:c_15463 + Yoghurt + + + + agrovoc:c_15463 + https://sistemas.sede.embrapa.br/agrotermos/resources/2a65973eca6cc9283ab62acf05a41ba2 + + + + agrovoc:c_15685 + Especiaria + + + + agrovoc:c_15685 + Spice + + + + agrovoc:c_15685 + https://sistemas.sede.embrapa.br/agrotermos/resources/8eb41f06f00ccb7e912de9c6782ccea4 + + + + agrovoc:c_15742 + Processed product + + + + agrovoc:c_15742 + Produto processado + + + + agrovoc:c_15742 + https://sistemas.sede.embrapa.br/agrotermos/resources/7d7cb76048f9f558389d3ef8c77f4e82 + + + + agrovoc:c_15978 + Carne caprina + + + + agrovoc:c_15978 + Goat meat + + + + agrovoc:c_15978 + Carne de caprino + + + + agrovoc:c_15978 + https://sistemas.sede.embrapa.br/agrotermos/resources/bf2ffd84f991885387456605b1decce0 + + + + agrovoc:c_15978 + Carne caprina + + + + agrovoc:c_16080 + Cow milk + + + + agrovoc:c_16080 + Leite de vaca + + + + agrovoc:c_16083 + Goat milk + + + + agrovoc:c_16083 + Leite de cabra + + + + agrovoc:c_16083 + https://sistemas.sede.embrapa.br/agrotermos/resources/6b1c99fc07dc0e133ab5b1282f5ed6ea + + + + agrovoc:c_1641 + Citrus fruit + + + + agrovoc:c_1641 + Fruta cítrica + + + + agrovoc:c_1641 + Citrus + + + + agrovoc:c_1641 + Fruta cítrica + + + + agrovoc:c_16477 + Açúcar de cana + + + + agrovoc:c_16477 + Cane sugar + + + + agrovoc:c_16477 + https://sistemas.sede.embrapa.br/agrotermos/resources/9852e4677bf923bfb2ac3b6136924a0b + + + + agrovoc:c_16508 + Soybean oil + + + + agrovoc:c_16508 + Óleo de soja + + + + agrovoc:c_1926 + Algodão + + + + agrovoc:c_1926 + Cotton + + + + agrovoc:c_1926 + https://sistemas.sede.embrapa.br/agrotermos/resources/d8f3d67c92743cb979008b6372af3176 + + + + agrovoc:c_1939 + Cow + + + + agrovoc:c_1939 + Vaca + + + + agrovoc:c_1939 + https://sistemas.sede.embrapa.br/agrotermos/resources/90f077d7759d0d4d21e6867727d4b2bd + + + + agrovoc:c_2384 + Dried milk + + + + agrovoc:c_2384 + Leite em pó + + + + agrovoc:c_2384 + https://sistemas.sede.embrapa.br/agrotermos/resources/7d3e6a0eddeeb429cd94658f5c6f2626 + + + + agrovoc:c_24000 + Carne de frango + + + + agrovoc:c_24000 + Chicken meat + + + + agrovoc:c_24000 + Carne de galinha + + + + agrovoc:c_24000 + https://sistemas.sede.embrapa.br/agrotermos/resources/5bdef85b388203f1f3aa24880672146c + + + + agrovoc:c_249 + Alcohol + + + + agrovoc:c_249 + Álcool + + + + agrovoc:c_249 + https://sistemas.sede.embrapa.br/agrotermos/resources/79b89ad67167fad67c264a54ef962b44 + + + + agrovoc:c_2502 + Egg + + + + agrovoc:c_2502 + Ovo + + + + agrovoc:c_2502 + https://sistemas.sede.embrapa.br/agrotermos/resources/8472071ced24fe2226f7ca33cff91272 + + + + agrovoc:c_25470 + Coco-da-baía + + + + agrovoc:c_25470 + Coconut + + + + agrovoc:c_25470 + Coco + + + + agrovoc:c_25473 + Cottonseed + + + + agrovoc:c_25473 + Semente de algodão + + + + agrovoc:c_25473 + Caroço de algodão + + + + agrovoc:c_25473 + https://sistemas.sede.embrapa.br/agrotermos/resources/a0eb8f32cd10ba23677e89f9e871ef04 + + + + agrovoc:c_25473 + Semente de algodão + + + + agrovoc:c_25490 + Oil seed + + + + agrovoc:c_25490 + Semente oleaginosa + + + + agrovoc:c_25490 + Oleaginosas + + + + agrovoc:c_25490 + https://sistemas.sede.embrapa.br/agrotermos/resources/11d1922eb5e932db908581eb83e3f457 + + + + agrovoc:c_25499 + Rapeseed + + + + agrovoc:c_25499 + Semente de canola + + + + agrovoc:c_25499 + Canola + + + + agrovoc:c_25499 + Semente de colza + + + + agrovoc:c_25499 + https://sistemas.sede.embrapa.br/agrotermos/resources/695b2bf6e87d16f2981ae004561f7ea8 + + + + agrovoc:c_25499 + Semente de canola + + + + agrovoc:c_25507 + Semente de girassol + + + + agrovoc:c_25507 + Sunflower seed + + + + agrovoc:c_25507 + Girassol + + + + agrovoc:c_25507 + https://sistemas.sede.embrapa.br/agrotermos/resources/f7ce8e4b85f4e1bd909d8ca66e203db0 + + + + agrovoc:c_25507 + Semente de girassol + + + + agrovoc:c_25511 + Farinha de trigo + + + + agrovoc:c_25511 + Wheat flour + + + + agrovoc:c_26767 + Dairy cow + + + + agrovoc:c_26767 + Vaca leiteira + + + + agrovoc:c_26767 + https://sistemas.sede.embrapa.br/agrotermos/resources/99c85c3f0a8cf76f365de195ab35f8a3 + + + + agrovoc:c_28379 + Café em grãos + + + + agrovoc:c_28379 + Coffee beans + + + + agrovoc:c_28379 + Café + + + + agrovoc:c_28379 + Café em grãos + + + + agrovoc:c_29108 + Animal útil + + + + agrovoc:c_29108 + Useful animal + + + + agrovoc:c_29108 + https://sistemas.sede.embrapa.br/agrotermos/resources/ba94e65756b89654616f98cce03aee8a + + + + agrovoc:c_2943 + Fish + + + + agrovoc:c_2943 + Peixe + + + + agrovoc:c_2943 + https://sistemas.sede.embrapa.br/agrotermos/resources/cb4bb0dafca8dc9e0452723bc627435d + + + + agrovoc:c_2988 + Farinha + + + + agrovoc:c_2988 + Flour + + + + agrovoc:c_2988 + https://sistemas.sede.embrapa.br/agrotermos/resources/9df38bda0adee40b17d54026429d0fdb + + + + agrovoc:c_29989 + Processed plant product + + + + agrovoc:c_29989 + Produto de origem vegetal processado + + + + agrovoc:c_3049 + Forest product + + + + agrovoc:c_3049 + Produto florestal + + + + agrovoc:c_3105 + Freshwater fishe + + + + agrovoc:c_3105 + Peixe de água doce + + + + agrovoc:c_3131 + Fruit + + + + agrovoc:c_3131 + Fruta + + + + agrovoc:c_3131 + https://sistemas.sede.embrapa.br/agrotermos/resources/233926cc509b0d57b7188653097d1eec + + + + agrovoc:c_32720 + Tilapia + + + + agrovoc:c_32720 + Tilápia + + + + agrovoc:c_32720 + https://sistemas.sede.embrapa.br/agrotermos/resources/a30d5e4e0ec8526c396994bd8c4e637b + + + + agrovoc:c_331566 + Beans + + + + agrovoc:c_331566 + Feijão + + + + agrovoc:c_331566 + https://sistemas.sede.embrapa.br/agrotermos/resources/62b8288c2867583bbbfc172290439710 + + + + agrovoc:c_3324 + Caprino + + + + agrovoc:c_3324 + Goat + + + + agrovoc:c_3324 + https://sistemas.sede.embrapa.br/agrotermos/resources/fb00d24ff5fe1e47871b7876841f5024 + + + + agrovoc:c_3346 + Grain + + + + agrovoc:c_3346 + Grão + + + + agrovoc:c_3346 + https://sistemas.sede.embrapa.br/agrotermos/resources/b868e45362655d1998f3bee01f991d94 + + + + agrovoc:c_3359 + Uva + + + + agrovoc:c_3359 + grape + + + + agrovoc:c_3359 + https://sistemas.sede.embrapa.br/agrotermos/resources/d3da5eb0da6870aec2297a935d7159a8 + + + + agrovoc:c_3376 + Hortaliça de folha + + + + agrovoc:c_3376 + Leaf vegetable + + + + agrovoc:c_3376 + https://sistemas.sede.embrapa.br/agrotermos/resources/33ad8f317947f7c5a1b849e49d5483e2 + + + + agrovoc:c_3376 + Folhosas + + + + agrovoc:c_3376 + Hortaliça de folha + + + + agrovoc:c_3609 + Couros e peles + + + + agrovoc:c_3609 + Hides and skins + + + + agrovoc:c_3609 + https://sistemas.sede.embrapa.br/agrotermos/resources/378cb44a9af7ef24dff9873abb5fb8b2 + + + + agrovoc:c_36410 + Açúcar refinado + + + + agrovoc:c_36410 + Refined sugar + + + + agrovoc:c_36410 + https://sistemas.sede.embrapa.br/agrotermos/resources/891c923495e2fae8b1a751afb2956895 + + + + agrovoc:c_3652 + Honey + + + + agrovoc:c_3652 + Mel de abelha + + + + agrovoc:c_3652 + https://sistemas.sede.embrapa.br/agrotermos/resources/8f50ba9e7d863515cdc192cfdce1eb41 + + + + agrovoc:c_36538 + Casulo de seda + + + + agrovoc:c_36538 + Cocoon + + + + agrovoc:c_36538 + Casulo + + + + agrovoc:c_36538 + https://sistemas.sede.embrapa.br/agrotermos/resources/3fb7f54dc80462112da0aaf9e280a5d3 + + + + agrovoc:c_36538 + Casulo de seda + + + + agrovoc:c_3654 + Abelha melífera + + + + agrovoc:c_3654 + Honey bee + + + + agrovoc:c_3654 + Abelha produtora de mel + + + + agrovoc:c_3654 + Abelha melífera + + + + agrovoc:c_37735 + Abóbora + + + + agrovoc:c_37735 + Squashe + + + + agrovoc:c_37735 + https://sistemas.sede.embrapa.br/agrotermos/resources/0641ab8e01b7f3b5fe5c340082784021 + + + + agrovoc:c_3881 + Composto inorgânico + + + + agrovoc:c_3881 + Inorganic compound + + + + agrovoc:c_3881 + https://sistemas.sede.embrapa.br/agrotermos/resources/9bc1d45dc6914580199935a8c1e26709 + + + + agrovoc:c_4065 + Juta + + + + agrovoc:c_4065 + Jute + + + + agrovoc:c_4070 + Couve + + + + agrovoc:c_4070 + Kale + + + + agrovoc:c_4070 + https://sistemas.sede.embrapa.br/agrotermos/resources/5779a2c5efecaa6c45833f93794286e1 + + + + agrovoc:c_4163 + Cordeiro + + + + agrovoc:c_4163 + Lamb + + + + agrovoc:c_4163 + https://sistemas.sede.embrapa.br/agrotermos/resources/8731dc7e812594c5353915ed54fbb5ba + + + + agrovoc:c_4241 + Couro + + + + agrovoc:c_4241 + Leather + + + + agrovoc:c_4259 + Lemon + + + + agrovoc:c_4259 + Limão + + + + agrovoc:c_4259 + https://sistemas.sede.embrapa.br/agrotermos/resources/23a6a6f019e446235d9251e7bf1939c4 + + + + agrovoc:c_438 + Animal product + + + + agrovoc:c_438 + Produto de origem animal + + + + agrovoc:c_438 + https://sistemas.sede.embrapa.br/agrotermos/resources/ec624cf8e3122d30f5c35286cfb3efc7 + + + + agrovoc:c_4397 + Gado + + + + agrovoc:c_4397 + Livestock + + + + agrovoc:c_4647 + Mate + + + + agrovoc:c_4647 + Mate + + + + agrovoc:c_4647 + Erva mate + + + + agrovoc:c_4647 + https://sistemas.sede.embrapa.br/agrotermos/resources/7c13aea47d6e6ddefd62d2c00653b2a4 + + + + agrovoc:c_4647 + Mate + + + + agrovoc:c_4669 + Carne + + + + agrovoc:c_4669 + Meat + + + + agrovoc:c_4669 + https://sistemas.sede.embrapa.br/agrotermos/resources/409f4cd5e6a103f5a0d4bfcc18215b0e + + + + agrovoc:c_4826 + Leite + + + + agrovoc:c_4826 + Milk + + + + agrovoc:c_4827 + Milk by-product + + + + agrovoc:c_4827 + Subproduto do leite + + + + agrovoc:c_4827 + https://sistemas.sede.embrapa.br/agrotermos/resources/bea2cf5e51ed952a0f398806ac737878 + + + + agrovoc:c_4830 + Milk product + + + + agrovoc:c_4830 + Produto derivado do leite + + + + agrovoc:c_4830 + Dairy product + + + + agrovoc:c_4830 + https://sistemas.sede.embrapa.br/agrotermos/resources/124628c533f0720ccf575553b4feff1a + + + + agrovoc:c_4830 + Milk product + + + + agrovoc:c_4838 + Milheto + + + + agrovoc:c_4838 + millet + + + + agrovoc:c_4838 + mileto + + + + agrovoc:c_4838 + milhete + + + + agrovoc:c_5015 + Carne de carneiro + + + + agrovoc:c_5015 + Mutton + + + + agrovoc:c_5015 + https://sistemas.sede.embrapa.br/agrotermos/resources/2ed585b38f8e1a8e5c7278354ea40e11 + + + + agrovoc:c_5066 + Cabra + + + + agrovoc:c_5066 + Nannygoat + + + + agrovoc:c_5066 + https://sistemas.sede.embrapa.br/agrotermos/resources/7c21a0ecb0e51b244a6ba16f35a1047f + + + + agrovoc:c_5287 + Aveia + + + + agrovoc:c_5287 + Oat + + + + agrovoc:c_5287 + https://sistemas.sede.embrapa.br/agrotermos/resources/b54fb2fcde17a9c2da33470ae95fe39f + + + + agrovoc:c_5330 + Oil palm + + + + agrovoc:c_5330 + Palmeira Oleaginosa + + + + agrovoc:c_5330 + https://sistemas.sede.embrapa.br/agrotermos/resources/821d61281118d169f36bb25a77c5fe48 + + + + agrovoc:c_541 + Maçã + + + + agrovoc:c_541 + apple + + + + agrovoc:c_5548 + Papel + + + + agrovoc:c_5548 + Paper + + + + agrovoc:c_5548 + https://sistemas.sede.embrapa.br/agrotermos/resources/acbf61dc603a375f7841d5bfd5ca928f + + + + agrovoc:c_5638 + Pêssego + + + + agrovoc:c_5638 + peache + + + + agrovoc:c_566 + Arabica coffee + + + + agrovoc:c_566 + Café arábica + + + + agrovoc:c_5c9e76bc + Rúcula + + + + agrovoc:c_5c9e76bc + rocket + + + + agrovoc:c_5c9e76bc + https://sistemas.sede.embrapa.br/agrotermos/resources/8c6d70bd7e4b4f0fa5cca06e224ac3ba + + + + agrovoc:c_6120 + Carne suína + + + + agrovoc:c_6120 + Pork + + + + agrovoc:c_6120 + Carne de porco + + + + agrovoc:c_6120 + https://sistemas.sede.embrapa.br/agrotermos/resources/03ff0226008ff0fe87cf33873a786fb0 + + + + agrovoc:c_6120 + Carne suína + + + + agrovoc:c_6145 + Ave de capoeira + + + + agrovoc:c_6145 + Poultry + + + + agrovoc:c_6599 + Arroz + + + + agrovoc:c_6599 + Rice + + + + agrovoc:c_6599 + https://sistemas.sede.embrapa.br/agrotermos/resources/cd762ef822be9c0c8b1d8b2c3633eddf + + + + agrovoc:c_6626 + Café robusta + + + + agrovoc:c_6626 + Robusta coffee + + + + agrovoc:c_6678 + Borracha + + + + agrovoc:c_6678 + Rubber + + + + agrovoc:c_6678 + Borracha natural + + + + agrovoc:c_6678 + https://sistemas.sede.embrapa.br/agrotermos/resources/2b5b436e38e557be6333ee663cc234f9 + + + + agrovoc:c_6678 + Borracha + + + + agrovoc:c_6679 + Planta produtora de borracha + + + + agrovoc:c_6679 + Rubber crops + + + + agrovoc:c_6679 + https://sistemas.sede.embrapa.br/agrotermos/resources/028e219a04f2febda150fadb1d886712 + + + + agrovoc:c_6ffce1ab + Fubá + + + + agrovoc:c_6ffce1ab + Maize meal + + + + agrovoc:c_6ffce1ab + Fubá de milho + + + + agrovoc:c_6ffce1ab + https://sistemas.sede.embrapa.br/agrotermos/resources/f9c9caaa48da729d2a8c0328388e9565 + + + + agrovoc:c_6ffce1ab + Fubá + + + + agrovoc:c_7030 + Ovino + + + + agrovoc:c_7030 + sheep + + + + agrovoc:c_7030 + https://sistemas.sede.embrapa.br/agrotermos/resources/d7c7bd6f1ed5b065106e6cb98cbce396 + + + + agrovoc:c_7064 + Bicho-da-seda + + + + agrovoc:c_7064 + Silkworm + + + + agrovoc:c_7086 + Sisal + + + + agrovoc:c_7086 + Sisal + + + + agrovoc:c_7086 + https://sistemas.sede.embrapa.br/agrotermos/resources/941490e4a8761000a77ebdd4b7f3a54d + + + + agrovoc:c_7249 + Sorghum grain + + + + agrovoc:c_7249 + Sorgo + + + + agrovoc:c_7249 + Sorgo granífero + + + + agrovoc:c_7249 + https://sistemas.sede.embrapa.br/agrotermos/resources/70e2bc0a07054af305aa5c113797a240 + + + + agrovoc:c_7249 + Sorgo + + + + agrovoc:c_7413 + Planta estimulante + + + + agrovoc:c_7413 + Stimulant crop + + + + agrovoc:c_7413 + https://sistemas.sede.embrapa.br/agrotermos/resources/8cfa9f207f98fd89447017bc69313888 + + + + agrovoc:c_7498 + Açúcar + + + + agrovoc:c_7498 + Sugar + + + + agrovoc:c_7498 + https://sistemas.sede.embrapa.br/agrotermos/resources/f34ae1525ab8cba9dfe78de135ac81f0 + + + + agrovoc:c_7550 + Laranja + + + + agrovoc:c_7550 + Sweet orange + + + + agrovoc:c_7550 + https://sistemas.sede.embrapa.br/agrotermos/resources/cf75ceb29197f57b19dcb8b4757368e8 + + + + agrovoc:c_7555 + Suíno + + + + agrovoc:c_7555 + Swine + + + + agrovoc:c_7555 + https://sistemas.sede.embrapa.br/agrotermos/resources/91125fa713391ed5b8fcdf4ca818d011 + + + + agrovoc:c_7601 + Tangerina + + + + agrovoc:c_7601 + Tangerine + + + + agrovoc:c_7601 + Bergamota + + + + agrovoc:c_7601 + Mandarina + + + + agrovoc:c_7601 + Mexerica + + + + agrovoc:c_7601 + https://sistemas.sede.embrapa.br/agrotermos/resources/d7b920215594108bd28b35702cb27236 + + + + agrovoc:c_7655 + Fruta de clima temperado + + + + agrovoc:c_7655 + Temperate fruit + + + + agrovoc:c_7805 + Tomate + + + + agrovoc:c_7805 + Tomatoe + + + + agrovoc:c_7805 + https://sistemas.sede.embrapa.br/agrotermos/resources/02e409c8bf00d35d7a7d61c56829da7f + + + + agrovoc:c_785 + Baked good + + + + agrovoc:c_785 + Produto de panificação + + + + agrovoc:c_7974 + Fruta tropical + + + + agrovoc:c_7974 + Tropical fruit + + + + agrovoc:c_7974 + https://sistemas.sede.embrapa.br/agrotermos/resources/bfb9ab9aadfc6cb021ca3d04221efc65 + + + + agrovoc:c_806 + Banana + + + + agrovoc:c_806 + Banana + + + + agrovoc:c_806 + https://sistemas.sede.embrapa.br/agrotermos/resources/72b302bf297a228a75730123efef7c41 + + + + agrovoc:c_8115 + Artrópode útil + + + + agrovoc:c_8115 + Useful arthropod + + + + agrovoc:c_8170 + Plant oil + + + + agrovoc:c_8170 + Óleo vegetal + + + + agrovoc:c_8170 + https://sistemas.sede.embrapa.br/agrotermos/resources/f3577d6a7af8c40945365082dd588456 + + + + agrovoc:c_8171 + Plant product + + + + agrovoc:c_8171 + Produto de origem vegetal + + + + agrovoc:c_8171 + https://sistemas.sede.embrapa.br/agrotermos/resources/67abbd6fd76a07e292828e3d15b34100 + + + + agrovoc:c_8174 + Produto hortícola + + + + agrovoc:c_8174 + Vegetable + + + + agrovoc:c_823 + Barley + + + + agrovoc:c_823 + Cevada + + + + agrovoc:c_8335 + Planta produtora de cera + + + + agrovoc:c_8335 + Wax plant + + + + agrovoc:c_8335 + https://sistemas.sede.embrapa.br/agrotermos/resources/a5528d684a04bc1651f0879ed04817d4 + + + + agrovoc:c_8373 + Trigo + + + + agrovoc:c_8373 + Wheat + + + + agrovoc:c_8373 + https://sistemas.sede.embrapa.br/agrotermos/resources/e2369eaf443fc28d5b546a7e23c7ea6c + + + + agrovoc:c_8376 + Soro do leite + + + + agrovoc:c_8376 + Whey + + + + agrovoc:c_8376 + https://sistemas.sede.embrapa.br/agrotermos/resources/9cd7fc78880bea64f045a006720f4c6d + + + + agrovoc:c_8421 + Madeira + + + + agrovoc:c_8421 + wood + + + + agrovoc:c_8421 + https://sistemas.sede.embrapa.br/agrotermos/resources/d471f65a3e7768cb32d51debc22d9f60 + + + + agrovoc:c_861 + Beef + + + + agrovoc:c_861 + Carne bovina + + + + agrovoc:c_861 + Carne de bovino + + + + agrovoc:c_861 + https://sistemas.sede.embrapa.br/agrotermos/resources/69c63ae967a1055e2b279791e2feedc0 + + + + agrovoc:c_861 + Carne bovina + + + + agrovoc:c_8998 + Berinjela + + + + agrovoc:c_8998 + Eggplant + + + + agrovoc:c_8998 + https://sistemas.sede.embrapa.br/agrotermos/resources/561a32dd09056431c368b5ad71e64432 + + + + agrovoc:c_9410 + Brazil nut + + + + agrovoc:c_9410 + Castanha do Brasil + + + + agrovoc:c_9410 + Castanha do Pará + + + + agrovoc:c_9410 + https://sistemas.sede.embrapa.br/agrotermos/resources/d8d964d1d7dbc6aab32e0ea56331e525 + + + + agrovoc:c_9410 + Castanha do Brasil + + + + agrovoc:c_9640 + Carrot + + + + agrovoc:c_9640 + Cenoura + + + + agrovoc:c_9640 + https://sistemas.sede.embrapa.br/agrotermos/resources/1a868182fce986fe0701a2d5c593acbf + + + + agrovoc:c_9649 + Cassava + + + + agrovoc:c_9649 + Mandioca + + + + agrovoc:c_9649 + Aipim + + + + agrovoc:c_9649 + Macaxeira + + + + agrovoc:c_9649 + raiz de mandioca + + + + agrovoc:c_9649 + https://sistemas.sede.embrapa.br/agrotermos/resources/373b74610542263335c865a6e39ee9d5 + + + + agrovoc:c_9649 + Mandioca + + + + agrovoc:c_9813 + Cebolinha + + + + agrovoc:c_9813 + Chives + + + + agrovoc:c_9813 + Green onion + + + + agrovoc:c_9813 + https://sistemas.sede.embrapa.br/agrotermos/resources/c0304fb7306cc510b82e5a98d7db7618 + + + + agrovoc:c_995ecefb + Planta útil + + + + agrovoc:c_995ecefb + Useful plant + + + + http://purl.obolibrary.org/obo/BCO_0000087 + A shortcut relation from an organsimal entity to a taxon. + + + + http://purl.obolibrary.org/obo/BCO_0000087 + Uma relação abreviada de uma entidade organismal para um táxon. + + + + http://purl.obolibrary.org/obo/BCO_0000087 + member of taxon + + + + http://purl.obolibrary.org/obo/BCO_0000087 + membro do táxon + + + + http://purl.obolibrary.org/obo/RO_0001000 + A relation between two distinct material entities, the new entity and the old entity, in which the new entity begins to exist when the old entity ceases to exist, and the new entity inherits the significant portion of the matter of the old entity. + + + + http://purl.obolibrary.org/obo/RO_0001000 + Uma relação entre duas entidades materiais distintas, a nova entidade e a entidade antiga, na qual a nova entidade começa a existir quando a entidade antiga deixa de existir, e a nova entidade herda a porção significativa da matéria da entidade antiga. + + + + http://purl.obolibrary.org/obo/RO_0001000 + derivado de + + + + http://purl.obolibrary.org/obo/RO_0001000 + derives from + + + + http://purl.obolibrary.org/obo/RO_0001001 + A relation between two distinct material entities, the old entity and the new entity, in which the new entity begins to exist when the old entity ceases to exist, and the new entity inherits the significant portion of the matter of the old entity. + + + + http://purl.obolibrary.org/obo/RO_0001001 + Uma relação entre duas entidades materiais distintas, a entidade antiga e a nova entidade, na qual a nova entidade começa a existir quando a entidade antiga deixa de existir, e a nova entidade herda a porção significativa da matéria da entidade antiga. + + + + http://purl.obolibrary.org/obo/RO_0001001 + deriva em + + + + http://purl.obolibrary.org/obo/RO_0001001 + derives into + + + + http://purl.obolibrary.org/obo/RO_0003000 + A produces B if some process that occurs_in A has_output B, where A and B are material entities. + + + + http://purl.obolibrary.org/obo/RO_0003000 + A produz B se algum processo que ocorre em A tem B como resultado, onde A e B são entidades materiais. + + + + http://purl.obolibrary.org/obo/RO_0003000 + produces + + + + http://purl.obolibrary.org/obo/RO_0003000 + produz + + + + http://purl.obolibrary.org/obo/RO_0003001 + A produced_by B iff some process that occurs_in B has_output A. + + + + http://purl.obolibrary.org/obo/RO_0003001 + A é produzido por B se, e somente se, algum processo que ocorre em B tem A como resultado. + + + + http://purl.obolibrary.org/obo/RO_0003001 + produced by + + + + http://purl.obolibrary.org/obo/RO_0003001 + produzido por + + + + http://www.w3.org/2004/02/skos/mapping + This vocabulary allows you to express information about how statements made using concepts from some conceptual scheme may be transformed into statements with concepts from a different scheme. So for example it can be used for automated query transformation. Or It could be used to create a virtual subject index for a collection in terms of an alternative classification system. + + + + http://www.w3.org/2004/02/skos/mapping + http://www.w3.org/2001/sw/Europe/reports/thes/8.4/ + + + + skos:altLabel + The range of skos:altLabel is the class of RDF plain literals. + + + + skos:altLabel + skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties. + + + + skos:altLabel + http://www.w3.org/2004/02/skos/core + + + + skos:altLabel + alternative label + + + + skos:broadMatch + If 'concept A has-broad-match concept B' then the set of resources properly indexed against concept A is a subset of the set of resources properly indexed against concept B. + + + + skos:broadMatch + skos:broadMatch + + + + skos:exactMatch + If two concepts are an 'exact-match' then the set of resources properly indexed against the first concept is identical to the set of resources properly indexed against the second. Therefore the two concepts may be interchanged in queries and subject-based indexes. + + + + skos:exactMatch + skos:exactMatch + + + + skos:hiddenLabel + The range of skos:hiddenLabel is the class of RDF plain literals. + + + + skos:hiddenLabel + skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties. + + + + skos:hiddenLabel + http://www.w3.org/2004/02/skos/core + + + + skos:hiddenLabel + hidden label + + + + skos:narrowMatch + If 'concept A has-narrow-match concept B' then the set of resources properly indexed against concept A is a superset of the set of resources properly indexed against concept B. + + + + skos:narrowMatch + skos:narrowMatch + + + + skos:prefLabel + A resource has no more than one value of skos:prefLabel per language tag, and no more than one value of skos:prefLabel without language tag. + + + + skos:prefLabel + The range of skos:prefLabel is the class of RDF plain literals. + + + + skos:prefLabel + skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise + disjoint properties. + + + + skos:prefLabel + http://www.w3.org/2004/02/skos/core + + + + skos:prefLabel + preferred label + + + + https://agrovoc.fao.org/browse/agrovoc/en/page/c_3568 + Culinary herbs + + + + https://agrovoc.fao.org/browse/agrovoc/en/page/c_3568 + Planta aromática para culinária + + + + https://agrovoc.fao.org/browse/agrovoc/en/page/c_7501 + Cana-de-açúcar + + + + https://agrovoc.fao.org/browse/agrovoc/en/page/c_7501 + Sugar cane + + + + https://agrovoc.fao.org/browse/agrovoc/en/page/c_7501 + https://sistemas.sede.embrapa.br/agrotermos/resources/fe91bcfb4bc023da0ecfabf5030f92db + + + + sdo:Açucar_Refinado_Amorfo + Açúcar refinado amorfo + + + + agrotermos:a110c0bb4ca441a61349d22192c6c583 + Piaçava + + + + agrotermos:aaff761df6b25c60c9454df207578876 + Amêndoa + + + + agrotermos:b675818cfcefea83a15d92ef70a73177 + Noz + + + + agrotermos:b675818cfcefea83a15d92ef70a73177 + Walnuts + + + + agrotermos:b675818cfcefea83a15d92ef70a73177 + noz inglesa + + + + agrotermos:b675818cfcefea83a15d92ef70a73177 + noz persa + + + + agrotermos:b675818cfcefea83a15d92ef70a73177 + http://aims.fao.org/aos/agrovoc/c_15254 + + + + agrotermos:b8019c5cd743abe5e568bca34e1035a2 + Amendoim + + + + agrotermos:c149abe6c0478ea98091733724878114 + Açúcar cristal + + + + agrotermos:c149abe6c0478ea98091733724878114 + Crystal sugar + + + + agrotermos:c7bd43872382af7e405eb31fbe0d62b3 + Pacu + + + + agrotermos:d624e0944dcd81829d9fcc3cc6611929 + Murici + + + + agrotermos:d624e0944dcd81829d9fcc3cc6611929 + murici-da-praia + + + + agrotermos:d624e0944dcd81829d9fcc3cc6611929 + murici-do-brejo + + + + agrotermos:d624e0944dcd81829d9fcc3cc6611929 + muruci + + + + agrotermos:d673d8cbfcb7c2fd26ef7fbd8b69d709 + Jenipapo + + + + agrotermos:d7f09ae1740a8f52cefd25b0614965a1 + Fécula + + + + agrotermos:d942eb37336785079bc6623ee5ff81a9 + Abóbora-menina + + + + agrotermos:d942eb37336785079bc6623ee5ff81a9 + Abobrinha + + + + agrotermos:d942eb37336785079bc6623ee5ff81a9 + abobrinha-italiana + + + + agrotermos:e4a3d44a48cc1650a37dc45948407a83 + Babaçu + + + + agrotermos:e59b534a1f0b7dc770e1b7578597c131 + Leguminosa de grão + + + + agrotermos:e59b534a1f0b7dc770e1b7578597c131 + Leguminosa de grão + + + + agrotermos:f52a78f322bd8fcd941bf77dee403436 + Mangaba + + + + agrotermos:fe46183f893373aeed0a008b54d71148 + Pinhão + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/0b251a6dcde4c65670b467527c2e12f3 + Fruta-do-conde + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/0b251a6dcde4c65670b467527c2e12f3 + Ata + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/0b251a6dcde4c65670b467527c2e12f3 + Pinha + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/05c55a77a73e2b5b498d15bea6fe6e35 + Novilho + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/1fabaa992654f45f4602e2f843463d50 + Ceriguela + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/1fabaa992654f45f4602e2f843463d50 + seriguela + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/1fabaa992654f45f4602e2f843463d50 + Ceriguela + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/2dc82a09c0941cb977352c10fba56d86 + Curimatã + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/28156081ffd59c01e5ad8c39d92d517b + Edible nut + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/28156081ffd59c01e5ad8c39d92d517b + Noz comestível + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/411edbea36c30f435e4d70751a9be9b2 + Planta produtora de madeira + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/411edbea36c30f435e4d70751a9be9b2 + Wood-producing plant + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/473830ed2508bec0622e627d7f8f9604 + Caju + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/473830ed2508bec0622e627d7f8f9604 + Cashew + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/473830ed2508bec0622e627d7f8f9604 + http://aims.fao.org/aos/agrovoc/c_9647 + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/5ca3ba89b5052310f056bffc84ad2359 + Pequi + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/5fe1bb8cb4a85f7794a509eebfc271a7 + Planta produtora de droga + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/51c17a606edc3755c249bd9f44a88a29 + Pirarucu + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/513d52ec57a549910bf9ced35be817a8 + Macauba Palm + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/513d52ec57a549910bf9ced35be817a8 + Macaúba + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/57285571deec8d096491da6f2bf7f2a6 + Castanha + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/57285571deec8d096491da6f2bf7f2a6 + http://aims.fao.org/aos/agrovoc/c_12873 + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/57285571deec8d096491da6f2bf7f2a6 + Nut + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/5949bdd80605dd4136a6b5a2cbe5b8f7 + Arroz em casca + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/5973875894f680f6171765597c0b302c + Vaca de corte + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/6c577516edc7117699a72d620847be73 + Tabaco + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/6c577516edc7117699a72d620847be73 + Tobacco + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/6c577516edc7117699a72d620847be73 + fumo + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/6c577516edc7117699a72d620847be73 + http://aims.fao.org/aos/agrovoc/c_7117 + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/6ccfec83258bc84dd914b82963ff15a0 + Triticale + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/6ccfec83258bc84dd914b82963ff15a0 + Triticale + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/6e5ec1f7742bbbfaccd577c26aa30bc5 + Macadâmia + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/61ff626b059dc368d047e9c27ede8eae + Cashew nut + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/61ff626b059dc368d047e9c27ede8eae + Castanha de caju + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/61ff626b059dc368d047e9c27ede8eae + https://agrovoc.fao.org/browse/agrovoc/en/page/c_9647 + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/62ebfd337d11d466ca77260d335c62e6 + Mamão + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/62ebfd337d11d466ca77260d335c62e6 + Papaia + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/62646d1e38e30e9a1901a3cc69d75178 + Assai + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/62646d1e38e30e9a1901a3cc69d75178 + Açaí + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/62646d1e38e30e9a1901a3cc69d75178 + Juçara + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/62646d1e38e30e9a1901a3cc69d75178 + Açaí + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/638c80419412ec2aa5a3ab46897fcb04 + Bovine + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/638c80419412ec2aa5a3ab46897fcb04 + Bovino + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/7a0149773ebabe1d82eb9830a577d16a + Acerola + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/7a0149773ebabe1d82eb9830a577d16a + Barbados cherry + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/7e8c918aba66629d9ac84d99fd56b745 + Umbu + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/7794fc517590053809f758b7e16d87ed + Sal + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/7794fc517590053809f758b7e16d87ed + Salt + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/7794fc517590053809f758b7e16d87ed + http://aims.fao.org/aos/agrovoc/c_33129 + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/8a1700ad77be316e1185a58a9df4663a + Suco + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/845caef614387a897ba1f99e3a3558cd + Fruit pulp + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/845caef614387a897ba1f99e3a3558cd + Polpa de fruta + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/9ddefc424391e81b5e0cea3f94bd04bd + Carnaúba + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/91e839283cf386499582d297bf181227 + Cumbaru + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/91e839283cf386499582d297bf181227 + Baru + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/91e839283cf386499582d297bf181227 + Cumaru + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/93091ce029083f6c99e904493ae41517 + Cupuaçu + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/936400f151ba2146a86cfcc342279f57 + Cajá + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/http://aims.fao.org/aos/agrovoc/c_13127 + Maracujá + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/http://aims.fao.org/aos/agrovoc/c_13127 + Passion fruit + + + + https://sistemas.sede.embrapa.br/agrotermos/resources/http://aims.fao.org/aos/agrovoc/c_13127 + https://sistemas.sede.embrapa.br/agrotermos/resources/9e2501934d067d71bb1c5850722a73d1 + + + + Acai-verdadeiro + Açaí-verdadeiro + + + + Air-Chilled_chicken + Frango resfriado + + + + Algodao_em_caroco + https://sistemasweb.agricultura.gov.br/sislegis/action/detalhaAto.do?method=visualizarAtoPortalMapa&chave=1830175803#:~:text=3.1.-,Algod%C3%A3o%20em%20caro%C3%A7o%3A%20%C3%A9%20o%20produto%20maduro%20e%20fisiologicamente%20desenvolvido,3.2. + + + + Algodao_em_caroco + Produto maduro e fisiologicamente desenvolvido, oriundo do algodoeiro, que apresenta suas fibras aderidas ao caroço e que ainda não foi beneficiado. + + + + Algodao_em_caroco + Algodão em caroço + + + + Animal_by_product + Animal by-product + + + + Animal_by_product + Subproduto de origem animal + + + + Aquaculture_product + Aquaculture product + + + + Aquaculture_product + Produto da aquicultura + + + + Araucaria + Araucaria + + + + Araucaria + Araucária + + + + Boi_gordo + In the livestock industry, particularly in Brazil, "Boi Gordo" refers to cattle that have been fattened to an optimal weight and condition for slaughter. These animals are typically well-fed and managed to achieve a high level of muscle and fat, making them ideal for meat production. The term signifies the final stage of cattle before they are sent to slaughterhouses, where their market value is assessed based on their weight and overall condition. "Boi Gordo" is a key term in the beef production industry, indicating readiness for processing into meat products. + + + + Boi_gordo + No setor pecuário, especialmente no Brasil, "Boi Gordo" refere-se ao gado que foi engordado até atingir um peso e condição ótimos para o abate. Esses animais são tipicamente bem alimentados e manejados para alcançar um alto nível de músculo e gordura, tornando-os ideais para a produção de carne. O termo significa a etapa final do gado antes de serem enviados para os matadouros, onde seu valor de mercado é avaliado com base em seu peso e condição geral. "Boi Gordo" é um termo-chave na indústria de produção de carne bovina, indicando prontidão para o processamento em produtos de carne. + + + + Boi_gordo + Boi gordo + + + + Boi_gordo + Boi gordo + + + + Boi_gordo + http://dbpedia.org/resource/Fed_cattle + + + + Boi_magro + In the livestock industry, "Boi Magro" refers to cattle that are lean and have not yet reached the optimal weight and condition for slaughter. These animals require additional feeding and management to gain sufficient muscle and fat. + + + + Boi_magro + No setor pecuário, "Boi Magro" refere-se ao gado que é magro e ainda não atingiu o peso e condição ótimos para o abate. Esses animais necessitam de alimentação e manejo adicionais para ganhar músculo e gordura suficientes. + + + + Boi_magro + Boi magro + + + + Buriti + Buriti + + + + Buriti + https://sistemas.sede.embrapa.br/agrotermos/resources/87574e3e9216e89429f8af597b016479 + + + + Buriti + http://aims.fao.org/aos/agrovoc/c_4661 + + + + Buritizeiro + Buritizeiro + + + + By-product + By-product + + + + By-product + Subproduto + + + + By-product + http://aims.fao.org/aos/agrovoc/c_1172 + + + + Canjica_de_milho + Canjica de milho + + + + Carne_ovina + Carne ovina + + + + Cera_de_carnauba + Carnauba wax + + + + Cera_de_carnauba + Cera de carnaúba + + + + Chili_pepper + Chili pepper + + + + Chili_pepper + Pimenta + + + + Citrus_maxima + Citrus maxima + + + + Citrus_maxima + https://www.gbif.org/species/3190160 + + + + Citrus_reticulata + Citrus reticulata + + + + Citrus_reticulata + https://www.gbif.org/species/3190172 + + + + Coco_babacu + Coco de babaçu + + + + Cocoa + Cacau + + + + Cocoa + cocoa + + + + Cocoa + https://sistemas.sede.embrapa.br/agrotermos/resources/b049f571bb7165ea6fb5d377e5dfdfd2 + + + + Coconut + Coco + + + + Coconut + Coconut + + + + Corn_flakes + Corn flakes are made from corn grains that are cooked and then flattened and toasted into thin, crispy flakes. They are widely consumed as breakfast cereals, usually with milk or yogurt, and are also used in some culinary recipes, such as breading or desserts. + + + + Corn_flakes + Flocos de milho, conhecidos popularmente como "cornflakes", são feitos a partir de grãos de milho cozidos e depois esmagados e tostados em flocos finos e crocantes.São amplamente consumidos como cereais matinais, geralmente acompanhados de leite ou iogurte, e também são utilizados em algumas receitas culinárias, como empanados ou sobremesas. + + + + Corn_flakes + Corn flakes + + + + Corn_flakes + Flocos de milho + + + + Cow_cheese + Cow cheese + + + + Cow_cheese + Queijo de vaca + + + + Domestic_chicken + Domestic chicken + + + + Domestic_chicken + Galinha doméstica + + + + Farinha_de_mandioca + Farinha de mandioca + + + + Farinha_de_mandioca + Cassava flour + + + + Farinha_de_mandioca_seca + Farinha de mandioca seca + + + + Farinha_de_mandioca_seca_fina + Farinha de mandioca seca fina + + + + Farinha_de_mandioca_seca_fina + Mandioca seca fina + + + + Farinha_de_mandioca_seca_fina + Farinha de mandioca seca fina + + + + Farinha_de_mandioca_seca_grossa + Farinha de mandioca seca grossa + + + + Farinha_de_mandioca_seca_grossa + Mandioca seca grossa + + + + Farinha_de_mandioca_seca_grossa + Farinha de mandioca seca grossa + + + + Fava_de_anta + Fava-de-anta + + + + Fava_de_anta + fava-d'anta + + + + Fibra + Fibra + + + + Fibra + Vegetal fiber + + + + Fibra + http://aims.fao.org/aos/agrovoc/c_2879 + + + + Fibra + https://sistemas.sede.embrapa.br/agrotermos/resources/aaf228df552d57d8f74534022b863a4f + + + + Fibra_de_carnauba + Fibra de carnaúba + + + + Flocos + Flakes + + + + Flocos + Flocos + + + + Frozen_chicken + Frango congelado + + + + Goat_cheese + Goat cheese + + + + Goat_cheese + Queijo de cabra + + + + Graviola + Graviola + + + + Graviola + https://sistemas.sede.embrapa.br/agrotermos/resources/cd4ad51e3ef278dffda7b240530a6cf7 + + + + Guarana + Guaraná + + + + Guarana + https://sistemas.sede.embrapa.br/agrotermos/resources/da85d12cdbbedf2418030018c66cb0b0 + + + + Jaraqui + Jaraqui + + + + Licurizeiro + Licurizeiro + + + + Licurizeiro + Coqueiro-cabeçudo + + + + Licurizeiro + https://sistemas.sede.embrapa.br/agrotermos/resources/c9ed4cf096ed94bc9c318008ffadbdce + + + + Licurizeiro + Licurizeiro + + + + Mamona_em_baga + Mamona em baga + + + + Massa_de_mandioca + https://periodicos.ufms.br/index.php/EIGEDIN/article/view/7327 + + + + Massa_de_mandioca + Massa de mandioca + + + + Maxixe + Maxixe + + + + Maxixe + https://sistemas.sede.embrapa.br/agrotermos/resources/2ba40885c990c681fbb1872fc59a5a16 + + + + Murumuru + Murumuru + + + + Murumuzeiro + Palmeira murumuru + + + + OWLClass_59217d1a_950e_4f2d_b80c_695e0fe9100dalm + Hive product + + + + OWLClass_59217d1a_950e_4f2d_b80c_695e0fe9100dalm + Produto da apicultura + + + + OWLClass_76cbdf78_9da4_43ce_b015_50ee8259fab6alm + Livestock product + + + + OWLClass_76cbdf78_9da4_43ce_b015_50ee8259fab6alm + Produto pecuário + + + + OWLClass_a7c4f0d2_6654_4dc6_ae34_97ce99b35adealm + Produto da vida selvagem + + + + OWLClass_a7c4f0d2_6654_4dc6_ae34_97ce99b35adealm + Wildlife product + + + + Oleo_de_buriti + Óleo de buriti + + + + Oleo_de_copaiba + Óleo de copaíba + + + + Oleo_de_copaiba + http://aims.fao.org/aos/agrovoc/c_10091 + + + + Oleo_de_copaiba + https://sistemas.sede.embrapa.br/agrotermos/resources/29fb6a538d8ed7225c2787a2118752aa + + + + Oleo_de_murumuru + Murumuru oil + + + + Oleo_de_murumuru + Óleo de murumuru + + + + Oleo_de_pequi + Óleo de pequi + + + + Organism + Organism + + + + Organism + Organismo + + + + Organism + http://purl.obolibrary.org/obo/OBI_0100026 + + + + Ovo_de_galinha + Ovo de galinha + + + + Pepper + Pepper + + + + Pepper + Pimenta do Reino + + + + Pepper + Black pepper + + + + Pinus + Pinus + + + + Pinus + Pinus + + + + Plant_by-product + Plant by-product + + + + Plant_by-product + Subproduto de origem vegetal + + + + Planta_produtora_de_celulose + Cellulose-producing plant + + + + Planta_produtora_de_celulose + Planta produtora de celulose + + + + Po_cerifero + Pó cerífero + + + + Po_cerifero_de_carnauba + Pó cerífero de carnaúba + + + + Polpa_de_abacaxi + Polpa de abacaxi + + + + Polpa_de_acai + Assai pulp + + + + Polpa_de_acai + Polpa de açaí + + + + Polpa_de_acerola + Polpa de acerola + + + + Polpa_de_tamarindo + Polpa de tamarindo + + + + Polvilho + Polvilho + + + + Polvilho + Fécula de mandioca + + + + Polvilho + Polvilho + + + + Poultry_product + Poultry product + + + + Poultry_product + Produto da avicultura + + + + Processed_animal_product + Processed animal product + + + + Processed_animal_product + Produto de origem animal processado + + + + Product_type + Product type + + + + Product_type + Tipo de produto + + + + Raw_animal_product + Produto de origem animal in natura + + + + Raw_animal_product + Raw animal product + + + + Raw_plant_product + Produto de origem vegetal in natura + + + + Raw_plant_product + Raw plant product + + + + Raw_product + Produto in natura + + + + Raw_product + Raw product + + + + Raw_product + http://aims.fao.org/aos/agrovoc/c_24887 + + + + Rice_flakes + Flocos de arroz são grãos de arroz que foram processados para se tornarem finos e achatados. Este processo envolve cozinhar os grãos, desidratá-los e prensá-los, resultando em flocos leves e crocantes. Eles são comumente usados em cereais matinais, barras de cereais e podem ser consumidos com leite, iogurte ou utilizados em receitas como bolos e biscoitos. + + + + Rice_flakes + Rice flakes are grains of rice that have been processed to become thin and flattened. This process involves cooking the grains, dehydrating them, and pressing them, resulting in light and crispy flakes. They are commonly used in breakfast cereals, cereal bars, and can be eaten with milk, yogurt, or used in recipes like cakes and cookies. + + + + Rice_flakes + Flocos de arrroz + + + + Rice_flakes + Rice flakes + + + + Sericulture_product + Produto da sericicultura + + + + Sericulture_product + Sericulture product + + + + Sericulture_product + http://aims.fao.org/aos/agrovoc/c_6981 + + + + Seringueira + Seringueira + + + + Seringueira + Sharinga tree + + + + Soybean_meal + Farelo de soja + + + + Soybean_meal + Soybean meal + + + + Sucroenergetico + Sucroenergético + + + + Sugar_plant + Planta produtora de açúcar + + + + Sugar_plant + Sugar-producing plant + + + + Tamarindo + Tamarind + + + + Tamarindo + Tamarindo + + + + Tamarindo + https://sistemas.sede.embrapa.br/agrotermos/resources/5bf4ec8db1d13c79edfae0699ce662fe + + + + Tomato_extract + Extrato de tomate + + + + Tomato_extract + Tomato extract + + + + Triticum + Triticum + + + + Triticum + https://www.gbif.org/species/2706388 + + + + algodaoPluma + https://sistemasweb.agricultura.gov.br/sislegis/action/detalhaAto.do?method=visualizarAtoPortalMapa&chave=1830175803#:~:text=3.1.-,Algod%C3%A3o%20em%20caro%C3%A7o%3A%20%C3%A9%20o%20produto%20maduro%20e%20fisiologicamente%20desenvolvido,3.2. + + + + algodaoPluma + Produto resultante da operação de beneficiamento do algodão em caroço. + + + + algodaoPluma + Algodão em pluma + + + + amendoaandiroba + Amêndoa de andiroba + + + + amendoaandiroba + https://sistemas.sede.embrapa.br/agrotermos/resources/8d11f918a65e21f7695af788b28001d5 + + + + amendoabaru + Amêndoa de cumbaru + + + + amendoabaru + Amêndoa de baru + + + + amendoacacau + Amêndoa de cacau + + + + amendoacacau + Cocoa almond + + + + amendoacacau + https://sistemas.sede.embrapa.br/agrotermos/resources/b049f571bb7165ea6fb5d377e5dfdfd2 + + + + amendoadeouricuri + Amêndoa de licuri + + + + amendoadeouricuri + Licuri + + + + amendoadeouricuri + Ouricuri + + + + amendoamacauba + Amêndoa de macaúba + + + + amendoamacauba + Macaúba + + + + amendoamacauba + Amêndoa de macaúba + + + + azeitebabacu + Azeite de babaçu + + + + azeitebabacu + Óleo de babaçu + + + + azeitebabacu + Azeite de babaçu + + + + azeitemacauba + Azeite de macaúba + + + + azeitemacauba + https://sistemas.sede.embrapa.br/agrotermos/resources/513d52ec57a549910bf9ced35be817a8 + + + + bebibalactea + Bebida láctea + + + + bebibalactea + Dairy drink + + + + cheiroverde + Cheiro verde + + + + etanolanidro + Etanol anidro + + + + etanolhidratado + Etanol hidratado + + + + fitweed + Chicória-do-Pará + + + + fitweed + Fitweed + + + + fitweed + Coentro-bravo + + + + has_ingredient + Esta propriedade indica que um produto contém um ou mais ingredientes específicos. + + + + has_ingredient + This property indicates that a product contains one or more specific ingredients. + + + + has_ingredient + contém ingrediente + + + + has_ingredient + has ingredient + + + + is_a_hybrid_of + Esta propriedade indica que uma dada espécie é um híbrido de outras duas espécies. + + + + is_a_hybrid_of + This property indicates that a given species is a hybrid of two other species. + + + + is_a_hybrid_of + is a hybrid of + + + + is_a_hybrid_of + é um híbrido de + + + + is_ingredient_of + Esta propriedade indica que algo é um ingrediente de um produto específico. + + + + is_ingredient_of + This property indicates that something is an ingredient of a specific product. + + + + is_ingredient_of + is ingredient of + + + + is_ingredient_of + é ingrediente de + + + + polpaburiti + Polpa de buriti + + + + polpacacau + Polpa de cacau + + + + polpacaja + Polpa de cajá + + + + polpacaju + Polpa de caju + + + + polpaceriguela + Polpa de ceriguela + + + + polpaceriguela + Polpa de seriguela + + + + polpaceriguela + Polpa de ceriguela + + + + polpacupuacu + Polpa de cupuaçu + + + + polpacupuacu + https://sistemas.sede.embrapa.br/agrotermos/resources/93091ce029083f6c99e904493ae41517 + + + + polpagoiaba + Polpa de goiaba + + + + polpagraviola + Polpa de graviola + + + + polpajenipapo + Polpa de jenipapo + + + + polpamanga + Polpa de manga + + + + polpamangaba + Polpa de mangaba + + + + polpamaracuja + Polpa de maracujá + + + + polpaumbu + Polpa de umbu + + + + residue_of + A propriedade "residue_of" liga um subproduto ao produto cuja produção resulta nesse subproduto. Essa relação indica que o subproduto é um resíduo gerado durante o processo de produção do produto principal. + + + + residue_of + The "residue_of" property links a by-product to the product whose production results in this by-product. This relationship indicates that the by-product is a residue generated during the manufacturing process of the main product. + + + + residue_of + residue of + + + + residue_of + resíduo da produção de + + + + suinoVivo + Suíno vivo + + + + trigomelhorador + Trigo melhorador + + + + vacaGorda + Vaca gorda + + + + https://www.gbif.org/species/1 + Animalia + + + + https://www.gbif.org/species/1069 + Osteoglossiformes + + + + https://www.gbif.org/species/10779983 + Dipteryx odorata + + + + https://www.gbif.org/species/10792217 + Ilex + + + + https://www.gbif.org/species/1169 + Asparagales + + + + https://www.gbif.org/species/1176 + Solanales + + + + https://www.gbif.org/species/1334757 + Apis + + + + https://www.gbif.org/species/1341976 + Apis mellifera + + + + https://www.gbif.org/species/1351 + Apiales + + + + https://www.gbif.org/species/1353 + Ericales + + + + https://www.gbif.org/species/1354 + Fagales + + + + https://www.gbif.org/species/1369 + Poales + + + + https://www.gbif.org/species/1370 + Fabales + + + + https://www.gbif.org/species/1414 + Malpighiales + + + + https://www.gbif.org/species/1457 + Hymenoptera + + + + https://www.gbif.org/species/1868660 + Bombyx + + + + https://www.gbif.org/species/1868664 + Bombyx mori + + + + https://www.gbif.org/species/194 + Pinopsida + + + + https://www.gbif.org/species/196 + Liliopsida + + + + https://www.gbif.org/species/212 + Aves + + + + https://www.gbif.org/species/216 + Insecta + + + + https://www.gbif.org/species/220 + Magnoliopsida + + + + https://www.gbif.org/species/2352125 + Semaprochilodus + + + + https://www.gbif.org/species/2352126 + Semaprochilodus insignis + + + + https://www.gbif.org/species/2352134 + Semaprochilodus taeniurus + + + + https://www.gbif.org/species/2352148 + Prochilodus + + + + https://www.gbif.org/species/2352151 + Prochilodus brevis + + + + https://www.gbif.org/species/2352154 + Prochilodus lineatus + + + + https://www.gbif.org/species/2352177 + Prochilodus argenteus + + + + https://www.gbif.org/species/2353218 + Piaractus + + + + https://www.gbif.org/species/2353219 + Piaractus mesopotamicus + + + + https://www.gbif.org/species/2370578 + Tilapia + + + + https://www.gbif.org/species/2378 + Passifloraceae + + + + https://www.gbif.org/species/2389 + Convolvulaceae + + + + https://www.gbif.org/species/2396 + Rutaceae + + + + https://www.gbif.org/species/2397 + Meliaceae + + + + https://www.gbif.org/species/2398 + Anacardiaceae + + + + https://www.gbif.org/species/2402332 + Arapaima + + + + https://www.gbif.org/species/2441017 + Bos + + + + https://www.gbif.org/species/2441022 + Bos taurus + + + + https://www.gbif.org/species/2441047 + Capra + + + + https://www.gbif.org/species/2441056 + Capra hircus + + + + https://www.gbif.org/species/2441110 + Ovis aries + + + + https://www.gbif.org/species/2441213 + Sus + + + + https://www.gbif.org/species/2473720 + Gallus + + + + https://www.gbif.org/species/2499 + Juglandaceae + + + + https://www.gbif.org/species/2684241 + Pinus + + + + https://www.gbif.org/species/2684910 + Araucaria + + + + https://www.gbif.org/species/2684940 + Araucaria angustifolia + + + + https://www.gbif.org/species/2699430 + Ananas + + + + https://www.gbif.org/species/2703201 + Cenchrus + + + + https://www.gbif.org/species/2703325 + A Man-made cereal grass crop obtained from hybridization of wheat (Triticum spp) with rye (Secale cereale). + + + + https://www.gbif.org/species/2703325 + https://doi.org/10.1007/978-0-387-72297-9_9 + + + + https://www.gbif.org/species/2703325 + ×Triticosecale + + + + https://www.gbif.org/species/2703455 + Oryza + + + + https://www.gbif.org/species/2703459 + Oryza sativa + + + + https://www.gbif.org/species/2703464 + Oryza glaberrima + + + + https://www.gbif.org/species/2703910 + Saccharum + + + + https://www.gbif.org/species/2705049 + Zea + + + + https://www.gbif.org/species/2705180 + Sorghum + + + + https://www.gbif.org/species/2705181 + Sorghum bicolor + + + + https://www.gbif.org/species/2705282 + Avena + + + + https://www.gbif.org/species/2705290 + Avena sativa + + + + https://www.gbif.org/species/2705292 + Avena byzantina + + + + https://www.gbif.org/species/2705965 + Secale + + + + https://www.gbif.org/species/2705966 + Secale cereale + + + + https://www.gbif.org/species/2706050 + Hordeum + + + + https://www.gbif.org/species/2706056 + Hordeum vulgare + + + + https://www.gbif.org/species/2706141 + Pennisetum glaucum + + + + https://www.gbif.org/species/2732585 + Leopoldinia + + + + https://www.gbif.org/species/2732586 + Leopoldinia piassaba + + + + https://www.gbif.org/species/2732664 + Attalea + + + + https://www.gbif.org/species/2732833 + Attalea funifera + + + + https://www.gbif.org/species/2732877 + Attalea speciosa + + + + https://www.gbif.org/species/2735116 + Cocos + + + + https://www.gbif.org/species/2735117 + Cocos nucifera + + + + https://www.gbif.org/species/2737041 + Syagrus + + + + https://www.gbif.org/species/2738048 + Astrocaryum + + + + https://www.gbif.org/species/2738081 + Astrocaryum murumuru + + + + https://www.gbif.org/species/2738233 + Copernicia + + + + https://www.gbif.org/species/2738262 + Copernicia prunifera + + + + https://www.gbif.org/species/2739147 + Acrocomia + + + + https://www.gbif.org/species/2760990 + Musa + + + + https://www.gbif.org/species/2762680 + Musa acuminata + + + + https://www.gbif.org/species/2762950 + Musa balbisiana + + + + https://www.gbif.org/species/2766430 + Agave + + + + https://www.gbif.org/species/2855860 + Allium schoenoprasum + + + + https://www.gbif.org/species/2856681 + Allium sativum + + + + https://www.gbif.org/species/2857697 + Allium cepa + + + + https://www.gbif.org/species/2874172 + Passiflora + + + + https://www.gbif.org/species/2874190 + Passiflora edulis + + + + https://www.gbif.org/species/2874482 + Carica + + + + https://www.gbif.org/species/2874484 + Carica papaya + + + + https://www.gbif.org/species/2874506 + Cucurbita + + + + https://www.gbif.org/species/2874515 + Cucurbita maxima + + + + https://www.gbif.org/species/2874568 + Cucumis + + + + https://www.gbif.org/species/2874569 + Cucumis sativus + + + + https://www.gbif.org/species/2874570 + Cucumis melo + + + + https://www.gbif.org/species/2874573 + Cucumis anguria + + + + https://www.gbif.org/species/2874621 + Citrullus lanatus + + + + https://www.gbif.org/species/2895315 + Coffea + + + + https://www.gbif.org/species/2895345 + Coffea arabica + + + + https://www.gbif.org/species/2895528 + Coffea canephora + + + + https://www.gbif.org/species/2895591 + Genipa + + + + https://www.gbif.org/species/2895593 + Genipa americana + + + + https://www.gbif.org/species/2928509 + Ipomoea + + + + https://www.gbif.org/species/2928551 + Ipomoea batatas + + + + https://www.gbif.org/species/2928756 + Nicotiana + + + + https://www.gbif.org/species/2928774 + Nicotiana tabacum + + + + https://www.gbif.org/species/2928997 + Solanum + + + + https://www.gbif.org/species/2930137 + Solanum lycopersicum + + + + https://www.gbif.org/species/2930262 + Solanum tuberosum + + + + https://www.gbif.org/species/2930617 + Solanum melongena + + + + https://www.gbif.org/species/2932937 + Capsicum + + + + https://www.gbif.org/species/2932944 + Capsicum annuum + + + + https://www.gbif.org/species/2947121 + Dipteryx + + + + https://www.gbif.org/species/2947798 + Phaseolus + + + + https://www.gbif.org/species/2956684 + Arachis + + + + https://www.gbif.org/species/2974262 + Dimorphandra + + + + https://www.gbif.org/species/2974269 + Dimorphandra mollis + + + + https://www.gbif.org/species/2974751 + Vicia + + + + https://www.gbif.org/species/2974832 + Vicia faba + + + + https://www.gbif.org/species/2975767 + Tamarindus + + + + https://www.gbif.org/species/2975768 + Tamarindus indica + + + + https://www.gbif.org/species/2978115 + Copaifera + + + + https://www.gbif.org/species/2978132 + Copaifera multijuga + + + + https://www.gbif.org/species/2978171 + Copaifera langsdorffii + + + + https://www.gbif.org/species/2984934 + Theobroma + + + + https://www.gbif.org/species/3001068 + Malus + + + + https://www.gbif.org/species/3001244 + Malus domestica + + + + https://www.gbif.org/species/3020559 + Prunus + + + + https://www.gbif.org/species/3032212 + Corchorus + + + + https://www.gbif.org/species/3034387 + Eryngium + + + + https://www.gbif.org/species/3034425 + Eryngium foetidum + + + + https://www.gbif.org/species/3034740 + Daucus + + + + https://www.gbif.org/species/3034742 + Daucus carota + + + + https://www.gbif.org/species/3034870 + Coriandrum + + + + https://www.gbif.org/species/3034871 + Coriandrum sativum + + + + https://www.gbif.org/species/3034906 + Petroselinum + + + + https://www.gbif.org/species/3042506 + Brassica + + + + https://www.gbif.org/species/3042636 + Brassica napus + + + + https://www.gbif.org/species/3042845 + Brassica oleracea + + + + https://www.gbif.org/species/3049319 + Eruca + + + + https://www.gbif.org/species/3054350 + Juglans + + + + https://www.gbif.org/species/3054368 + Juglans regia + + + + https://www.gbif.org/species/3060685 + Manihot + + + + https://www.gbif.org/species/3060998 + Manihot esculenta + + + + https://www.gbif.org/species/3065 + Asteraceae + + + + https://www.gbif.org/species/3071157 + Hevea + + + + https://www.gbif.org/species/3071171 + Hevea brasiliensis + + + + https://www.gbif.org/species/3073 + Poaceae + + + + https://www.gbif.org/species/3075433 + Piper + + + + https://www.gbif.org/species/3075453 + Mangifera + + + + https://www.gbif.org/species/3083179 + Bertholletia + + + + https://www.gbif.org/species/3086357 + Piper nigrum + + + + https://www.gbif.org/species/3112 + Brassicaceae + + + + https://www.gbif.org/species/3119134 + Helianthus + + + + https://www.gbif.org/species/3140231 + Lactuca + + + + https://www.gbif.org/species/3152082 + Corchorus capsularis + + + + https://www.gbif.org/species/3152205 + Theobroma cacao + + + + https://www.gbif.org/species/3152208 + Theobroma grandiflorum + + + + https://www.gbif.org/species/3152652 + Gossypium + + + + https://www.gbif.org/species/3152705 + Abelmoschus + + + + https://www.gbif.org/species/3152707 + Abelmoschus esculentus + + + + https://www.gbif.org/species/3155252 + Annona + + + + https://www.gbif.org/species/3169678 + Hancornia + + + + https://www.gbif.org/species/3169679 + Hancornia speciosa + + + + https://www.gbif.org/species/3187232 + Psidium + + + + https://www.gbif.org/species/3189661 + Caryocar + + + + https://www.gbif.org/species/3189663 + Caryocar brasiliense + + + + https://www.gbif.org/species/3189948 + Paullinia + + + + https://www.gbif.org/species/3189949 + Paullinia cupana + + + + https://www.gbif.org/species/3190155 + Citrus + + + + https://www.gbif.org/species/3190164 + Citrus aurantiifolia + + + + https://www.gbif.org/species/3190512 + Carapa + + + + https://www.gbif.org/species/3190513 + Carapa guianensis + + + + https://www.gbif.org/species/3190592 + Spondias + + + + https://www.gbif.org/species/3190598 + Spondias purpurea + + + + https://www.gbif.org/species/3190638 + Mangifera indica + + + + https://www.gbif.org/species/3191274 + Malpighia + + + + https://www.gbif.org/species/3191347 + Byrsonima + + + + https://www.gbif.org/species/3191361 + Byrsonima crassifolia + + + + https://www.gbif.org/species/359 + Mammalia + + + + https://www.gbif.org/species/3740 + Bromeliaceae + + + + https://www.gbif.org/species/3924 + Araucariaceae + + + + https://www.gbif.org/species/3925 + Pinaceae + + + + https://www.gbif.org/species/3990 + Lecythidaceae + + + + https://www.gbif.org/species/404 + Piperales + + + + https://www.gbif.org/species/412 + Gentianales + + + + https://www.gbif.org/species/414 + Asterales + + + + https://www.gbif.org/species/4228 + Arapaimidae + + + + https://www.gbif.org/species/4287106 + Serrasalmidae + + + + https://www.gbif.org/species/4334 + Apidae + + + + https://www.gbif.org/species/44 + Chordata + + + + https://www.gbif.org/species/4686 + Musaceae + + + + https://www.gbif.org/species/4691 + Euphorbiaceae + + + + https://www.gbif.org/species/5014 + Myrtaceae + + + + https://www.gbif.org/species/5015 + Rosaceae + + + + https://www.gbif.org/species/5212877 + Arapaima gigas + + + + https://www.gbif.org/species/5288819 + Ananas comosus + + + + https://www.gbif.org/species/5290052 + Zea mays + + + + https://www.gbif.org/species/5293398 + Euterpe oleracea + + + + https://www.gbif.org/species/5293403 + Euterpe edulis + + + + https://www.gbif.org/species/5293875 + Syagrus coronata + + + + https://www.gbif.org/species/5294777 + Mauritia flexuosa + + + + https://www.gbif.org/species/5302 + Suidae + + + + https://www.gbif.org/species/5330758 + Colocasia + + + + https://www.gbif.org/species/5330776 + Colocasia esculenta + + + + https://www.gbif.org/species/5350452 + Phaseolus vulgaris + + + + https://www.gbif.org/species/5353770 + Arachis hypogaea + + + + https://www.gbif.org/species/5359660 + Glycine max + + + + https://www.gbif.org/species/537 + Characiformes + + + + https://www.gbif.org/species/5372392 + Vitis vinifera + + + + https://www.gbif.org/species/5380041 + Ricinus communis + + + + https://www.gbif.org/species/5386 + Fabaceae + + + + https://www.gbif.org/species/54 + Arthropoda + + + + https://www.gbif.org/species/5407099 + Annona squamosa + + + + https://www.gbif.org/species/5407273 + Annona muricata + + + + https://www.gbif.org/species/5414252 + Ilex paraguariensis + + + + https://www.gbif.org/species/5420380 + Psidium guajava + + + + https://www.gbif.org/species/5421367 + Anacardium + + + + https://www.gbif.org/species/5421368 + Anacardium occidentale + + + + https://www.gbif.org/species/5421429 + Malpighia glabra + + + + https://www.gbif.org/species/551 + Alismatales + + + + https://www.gbif.org/species/552 + Arecales + + + + https://www.gbif.org/species/5828197 + Cenchrus americanus + + + + https://www.gbif.org/species/587 + Perciformes + + + + https://www.gbif.org/species/6 + Plantae + + + + https://www.gbif.org/species/627 + Zingiberales + + + + https://www.gbif.org/species/640 + Pinales + + + + https://www.gbif.org/species/6634 + Cucurbitaceae + + + + https://www.gbif.org/species/6636 + Caricaceae + + + + https://www.gbif.org/species/6647 + Caryocaraceae + + + + https://www.gbif.org/species/6657 + Sapindaceae + + + + https://www.gbif.org/species/6672 + Vitaceae + + + + https://www.gbif.org/species/6676 + Malpighiaceae + + + + https://www.gbif.org/species/6678 + Piperaceae + + + + https://www.gbif.org/species/6685 + Malvaceae + + + + https://www.gbif.org/species/6701 + Apocynaceae + + + + https://www.gbif.org/species/6716 + Aquifoliaceae + + + + https://www.gbif.org/species/6720 + Apiaceae + + + + https://www.gbif.org/species/690 + Myrtales + + + + https://www.gbif.org/species/691 + Rosales + + + + https://www.gbif.org/species/6979 + Araceae + + + + https://www.gbif.org/species/718 + Magnoliales + + + + https://www.gbif.org/species/7222050 + Vitales + + + + https://www.gbif.org/species/7224005 + Cucurbitales + + + + https://www.gbif.org/species/7225535 + Brassicales + + + + https://www.gbif.org/species/7226638 + Aquifoliales + + + + https://www.gbif.org/species/723 + Galliformes + + + + https://www.gbif.org/species/731 + Artiodactyla + + + + https://www.gbif.org/species/7331 + Prochilodontidae + + + + https://www.gbif.org/species/7403263 + Lactuca sativa + + + + https://www.gbif.org/species/7413879 + Acrocomia aculeata + + + + https://www.gbif.org/species/7467468 + Vitis + + + + https://www.gbif.org/species/7474861 + Eruca sativa + + + + https://www.gbif.org/species/7493935 + Eucalyptus + + + + https://www.gbif.org/species/7647136 + Citrus limon + + + + https://www.gbif.org/species/7681 + Arecaceae + + + + https://www.gbif.org/species/7682 + Amaryllidaceae + + + + https://www.gbif.org/species/7683 + Asparagaceae + + + + https://www.gbif.org/species/7707728 + Tracheophyta + + + + https://www.gbif.org/species/7717 + Solanaceae + + + + https://www.gbif.org/species/7828157 + Petroselinum crispum + + + + https://www.gbif.org/species/7906352 + Euterpe + + + + https://www.gbif.org/species/7968287 + Glycine + + + + https://www.gbif.org/species/797 + Lepidoptera + + + + https://www.gbif.org/species/8077391 + Citrus aurantium + + + + https://www.gbif.org/species/8088560 + Bertholletia excelsa + + + + https://www.gbif.org/species/8123118 + Agave sisalana + + + + https://www.gbif.org/species/8149923 + Prunus persica + + + + https://www.gbif.org/species/8185571 + Spondias mombin + + + + https://www.gbif.org/species/8230360 + Spondias tuberosa + + + + https://www.gbif.org/species/8257011 + Citrullus + + + + https://www.gbif.org/species/8413640 + Mauritia + + + + https://www.gbif.org/species/8522 + Cichlidae + + + + https://www.gbif.org/species/8717303 + Cucurbita pepo + + + + https://www.gbif.org/species/8798 + Rubiaceae + + + + https://www.gbif.org/species/8832 + Bombycidae + + + + https://www.gbif.org/species/9188216 + Ricinus + + + + https://www.gbif.org/species/9206251 + Helianthus annuus + + + + https://www.gbif.org/species/9291 + Annonaceae + + + + https://www.gbif.org/species/9326020 + Gallus gallus + + + + https://www.gbif.org/species/933 + Sapindales + + + + https://www.gbif.org/species/9331 + Phasianidae + + + + https://www.gbif.org/species/941 + Malvales + + + + https://www.gbif.org/species/9457155 + Gallus gallus f. domesticus + + + + https://www.gbif.org/species/9531221 + Ovis + + + + https://www.gbif.org/species/9614 + Bovidae + + + + https://www.gbif.org/species/9624496 + Allium + + + + + + + + + + + + + + + + xsd:anyURI + + + + xsd:anyURI + + + + xsd:anyURI + + + + xsd:anyURI + + + + xsd:anyURI + + + + + + diff --git a/test/models/mod/test_artefact.rb b/test/models/mod/test_artefact.rb index 8d254040..e9336531 100644 --- a/test/models/mod/test_artefact.rb +++ b/test/models/mod/test_artefact.rb @@ -63,6 +63,7 @@ def test_bring_attrs assert_equal r.analytics, ont.analytics end + def test_latest_distribution create_test_ontology sa = LinkedData::Models::SemanticArtefact.find('STY') diff --git a/test/models/test_class_request_lang.rb b/test/models/test_class_request_lang.rb index 2abd0745..e3b12455 100644 --- a/test/models/test_class_request_lang.rb +++ b/test/models/test_class_request_lang.rb @@ -21,15 +21,32 @@ def self.parse process_rdf: true, index_search: false, run_metrics: false, reasoning: false ) + new('').submission_parse('APTO', 'Test parse ontology has iri label', + 'test/data/ontology_files/apto.owl', 1, + process_rdf: true, index_search: false, + run_metrics: false, reasoning: false + ) end def teardown reset_lang end + def test_parse_ontology_has_iri_label + cls_labels_1 = get_class_by_lang('http://aims.fao.org/aos/agrovoc/c_3376', 'APTO', + requested_lang: :'pt-br').label + + assert_includes cls_labels_1 , 'Hortaliça de folha' + + cls_labels_2 = get_class_by_lang('http://aims.fao.org/aos/agrovoc/c_3376', 'APTO', + requested_lang: :en).label + + assert_includes cls_labels_2, 'Leaf vegetable' + end + def test_requested_language_found - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', 'INRAETHES', requested_lang: :FR) assert_equal 'industrialisation', cls.prefLabel assert_equal ['développement industriel'], cls.synonym @@ -38,7 +55,7 @@ def test_requested_language_found assert_equal ['développement industriel'], properties.select { |x| x.to_s['altLabel'] }.values.first.map(&:to_s) assert_equal ['industrialisation'], properties.select { |x| x.to_s['prefLabel'] }.values.first.map(&:to_s) - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', 'INRAETHES', requested_lang: :EN) assert_equal 'industrialization', cls.prefLabel assert_equal ['industrial development'], cls.synonym @@ -47,7 +64,7 @@ def test_requested_language_found assert_equal ['industrial development'], properties.select { |x| x.to_s['altLabel'] }.values.first.map(&:to_s) assert_equal ['industrialization'], properties.select { |x| x.to_s['prefLabel'] }.values.first.map(&:to_s) - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_13078', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_13078', 'INRAETHES', requested_lang: :FR) assert_equal 'carbone renouvelable', cls.prefLabel @@ -55,11 +72,11 @@ def test_requested_language_found def test_requeststore_not_set skip 'need to be fixed in the futur for Virtuoso' - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', 'INRAETHES', requested_lang: nil) assert_equal 'industrialization', cls.prefLabel assert_equal cls.prefLabel, cls.prefLabel(include_languages: true) - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', 'INRAETHES', requested_lang: :ALL) assert_equal 'industrialization', cls.prefLabel assert_equal Hash, cls.prefLabel(include_languages: true).class @@ -70,7 +87,7 @@ def test_requeststore_not_set def test_requested_language_not_found - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', 'INRAETHES', requested_lang: :ES) assert_nil cls.prefLabel assert_empty cls.synonym @@ -82,7 +99,7 @@ def test_requested_language_not_found def test_request_multiple_languages - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', 'INRAETHES', requested_lang: [:EN, :FR]) pref_label_all_languages = { en: 'industrialization', fr: 'industrialisation' } assert_includes pref_label_all_languages.values, cls.prefLabel @@ -91,7 +108,7 @@ def test_request_multiple_languages def test_request_all_languages - cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', + cls = get_class_by_lang('http://opendata.inrae.fr/thesaurusINRAE/c_22817', 'INRAETHES', requested_lang: :ALL) pref_label_all_languages = { en: 'industrialization', fr: 'industrialisation' } @@ -132,12 +149,12 @@ def get_class(cls, ont) LinkedData::Models::Class.find(cls).in(sub).first end - def get_class_by_lang(cls, requested_lang:, portal_languages: nil) + def get_class_by_lang(cls, ont, requested_lang:, portal_languages: nil) lang_set requested_lang: requested_lang, portal_languages: portal_languages - cls = get_class(cls, 'INRAETHES') + cls = get_class(cls, ont) refute_nil cls cls.bring_remaining cls.bring :unmapped cls end -end \ No newline at end of file +end diff --git a/test/models/test_ontology_common.rb b/test/models/test_ontology_common.rb index a0673129..ce5696f1 100644 --- a/test/models/test_ontology_common.rb +++ b/test/models/test_ontology_common.rb @@ -7,20 +7,21 @@ def create_count_mapping LinkedData::Mappings.create_mapping_counts(Logger.new(TestLogFile.new)) LinkedData::Models::MappingCount.where.all.length end + def submission_dependent_objects(format, acronym, user_name, name_ont) - #ontology format + # ontology format owl = LinkedData::Models::OntologyFormat.where(:acronym => format).first assert_instance_of LinkedData::Models::OntologyFormat, owl - #user test_linked_models + # user test_linked_models user = LinkedData::Models::User.where(:username => user_name).first if user.nil? - user = LinkedData::Models::User.new(:username => user_name, :email => "some@email.org" ) + user = LinkedData::Models::User.new(:username => user_name, :email => "some@email.org") user.passwordHash = "some random pass hash" user.save end # - #ontology + # ontology ont = LinkedData::Models::Ontology.where(:acronym => acronym).first if ont.nil? @@ -35,7 +36,7 @@ def submission_dependent_objects(format, acronym, user_name, name_ont) contact = LinkedData::Models::Contact.where(name: contact_name, email: contact_email).first contact = LinkedData::Models::Contact.new(name: contact_name, email: contact_email).save if contact.nil? - #Submission Status + # Submission Status return owl, ont, user, contact end @@ -47,7 +48,7 @@ def submission_dependent_objects(format, acronym, user_name, name_ont) # diff = false # delete = true # delete any existing submissions ############################################## - def submission_parse(acronym, name, ontologyFile, id, parse_options={}) + def submission_parse(acronym, name, ontologyFile, id, parse_options = {}) if Goo.backend_vo? old_slices = Goo.slice_loading_size Goo.slice_loading_size = 20 @@ -67,7 +68,7 @@ def submission_parse(acronym, name, ontologyFile, id, parse_options={}) end end end - ont_submission = LinkedData::Models::OntologySubmission.new({ :submissionId => id}) + ont_submission = LinkedData::Models::OntologySubmission.new({ :submissionId => id }) ont_submission.uri = RDF::URI.new('https://test.com') ont_submission.description = 'description example' ont_submission.status = 'beta' @@ -85,7 +86,7 @@ def submission_parse(acronym, name, ontologyFile, id, parse_options={}) ontology_type = "UMLS" end - ont_format, ont, user, contact = submission_dependent_objects(ontology_type, acronym, "test_linked_models", name) + ont_format, ont, _, contact = submission_dependent_objects(ontology_type, acronym, "test_linked_models", name) ont_submission.contact = [contact] ont_submission.released = DateTime.now - 4 ont_submission.hasOntologyLanguage = ont_format @@ -105,7 +106,7 @@ def submission_parse(acronym, name, ontologyFile, id, parse_options={}) ont_submission.save - assert_equal true, ont_submission.exist?(reload=true) + assert_equal true, ont_submission.exist?(reload = true) begin tmp_log = Logger.new(TestLogFile.new) t = Benchmark.measure do @@ -124,12 +125,11 @@ def submission_parse(acronym, name, ontologyFile, id, parse_options={}) def init_test_ontology_msotest(acr) ont = LinkedData::Models::Ontology.find(acr) - .include(submissions: [:submissionStatus]).first + .include(submissions: [:submissionStatus]).first if not ont.nil? - return LinkedData::TestCase.backend_4s_delete end - ont_submission = LinkedData::Models::OntologySubmission.new({ :submissionId => 1 }) + ont_submission = LinkedData::Models::OntologySubmission.new({ :submissionId => 1 }) ont_submission.uri = RDF::URI.new('https://test.com') ont_submission.description = 'description example' ont_submission.status = 'beta' @@ -145,7 +145,7 @@ def init_test_ontology_msotest(acr) uploadFilePath = LinkedData::Models::OntologySubmission.copy_file_repository(acr, 1, file_path) ont_submission.uploadFilePath = uploadFilePath owl, ont, user, contact = submission_dependent_objects("OWL", acr, "test_linked_models", - "%s ont created by mso for testing"%acr) + "%s ont created by mso for testing" % acr) ont.administeredBy = [user] ont_submission.contact = [contact] ont_submission.released = DateTime.now - 4 @@ -166,8 +166,8 @@ def init_test_ontology_msotest(acr) ont_submission.authorProperty = RDF::URI.new("http://bioportal.bioontology.org/ontologies/msotes#myAuthor") assert (ont_submission.valid?) ont_submission.save - assert_equal true, ont_submission.exist?(reload=true) - parse_options = {process_rdf: true, extract_metadata: false} + assert_equal true, ont_submission.exist?(reload = true) + parse_options = { process_rdf: true, extract_metadata: false } begin tmp_log = Logger.new(TestLogFile.new) ont_submission.process_submission(tmp_log, parse_options) @@ -177,8 +177,8 @@ def init_test_ontology_msotest(acr) end roots = ont_submission.roots - #class99 is equivalent to intersection of ... - #it shouldnt be at the root + # class99 is equivalent to intersection of ... + # it shouldnt be at the root if acr["OBSPROPSDISC"] assert roots.length == 5 elsif acr["OBSPROPS"] @@ -189,13 +189,13 @@ def init_test_ontology_msotest(acr) assert roots.length == 6 end assert !roots.map { |x| x.id.to_s } - .include?("http://bioportal.bioontology.org/ontologies/msotes#class99") + .include?("http://bioportal.bioontology.org/ontologies/msotes#class99") - #test to see if custom properties were saved in the graph - custom_props = [ "http://bioportal.bioontology.org/ontologies/msotes#myPrefLabel", - "http://bioportal.bioontology.org/ontologies/msotes#myDefinition", - "http://bioportal.bioontology.org/ontologies/msotes#mySynonymLabel", - "http://bioportal.bioontology.org/ontologies/msotes#myAuthor"] + # test to see if custom properties were saved in the graph + custom_props = ["http://bioportal.bioontology.org/ontologies/msotes#myPrefLabel", + "http://bioportal.bioontology.org/ontologies/msotes#myDefinition", + "http://bioportal.bioontology.org/ontologies/msotes#mySynonymLabel", + "http://bioportal.bioontology.org/ontologies/msotes#myAuthor"] custom_props.each do |p| query = < 'text/plain'}, ['test file']] + [200, { 'Content-Type' => 'text/plain' }, ['test file']] end, Port: server_port ) @@ -241,6 +241,7 @@ def start_server end private + def port_in_use?(port) begin server = TCPServer.new(port)