Class: Qa::Authorities::LinkedData::SearchQuery

Inherits:
Object
  • Object
show all
Includes:
RdfHelper
Defined in:
lib/qa/authorities/linked_data/search_query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(search_config) ⇒ SearchQuery

Returns a new instance of SearchQuery.

Parameters:

  • search_config (SearchConfig)

    The search portion of the config



9
10
11
# File 'lib/qa/authorities/linked_data/search_query.rb', line 9

def initialize(search_config)
  @search_config = search_config
end

Instance Attribute Details

#search_configObject (readonly)

Returns the value of attribute search_config.



13
14
15
# File 'lib/qa/authorities/linked_data/search_query.rb', line 13

def search_config
  @search_config
end

Instance Method Details

#search(query, language: nil, replacements: {}, subauth: nil) ⇒ String

Search a linked data authority

Examples:

Json Results for Linked Data Search

[ {"uri":"http://id.worldcat.org/fast/5140","id":"5140","label":"Cornell, Joseph"},
  {"uri":"http://id.worldcat.org/fast/72456","id":"72456","label":"Cornell, Sarah Maria, 1802-1832"},
  {"uri":"http://id.worldcat.org/fast/409667","id":"409667","label":"Cornell, Ezra, 1807-1874"} ]

Parameters:

  • the (String)

    query

  • (optional) (Symbol)

    language: language used to select literals when multi-language is supported (e.g. :en, :fr, etc.)

  • (optional) (Hash)

    replacements: replacement values with { pattern_name (defined in YAML config) => value }

  • subauth: (String) (defaults to: nil)

    the subauthority to query

Returns:

  • (String)

    json results

Raises:



27
28
29
30
31
32
33
34
# File 'lib/qa/authorities/linked_data/search_query.rb', line 27

def search(query, language: nil, replacements: {}, subauth: nil)
  raise Qa::InvalidLinkedDataAuthority, "Unable to initialize linked data search sub-authority #{subauth}" unless subauth.nil? || subauthority?(subauth)
  language ||= search_config.language
  url = search_config.url_with_replacements(query, subauth, replacements)
  Rails.logger.info "QA Linked Data search url: #{url}"
  graph = get_linked_data(url)
  parse_search_authority_response(graph, language)
end