Class: BrowserWebData::SPARQLRequest

Inherits:
Object
  • Object
show all
Includes:
SPARQLQueries
Defined in:
lib/browser_web_data_entity_sumarization/sparql_request.rb

Overview

SPARQLRequest class helps to retrieve results from SPARQL endpoints. Actual implementation is mostly suitable for dbpedia.org/sparql.

Instance Method Summary collapse

Methods included from SPARQLQueries

#all_predicates_by_object, #all_predicates_by_object_and_subject, #all_predicates_by_subject, #count_of_identical_predicates, #count_predicate_by_entity, #entity_classes, included, #resource_properties, #resources_by_dbpedia_page_rank

Constructor Details

#initialize(sparql_endpoint = 'http://dbpedia.org/sparql') ⇒ SPARQLRequest

Create new instance of SPARQLRequest.

Parameters:

  • sparql_endpoint (String) (defaults to: 'http://dbpedia.org/sparql')

    Optional parameter. Default value is dbpedia.org/sparql



17
18
19
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 17

def initialize(sparql_endpoint = 'http://dbpedia.org/sparql')
  @sparql_client = SPARQL::Client.new(sparql_endpoint)
end

Instance Method Details

#get_all_predicates_by_object(object) ⇒ Array<RDF::Query::Solution>

The method apply request for SPARQLQueries#all_predicates_by_object query.

Parameters:

  • object (String)

    Object URL. If no contain HTTP will be used prefix dbo:

Returns:

  • (Array<RDF::Query::Solution>)

    predicates



38
39
40
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 38

def get_all_predicates_by_object(object)
  process_query(all_predicates_by_object(object))
end

#get_all_predicates_by_subject(subject, only_literal = false) ⇒ Array<RDF::Solution>, Array<RDF::Query::Solution>

The method apply request for SPARQLQueries#all_predicates_by_subject query.

Parameters:

  • subject (String)

    Subject URL. If no contain HTTP will be used prefix dbo:

  • only_literal (TrueClass, FalseClass) (defaults to: false)

Returns:

  • (Array<RDF::Solution>)

    resources

  • (Array<RDF::Query::Solution>)

    predicates



51
52
53
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 51

def get_all_predicates_by_subject(subject, only_literal = false)
  process_query(all_predicates_by_subject(subject, only_literal))
end

#get_all_predicates_by_subject_object(subject, object) ⇒ Array<RDF::Query::Solution>

The method apply request for SPARQLQueries#all_predicates_by_object query.

Parameters:

  • subject (String)

    Subject URL. If no contain HTTP will be used prefix dbo:

  • object (String)

    Object URL. If no contain HTTP will be used prefix dbo:

Returns:

  • (Array<RDF::Query::Solution>)

    predicates



62
63
64
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 62

def get_all_predicates_by_subject_object(subject, object)
  process_query(all_predicates_by_object_and_subject(subject, object))
end

#get_count_of_identical_predicates(predicates) ⇒ Float

The method apply request for SPARQLQueries#count_of_identical_predicates query.

Parameters:

  • predicates (Array<String>)

    Array of predicates URL. If no contain HTTP will be used prefix dbo:

Returns:

  • (Float)

    count



83
84
85
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 83

def get_count_of_identical_predicates(predicates)
  process_query(count_of_identical_predicates(predicates))[0].to_h[:count].to_s.to_f
end

#get_count_predicate_by_entity(entity_type, predicate) ⇒ Array<RDF::Query::Solution>

The method apply request for SPARQLQueries#count_predicate_by_entity query.

Parameters:

Returns:

  • (Array<RDF::Query::Solution>)

    predicates



73
74
75
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 73

def get_count_predicate_by_entity(entity_type, predicate)
  process_query(count_predicate_by_entity(entity_type, predicate))
end

#get_entity_classes(resource) ⇒ Array<RDF::Query::Solution>

The method apply request for SPARQLQueries#entity_classes query.

Parameters:

  • resource (String)

    Resource URL. If no contain HTTP will be used prefix dbo:

Returns:

  • (Array<RDF::Query::Solution>)

    classes



111
112
113
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 111

def get_entity_classes(resource)
  process_query(entity_classes(resource))
end

#get_resource_properties(resource, lang = :en) ⇒ Array<Hash>

The method apply request for SPARQLQueries#resource_properties query.

Parameters:

  • resource (String)

    Resource URL. If no contain HTTP will be used prefix dbo:

Returns:

  • (Array<Hash>)

    resources_properties



93
94
95
96
97
98
99
100
101
102
103
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 93

def get_resource_properties(resource, lang = :en)
  process_query(resource_properties(resource, lang)).map{|solution|
    solution = solution.to_h
    {
      predicate: solution[:predicate],
      predicate_label: solution[:predicate_label],
      value: solution[:value],
      value_label: solution[:value_label]
    }
  }
end

#get_resources_by_dbpedia_page_rank(entity_type, count = 10) ⇒ Array<RDF::Query::Solution>

The method apply request for SPARQLQueries#resources_by_dbpedia_page_rank query.

Parameters:

Returns:

  • (Array<RDF::Query::Solution>)

    resources



28
29
30
# File 'lib/browser_web_data_entity_sumarization/sparql_request.rb', line 28

def get_resources_by_dbpedia_page_rank(entity_type, count = 10)
  process_query(resources_by_dbpedia_page_rank(entity_type, count))
end