【问题标题】:How to query an RDF individual for its data properties?如何查询 RDF 个体的数据属性?
【发布时间】: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 前缀吗?

标签: semantics rdf sparql jena


【解决方案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)是主题,也可以是更复杂的东西,例如资源的简明有界描述。如果您想了解有关资源的特定信息,最好直接查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    相关资源
    最近更新 更多