【问题标题】:How do I add RDF triples to Blazegraph?如何将 RDF 三元组添加到 Blazegraph?
【发布时间】:2015-03-17 08:37:01
【问题描述】:

我正在尝试添加这个简单的 RDF 示例:

<rdf:RDF>
<rdf:Description>
<rdf:subject resource="http://www.w3.org/Home/Lassila"/>
<rdf:predicate resource="http://description.org/schema/Creator"/>
<rdf:object>Ora Lassila</rdf:object>
<rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
<a:attributedTo>Ralph Swick
</a:attributedTo>           
</rdf:Description>             
</rdf:RDF>

进入 Blazegraph 三元存储,但出现以下错误:

ERROR: INSERT-WITH-BODY: baseURI=http://localhost:9999/bigdata/namespace/undefined/sparql, context-uri=[]  
java.util.concurrent.ExecutionException:     com.bigdata.rdf.sail.webapp.DatasetNotFoundException: Not found: namespace=undefined 
at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
at java.util.concurrent.FutureTask.get(FutureTask.java:188) 
at com.bigdata.rdf.sail.webapp.InsertServlet.doPostWithBody(InsertServlet.java:203) 
at com.bigdata.rdf.sail.webapp.InsertServlet.doPost(InsertServlet.java:119) 
at com.bigdata.rdf.sail.webapp.RESTServlet.doPost(RESTServlet.java:272)      
at com.bigdata.rdf.sail.webapp.MultiTenancyServlet.doPost(MultiTenancyServlet.java:144) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)

据我所知,我正在密切检查命名空间。

我也试过这个例子:

prefix dcterm: <http://purl.org/dc/terms/>
prefix dc: <http://purl.org/dc/elements/1.1/>
<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/metadata/dublin_core#"> 
<rdf:Description about="http://www.foo.com/cool.html"> 
  <dc:Creator>
    <rdf:Seq ID="CreatorsAlphabeticalBySurname">
      <rdf:li>Mary Andrew</rdf:li>
      <rdf:li>Jacky Crystal</rdf:li>
    </rdf:Seq>
  </dc:Creator>

  <dc:Identifier>
    <rdf:Bag ID="MirroredSites"> 
      <rdf:li rdf:resource="http://www.foo.com.au/cool.html"/>
      <rdf:li rdf:resource="http://www.foo.com.it/cool.html"/>
    </rdf:Bag>
  </dc:Identifier>

  <dc:Title>
    <rdf:Alt>
      <rdf:li xml:lang="en">The Coolest Web Page</rdf:li>
      <rdf:li xml:lang="it">Il Pagio di Web Fuba</rdf:li>
    </rdf:Alt>
  </dc:Title>
</rdf:Description> 

【问题讨论】:

  • 请注意,您的问题不完整,您还没有展示您如何尝试插入数据,因此我们无法知道您是否使用了适当的 API 调用
  • 但是我已经尝试了每一个简单到简单的示例,但即使对于验证器验证的示例,它仍然会出错。我试图通过三重存储“Blazegraph”的更新调用来插入。我还提到了命名空间,但它不起作用。地名本体的事件显示相同的错误。
  • 问题解决了。有一个愚蠢的错误。我应该检查使用命名空间而不是写那个。

标签: sparql rdf triplestore blazegraph


【解决方案1】:

您的示例数据不是有效的 XML,因此它不可能是有效的 RDF/XML - 您没有在 XML 中定义任何命名空间,因此它是无效的。

使用W3C XML Validator 我得到了 以下错误:

错误第 2 行,第 8 列:未定义 RDF 上的命名空间前缀 rdf &lt;rdf:RDF&gt;

错误第 3 行,第 19 列:未定义描述上的命名空间前缀 rdf
&lt;rdf:Description&gt;

错误第 4 行,第 57 列:未定义主题上的命名空间前缀 rdf &lt;rdf:subject resource="http://www.w3.org/Home/Lassila"/&gt;

错误第 5 行,第 66 列:未定义谓词上的命名空间前缀 rdf
&lt;rdf:predicate resource="http://description.org/schema/Creator"/&gt;

错误第 6 行,第 14 列:对象上的命名空间前缀 rdf 未定义
&lt;rdf:object&gt;Ora Lassila&lt;/rdf:object&gt;

错误第 7 行,第 76 列:未定义类型上的命名空间前缀 rdf
&lt;rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/&gt;

错误第 8 行,第 18 列:attributedTo 上的命名空间前缀 a 不是 已定义
&lt;a:attributedTo&gt;Ralph Swick

同样使用W3C RDF/XML Validator我得到以下错误:

致命错误:元素“rdf:RDF”的前缀“rdf”未绑定。[行 = 2,列 = 10]

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多