Rdf 使用SPARQL端点查询活体数据

Rdf 使用SPARQL端点查询活体数据,rdf,sparql,Rdf,Sparql,我目前的数据是从维梧获取一些数据。我发现一些大学存在一些VIVO端点,如: 以下是一位研究人员的个人页面,由维梧生成: 我如何尝试通过SPARQL端点查询该研究人员的出版物?我应该在SPARQL查询中放置什么作为URI 您需要通过使用一些常规查询和查看结果,稍微探索一下端点,以了解数据的一般“形状” 我做的第一个查询(在您提供的第一个端点上)是一个简单的查询,以查看哪些类可用: SELECT DISTINCT ?Concept WHERE {[] a ?Concept} 浏览结果

我目前的数据是从维梧获取一些数据。我发现一些大学存在一些VIVO端点,如:

以下是一位研究人员的个人页面,由维梧生成:


我如何尝试通过SPARQL端点查询该研究人员的出版物?我应该在SPARQL查询中放置什么作为URI

您需要通过使用一些常规查询和查看结果,稍微探索一下端点,以了解数据的一般“形状”

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

SELECT DISTINCT ?Concept WHERE {[] a ?Concept}
浏览结果时,我看到他们显然使用了
foaf:Person
类,这似乎是一个很有可能找到人的候选类。所以,第二个查询,看看类
foaf:Person
的实例是什么样的:

SELECT * WHERE {?x a foaf:Person; ?p ?y } ORDER BY ?x LIMIT 100
这将检索所有实例
?x
个人,以及每个实例的属性(
?p
)和这些属性的值(
?y
)。我在
?x
上下订单,将同一个人的所有结果放在一起,我将其限制为100,因为我只需要看到所有结果的一小部分(毕竟,我只是在探索形状)

查看这些数据,我发现人们通常有一个带有字符串值的
foaf:firstName
foaf:lastName
属性,还有一个
rdfs:label
属性,该属性将完整的“firstName,lastName”字符串作为标记文字的语言。因此,要检索特定的个人,我可以查询这些属性以获取个人的URI,例如:

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

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


如果你真的在浏览器中跟随该链接,它会将你重定向到你所询问的页面。因此,查询特定个人的另一种方法是获取其网页的URL,将
显示
替换为
个人
,并将其用作SPARQL查询中的主题URI

您需要通过使用一些常规查询和查看结果,稍微探索一下端点,以了解数据的一般“形状”

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

SELECT DISTINCT ?Concept WHERE {[] a ?Concept}
浏览结果时,我看到他们显然使用了
foaf:Person
类,这似乎是一个很有可能找到人的候选类。所以,第二个查询,看看类
foaf:Person
的实例是什么样的:

SELECT * WHERE {?x a foaf:Person; ?p ?y } ORDER BY ?x LIMIT 100
这将检索所有实例
?x
个人,以及每个实例的属性(
?p
)和这些属性的值(
?y
)。我在
?x
上下订单,将同一个人的所有结果放在一起,我将其限制为100,因为我只需要看到所有结果的一小部分(毕竟,我只是在探索形状)

查看这些数据,我发现人们通常有一个带有字符串值的
foaf:firstName
foaf:lastName
属性,还有一个
rdfs:label
属性,该属性将完整的“firstName,lastName”字符串作为标记文字的语言。因此,要检索特定的个人,我可以查询这些属性以获取个人的URI,例如:

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

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


如果你真的在浏览器中跟随该链接,它会将你重定向到你所询问的页面。因此,查询特定个人的另一种方法是获取其网页的URL,将
显示
替换为
个人
,并将其用作SPARQL查询中的主题URI

Hi Jeen谢谢你的详细解释。我明白你的意思。我试了一下,但遇到了一些问题。我把问题放在下面,你能看一下吗?谢谢!Hi Jeen谢谢你的详细解释。我明白你的意思。我试了一下,但遇到了一些问题。我把问题放在下面,你能看一下吗?谢谢!