如何在java中使用SPARQL从RDF文件中获取特定的标签相关信息

时间:2013-08-04 09:51:17

标签: java sparql jena

我正在使用SPARQL从RDF文件中获取标签相关信息使用java.below是我的SPARQL查询尝试从RDF文件中读取标签相关信息。但它没有得到结果。 我的RDF文件包含以下信息:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"   xmlns:c="http://s.opencalais.com/1/pred/">
    <rdf:Description c:calaisRequestID="e35f8204-619c-e1cd-1403-db29b8d53276" c:id="http://id.opencalais.com/yrGQcSODPQmkcclcdKOwNg" rdf:about="http://d.opencalais.com/dochash-1/6ee25504-ff98-34e4-af60-dde69f5ddf73"><rdf:type rdf:resource="http://s.opencalais.com/1/type/sys/DocInfo"/>
    <c:document></c:document>
    </rdf:Description>
    <rdf:Description rdf:about="http://d.opencalais.com/dochash-1/6ee25504-ff98-34e4-af60-dde69f5ddf73/SocialTag/1">
    <rdf:type rdf:resource="http://s.opencalais.com/1/type/tag/SocialTag"/>
    <c:docId rdf:resource="http://d.opencalais.com/dochash-1/6ee25504-ff98-34e4-af60-dde69f5ddf73"/>
    <c:socialtag rdf:resource="http://d.opencalais.com/genericHasher-1/4f9a3d55-33f5-3738-a2f7-3e9065a5a169"/>
    <c:name>Computing</c:name><c:importance>1</c:importance><c:originalValue>Computing</c:originalValue>
    </rdf:Description> 

我的SPARQL查询:

 prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    prefix ctag: <http://s.opencalais.com/1/type/tag/SocialTag>
    prefix c: <http://s.opencalais.com/1/pred/>
    construct {
      ?tag c:name ?name ;
           c:importance ?importance .
    }
    where {
      ?tag a ctag:SocialTag ;
           c:name ?name ;
           c:importance ?importance .
    }

但是我没有得到结果如何做到这一点请建议我。

1 个答案:

答案 0 :(得分:1)

“ctag:”在你的查询中是http://s.opencalais.com/1/type/tag/SocialTag(已经有SocialTag)所以ctag:SocialTag是“http://s.opencalais.com/1/type/tag/SocialTagSocialTag” - 不匹配。

一般情况下,如果没有得到结果,请删除部分模式,直到您这样做。使用SELECT可以更清晰,直到您拥有所需的模式。