Questioning Authority Gem and Linked Data E. Lynette Rayle Cornell University LD4L Labs November 2016
Extending Questioning Authority https://github.com/ld4l-labs/questioning_authority
Usage of Linked Data by Apps Context: Sufia app Goals: get a list of terms matching search criteria that allows for a list of terms to autocomplete a metadata field upon selection, store the URI as the value of the metadata field cache the label for performance get more linked data about a term to link out to other resources from the resource show page
Ontologies Configured in QA Fork Included in forked QA: OCLC Fast Linked Data Library of Congress FAO-ArgroVoc (United Nation's Food and Agriculture Organization)
Two Approaches Term Search Term Fetch returns multiple terms based on a query limited set of predicates returned with each result Term Fetch returns triples for a single term much broader set of predicates returned
Configuring Term Search Minimal Configuration search: url: http://experimental.worldcat.org/fast/search ?query=cql.any+all+%22__QUERY__%22 &sortKeys=usage &maximumRecords=10 http_accept: application/rdf+xml replacement_count: 0
Configuring Term Search Configuration with Replacements search: url: http://experimental.worldcat.org/fast/search ?query=cql.any+all+%22__QUERY__%22 &sortKeys=usage &maximumRecords=__MAX_RECORDS__ http_accept: application/rdf+xml replacement_count: 1 replacement_1: param: maximumRecords pattern: __MAX_RECORDS__ default: "20"
Configuring Term Search Configuration with Sub-authorities search: url: http://experimental.worldcat.org/fast/search ?query=__SUB_AUTH__+all+%22__QUERY__%22 &sortKeys=usage &maximumRecords=__MAX_RECORDS__ ... subauthorities: replacement: pattern: __SUB_AUTH__ default: "cql.any" topic: oclc.topic geographic: oclc.geographic event_name: oclc.eventName personal_name: oclc.personalName corporate_name: oclc.corporateName
Demo access QA through app
SEARCH RESULTS within Authority http://localhost:3000/qa/search/linked_data/oclc_fast?q= Cornell&maximumRecords=3 [{"uri":"http://id.worldcat.org/fast/530369", "id":"530369", "label":"Cornell University"}, {"uri":"http://id.worldcat.org/fast/5140", "id":"5140", "label":"Cornell, Joseph"}, {"uri":"http://id.worldcat.org/fast/557490", "id":"557490", "label":"New York State School of Industrial and Labor Relations"}]
SEARCH RESULTS within Sub-authority http://localhost:3000/qa/search/linked_data/oclc_fast/pe rsonal_name?q=Cornell&maximumRecords=3 [{"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"}]
Configuring Linked Data field property :keyword_uri, predicate: ::RDF::URI.new('http://www.teeal.org/ns#agrovoc_keyword' ), multiple: false property :keyword, predicate: ::RDF::URI.new('http://www.teeal.org/ns#keyword_label'), multiple: false do |index| index.as :stored_searchable, :facetable end
Auto complete Show page links Demo Auto complete Show page links
Challenges Connecting to Linked Data Sources
Access Challenges Inconsistent mechanism for accessing authorities content negotiation returning RDF (preferred) parameterized – search terms, return count, etc. post document – DBpedia requires an xml query document SPARQL queries (potential) Restrictions on accessing authorities pre-registration of username (GeoNames) login with content negotiation (GeoNames, Fedora) limited number of queries allowed (LoC)
Usage Challenges User selection challenges Quantity of matching results are often large. Linked data graphs do not have order. How to provide additional information for user selection? Exacerbated if data comes from multiple linked data sources. How to surface rich linked data through the UI?
Continuing Work
Open Work QA LDF sorting query results by identified predicate adding additional information to query results configure getting a single term from LDF configure getting terms via query from LDF requires all terms from source to be downloaded to LDF TS requires identification of URL syntax for passing SPARQL query LDF requirements for cache refresh support for cache refresh in Marmotta and/or BlazeGraph configure Marmotta implementation in BlazeGraph
Open Work (Continued) Hydra Editor Leverage relationships linked data type two fields in form: 1) label (visible), 2) uri (hidden) save behavior?: 1) label saved to solr, 2) uri saved to fedora reusable javascript for auto-complete built in to gem Leverage relationships broader, narrower, same as, etc. UIs that can leverage linked data Apply query across multiple authorities
Discussion