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

时间:2012-02-22 14:22:41

标签: semantics rdf sparql jena

我有一个本体论,其中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

2 个答案:

答案 0 :(得分: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> }
} 

答案 1 :(得分:0)

您还可以使用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 .
}

P.S。不要忘记在查询中添加前缀。