gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:40:40 26 4
gpt4 key购买 nike

我有created a blazegraph RDF4J repository and connection在 Scala 中:

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 文件中,like this :

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

但如果我尝试用我的 cxnrepo 替换预期的模型参数,Eclipse 会提示:

overloaded method value write with alternatives: (x$1: Iterable[org.openrdf.model.Statement],x$2: java.io.Writer,x$3: org.openrdf.rio.RDFFormat)Unit (x$1: Iterable[org.openrdf.model.Statement],x$2: java.io.OutputStream,x$3: org.openrdf.rio.RDFFormat)Unit cannot be applied to (com.bigdata.rdf.sail.BigdataSailRepository, java.io.FileOutputStream, org.openrdf.rio.RDFFormat).

如何从存储库和连接中获得 Rio.write() 期望的模型?或者我可以用其他方式转储三元组吗?

最佳答案

这里描述得很好 http://docs.rdf4j.org/programming/第 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 写入文件。

关于scala - 如何将嵌入的 Blazegraph 内容转储到 RDF 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43920947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com