如何查询 RDF 个体的数据属性?
Posted
技术标签:
【中文标题】如何查询 RDF 个体的数据属性?【英文标题】:How to query an RDF individual for its data properties? 【发布时间】:2012-03-12 21:19:45 【问题描述】:我有一个本体,其中arc_cfp
是Arc
类的个体。我想知道如果我有个人的 URI,我如何获取个人的所有数据属性?
基本上,我正在这样做:
SELECT ?idRef ?name ?src ?dst ?perf
WHERE
?x rdf:type http://www.semanticweb.org/ontologies/2012/1/graph.owl#arc_cfp .
?x graph:idRef_arc ?idRef .
?x graph:name_arc ?name .
?x graph:hasSource ?src .
?x graph:hasDestination ?dst .
?x graph:hasPerformatif ?perf .
我很确定,使用rdf:type
是问题所在。但是,我不知道我需要使用什么。
谢谢。
~Codera
【问题讨论】:
此查询尝试检索 arc_cfp 的所有实例。既然你说 arc_cfp 本身就是一个实例,这没有任何意义。?x
永远不会被绑定到一个值。
你定义了 rdf 和 graph 前缀吗?
【参考方案1】:
假设您想要一个纯粹的探索性查询,形式为“给我关于一个主题的所有三元组”,它应该如下所示:
SELECT *
WHERE
<http://example.org/SomeThing> ?p ?o
这将为您提供与您传入的常量 URI 关联的所有谓词对象对。如果您对传入和传出属性感兴趣,则可以改为执行以下操作:
SELECT *
WHERE
<http://example.org/SomeThing> ?p ?o
UNION
?s ?p <http://example.org/SomeThing>
【讨论】:
【参考方案2】:您还可以使用DESCRIBE 查询来获取有关资源的所有 RDF 数据。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
DESCRIBE ?x
WHERE
?x rdf:type http://www.semanticweb.org/ontologies/2012/1/graph.owl#arc_cfp .
附:不要忘记在查询中添加前缀。
【讨论】:
但是,没有规范的描述实现,它由查询引擎决定结果中返回的内容。这可以是对三元组的简单查找,其中变量(在本例中为 ?x)是主题,也可以是更复杂的东西,例如资源的简明有界描述。如果您想了解有关资源的特定信息,最好直接查询。以上是关于如何查询 RDF 个体的数据属性?的主要内容,如果未能解决你的问题,请参考以下文章