【问题标题】:How to store RDF data direct to sesame using D2R?如何使用 D2R 将 RDF 数据直接存储到芝麻?
【发布时间】:2013-10-30 16:22:26
【问题描述】:

我正在寻找任何解决方案,通过 Java 程序将我的 RDF 化数据直接存储到芝麻。我有一个包含 170 万条记录的数据库,我使用 D2R 将其转换为 RDF。现在我想将 RDFized 数据存储到芝麻三重存储中。我没有生成 RDF 转储,因为数据量很大。有什么方法可以通过代码/解决方案将我的 RDF 化数据转移到我的三重存储中。谢谢

【问题讨论】:

  • 可能有几种方法可以实现这一点。但是您必须更具体地了解您的设置以及您正在寻找的内容。您说您没有 RDF 转储,但您还说您使用 D2R 生成了 RDF。那么你有什么
  • 您还可以展示您尝试过的内容。网上有很多关于如何使用 Sesame API 的示例,您可以根据这些示例来加载实时提要或文件转储。
  • 感谢 Jeen 和 Michael 的回复。好吧,我在问,我已经使用 D2R 对数据进行了 rdfized,可以在 (cbakerlab.unbsj.ca:8080/liapibackup/snorql) 访问。问题是由于后端有 mysql 数据库,SPARQL 查询执行时间非常慢。有人建议我,如果我将数据存储到芝麻中,它可以提高访问速度。我在互联网上搜索找到可以指导我执行此操作的教程,但找不到任何教程。如果您知道,请与我分享任何示例/教程。谢谢。
  • 我想说,看看芝麻网站openrdf.org。单击“文档”,然后单击“用户文档”,这会将您带到 Sesame 用户文档,其中包含有关如何使用 Sesame 进行编程的部分。浏览那里并尝试一些东西。您还可以在某处找到 API javadoc。如果您遇到困难,请随时在此处或芝麻邮件列表中提问。

标签: sesame triplestore


【解决方案1】:

我相信您真正想说的是: 您有一个大型 RDBMS,您在其上使用 D2RQ 创建了一个 RDF 包装器视图。 现在您想使用 SNORQL(D2RQ 的 SPARQL 端点)提取该数据,并使用 Sesame 将其推送到本机 RDF 三元存储。

我试图编辑您的问题以反映这一点,但不幸的是它被否决了。

无论如何,在 Sesame 中,您可以通过 Java 代码执行此操作:

  1. 触发一个图形查询,它将返回一个 GraphQueryResult

    GraphQueryResult graphResult = con.prepareGraphQuery(
    QueryLanguage.SPARQL, "CONSTRUCT <...your SPARQL QUERY here ...>".evaluate();
    
  2. 使用 QueryResults 实用程序类将语句作为模型返回:

    Model resultModel = QueryResults.asModel(graphQueryResult);
    
  3. 使用重载的 RepositoryConnection.add 方法之一将此数据添加到本机 Sesame 存储。

【讨论】:

  • 很好,但您实际上可以完全跳过第 2 步。 GraphQueryResultIteration 的子类型,因此您可以将其直接输入RepositoryConnection.add 方法。这样做的好处是结果不必首先在模型中完全实现:它可以以流方式处理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多