如何查询 RDF 个体的数据属性?

Posted

技术标签:

【中文标题】如何查询 RDF 个体的数据属性?【英文标题】:How to query an RDF individual for its data properties? 【发布时间】:2012-03-12 21:19:45 【问题描述】:

我有一个本体,其中arc_cfpArc 类的个体。我想知道如果我有个人的 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 个体的数据属性?的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在 AWS Neptune 上的 RDF 图中对对象进行分组并为组分配通用颜色?

工作流图作为 RDF?

RDF/RDFS/OWL

Sparql查询RDF

面向对象

面向对象