首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dotnetrdf图Sparql查询

dotnetrdf图Sparql查询
EN

Stack Overflow用户
提问于 2013-05-04 05:46:48
回答 1查看 561关注 0票数 0

RDF三元组如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rdf:RDF [<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
<!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'>]>
<rdf:RDF xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:dnr="http://www.dotnetrdf.org/configuration#"
         xml:base="http://www.example.org/"
         xmlns:nss="http://www.example.org/startTime"
     xmlns:nse="http://www.example.org/endTime">

  <rdf:Description rdf:about="Fadi">
    <ns0:eat xmlns:ns0="http://example.org/">Apple</ns0:eat>
    <nss:startTime>00:01:38</nss:startTime>
    <nse:endTime>00:01:39</nse:endTime>
  </rdf:Description>

  <rdf:Description rdf:about="I">
    <ns1:love xmlns:ns1="http://example.org/">You</ns1:love>
    <nss:startTime>00:05:35</nss:startTime>
    <nse:endTime>00:06:39</nse:endTime>
  </rdf:Description>
</rdf:RDF>

如何查询主语或宾语?

我的代码:

代码语言:javascript
复制
Graph myGraph = new Graph();
FileLoader.Load(myGraph, "C:\\Users\\hasoOn\\Desktop\\tt.rdf");                

TripleStore store = new TripleStore();
store.Add(myGraph);

SparqlParameterizedString queryString = new SparqlParameterizedString();
queryString.CommandText = "PREFIX ex: <http://example.org/> SELECT * WHERE { { ex:fadi ?p ?o } UNION { GRAPH ?g { ?s ?p ?o } } } ";
SparqlQueryParser parser = new SparqlQueryParser();
SparqlQuery query = parser.ParseFromString(queryString.CommandText);
SparqlResultSet results = (SparqlResultSet)store.ExecuteQuery(query);

if (results is SparqlResultSet)
{
    SparqlResultSet rset = (SparqlResultSet)results;
    foreach (SparqlResult result in rset)
    {
        Console.WriteLine(result);   
    }
} 

使用下面的代码,我可以从查询中获得所有答案。有没有人能帮我找到just subject = fadi?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 15:03:37

您的并集的第二部分负责您的结果:由于没有绑定任何变量,您将从存储中的所有图中查询所有三元组。第一部分实际上不返回任何内容。

这里有两个解决方案:

1)使用以下命令在默认数据集中添加图形:

代码语言:javascript
复制
myGraph.baseUri = null

在添加store.add(myGraph)语句之前,查询SELECT *{ ex:Fadi ?p ?o }应该足够了

2)将查询更改为:

代码语言:javascript
复制
Select * from _yourGraphUriHere { ex:Fadi ?p ?o}

这应该能让你得到你想要的。

顺便说一句,记住Uris是区分大小写的,所以ex:fadi不是您要查询的内容,而是ex:Fadi

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16368027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档