1

My current data is to fetch some data from VIVO. I found some existed VIVO endpoints of some universities like:

Here's a personal page of a researcher, generated by VIVO:

How could I try to query this researcher's publications by the SPARQL endpoints? What shall I put as the URIs in the SPARQL queries?

Joshua Taylor
  • 84,998
  • 9
  • 154
  • 353
Yuchun Cui
  • 69
  • 2
  • 7

1 Answers1

4

You need to explore the endpoint a bit, by using some general queries and eyeballing the result, to figure out the general "shape" of the data.

First query I did (on the first endpoint you provided) was a simple query to see what classes are available:

SELECT DISTINCT ?Concept WHERE {[] a ?Concept}

Browsing through the result I saw that they apparently use the foaf:Person class, which seems a likely candidate to find people in. So, second query, see what instances of class foaf:Person look like:

SELECT * WHERE {?x a foaf:Person; ?p ?y } ORDER BY ?x LIMIT 100

This retrieves all instances ?x person, and for each instance its properties (?p) and the values of those properties (?y). I order on ?x to have all results for the same person together, and I limit to 100 because I only need to see a small subset of all results (after all, I'm only exploring the shape).

Looking at that data I see that people typically have a foaf:firstName and foaf:lastName property with a string-value, and also that they have a rdfs:label property which has the full "firstname, lastname" string as a language-tagged literal. So to retrieve specific individuals, I can query on those properties to get the individual's URI, e.g.:

SELECT ?x WHERE {?x a foaf:Person; foaf:lastName "Alonso"; ?p ?y} LIMIT 10 

or

SELECT ?x WHERE {?x a foaf:Person; rdfs:label "Alonso, Jose-Manuel"@en-us . } LIMIT 10

Of course, we can also actually look at the value of ?x which is typically of the form:

http://reach.suny.edu/individual/Alonso_Jose-Manuel

If you actually follow that link in a browser it will redirect you to the page http://reach.suny.edu/display/Alonso_Jose-Manuel you asked about. So another way to query for that particular individual is to take the URL of his webpage, replace the display with individual, and use that as the subject-URI in your SPARQL query.

Jeen Broekstra
  • 21,642
  • 4
  • 51
  • 73
  • Hi Jeen thanks for your detailed explanation. I get your idea. and I had a try, but met some problem. I put the question below, is it possible for you to take a look?Thanks! – Yuchun Cui Oct 14 '13 at 15:42