当前位置: 首页 > 知识库问答 >
问题:

如何将嵌入的Blazegraph内容转储到RDF文件中?

康言
2023-03-14

我已经在Scala中创建了一个blazegraph RDF4J存储库和连接:

val props = new Properties()
props.put(Options.BUFFER_MODE, BufferMode.DiskRW)
props.put(Options.FILE, "embedded.jnl")
var sail = new BigdataSail(props)
var repo = new BigdataSailRepository(sail)
repo.initialize()
var cxn = repo.getConnection()

我可以添加语句、检索SPARQL结果等。

现在我想将存储库的内容转储到一个RDF文件中,如下所示:

Rio.write(model, System.out, RDFFormat.RDFXML);

但是,如果我试图用cxnrepo替换预期的模型参数,Eclipse会抱怨:

重载方法值write with备选项:(X$1:Iterable[org.openrdf.model.statement],X$2:java.io.writer,X$3:org.openrdf.rio.rdfformat)单元(X$1:Iterable[org.openrdf.model.statement],X$2:java.io.outputstream,X$3:org.openrdf.rio.rdfformat)单元不能应用于

如何从我所拥有的回购和连接获得rio.write()所期望的模型?或者我可以用其他的方法把三倍倒掉吗?

共有2个答案

劳夕
2023-03-14

这段Scala代码对我有效。这完全是基于克利斯朵夫的回答。我已经有了一个连接,但我确实需要创建一个文件输出流。我删除了try包装,因为没有任何catch块。不推荐用于生产!

var out = new FileOutputStream("rdf.ttl") 
var writer = Rio.createWriter(RDFFormat.TURTLE, out)
cxn.prepareGraphQuery(QueryLanguage.SPARQL, 
    "CONSTRUCT {?s ?p ?o } WHERE {?s ?p ?o } ").evaluate(writer)
阳宾实
2023-03-14

在http://docs.rdf4j.org/programming/point 3.2.8中对其进行了很好的描述。使用RDFHandlers

import org.eclipse.rdf4j.rio.Rio;
import org.eclipse.rdf4j.rio.RDFFormat;
import org.eclipse.rdf4j.rio.RDFWriter;

try (RepositoryConnection conn = repo.getConnection()) {
RDFWriter writer = Rio.createWriter(RDFFormat.TURTLE, System.out);
conn.prepareGraphQuery(QueryLanguage.SPARQL,
   "CONSTRUCT {?s ?p ?o } WHERE {?s ?p ?o } ").evaluate(writer);
}

而不是System.out写入文件。

 类似资料:
  • 我正在尝试添加RDF的这个简单示例: 进入Blazegraph三重存储,但我得到以下错误: 据我所知,我正在密切检查名称空间。 我也试过这个例子: null

  • 本文向大家介绍.NET中如何将文本文件的内容存储到DataSet,包括了.NET中如何将文本文件的内容存储到DataSet的使用技巧和注意事项,需要的朋友参考一下 前言 项目中对文本文件的操作比较简单,但是如果需要将文本文件的内容写入系统的缓存中,操作起来,会稍微的繁琐一些。现在总结一个较为通用的方法,将文本文件的内容缓存进入DataSet数据集中。下面话不多说了,我们直接来看示例代码吧。 示例代

  • 问题内容: 我的hangman程序有问题。我真的认为我需要做的事超出了我对Java的了解。这是我的代码 我能够使程序读取文件,然后打印到屏幕上,但是我不知道如何将文件中的单词存储到数组中。我一点都没有进步,所以请尝试并做到透彻。 问题答案: 您需要将读取的行保存在一个对象中,并将其分配给数组的某个字段。例如: 这会将值赋给数组的第一个字段。

  • 我在一个Web服务器上有一个URL,它用Python模块rdflib序列化了一个RDF triplestore。我想将此内容导入GraphDB。 rdflib.serialize输出格式为"xml"。HTTP标头的MIME类型为"xml/rdf",但结果与MIME类型"text/rdf"相同。 当内容保存到以“.rdf”扩展名结尾的文本文件时,GraphDB可以毫无问题地导入此文件,并且存储库内容

  • 我有一个这样的口述: 我不知道如何将dict转储到JSON文件中,如下所示: 有没有一种pythonic的方法来实现这一点? 您可能会猜测我想生成一个树映射。

  • 我想将我的SPARQL查询的结果从Blazegraph导出到一个文件中。但是,它只导出结果的第一页。当我尝试显示所有结果时,我的浏览器崩溃。 我该怎么解决这个? 我正在本地集群上运行BlazeGraph2.1.2。