java如何使用SPARQL从三元组中提取rdf:about或rdf:ID属性?
起初这似乎是一件小事,但到目前为止,我还没有使用SPARQL获得给定资源的唯一标识符。我的意思是,给定,例如,rdf:Description rdf:about="http://..."
,然后一些属性标识这个资源,我想做的是首先找到这个资源,然后检索所有给定URI的三元组
我曾尝试过天真的方法,在WHERE
子句中写陈述,例如:
?x rdf:about ?y and ?x rdfs:about ?y
我希望我是准确的
# 1 楼答案
您犯了一个典型的错误:将RDF(SPARQL查询的内容)与其序列化(即RDF/XML)混淆
rdf:about
(和rdf:ID
,rdf:Description
,rdf:resource
)是RDF/XML的一部分,RDF是一种书写RDF的方式。您可以使用RDF Validator来查看RDF/XML片段会产生什么样的RDF三元组在您的情况下,让我们从以下内容开始:
把它插入the validator你会得到:
(你也可以要求提供图片)
请注意,
rdf:about
不存在:它的值提供了三元组的主题如何查询与
http://www.example.org
关联的属性?像这样:你会得到:
您会注意到,在我们想要查找值的地方,查询是与变量(
?v
)的三重匹配。我们还可以通过以下问题来询问什么谓词将http://www.example.org/
与"Example for..."
联系起来:这种模式匹配是SPARQL的核心
RDF/XML是一个棘手的问题,您可能会发现使用N-Triples更容易,它非常详细但清晰,或者turtle,它类似于N-Triples,有大量的速记和缩写。海龟通常是rdf社区的首选
p.S.
rdfs:about
在任何地方都不存在