使用SPARQL端点查询VIVO数据

时间:2013-10-13 20:28:03

标签: rdf sparql

我目前的数据是从VIVO获取一些数据。我找到了一些大学的现有VIVO端点,如:

这是由VIVO生成的研究人员的个人页面:

我怎样才能尝试通过SPARQL端点查询此研究人员的出版物?我应该将什么作为SPARQL查询中的URI?

1 个答案:

答案 0 :(得分:4)

您需要通过使用一些常规查询和眼球结果来探索端点,以找出数据的一般“形状”。

我做的第一个查询(在您提供的第一个端点上)是一个简单的查询,以查看可用的类:

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

浏览结果我看到他们显然使用的是foaf:Person类,这似乎很适合找人。所以,第二个查询,看看类foaf:Person的实例是什么样的: / p>

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

这将检索所有实例?x person,并为每个实例检索其属性(?p)以及这些属性的值(?y)。我在?x订购,将同一个人的所有结果放在一起,我限制为100,因为我只需要查看所有结果的一小部分(毕竟,我只是在探索形状)。

查看该数据,我发现人们通常拥有带有字符串值的foaf:firstNamefoaf:lastName属性,并且他们还拥有rdfs:label属性,其中包含完整的“firstname” ,lastname“string as a language-tagged literal。因此,为了检索特定的个体,我可以查询这些属性以获取个体的URI,例如:

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

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

当然,我们实际上也可以查看?x的值,该值通常为以下形式:

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

如果您在浏览器中实际关注该链接,则会将您重定向到您询问的页面http://reach.suny.edu/display/Alonso_Jose-Manuel。因此,查询该特定个人的另一种方法是获取其网页的网址,将display替换为individual,并将其用作SPARQL查询中的subject-URI。