2013-10-30 41 views
2

我正在寻找任何解决方案,通过Java程序将我的RDF化数据直接存储到芝麻中。我有一个1.7 M记录的数据库,我使用D2R将其转换为RDF。现在我想将RDF化数据存储到芝麻三重商店。由于数据庞大,我没有生成RDF转储。有什么方法可以通过我的代码/解决方案将我的RDF化数据转移到我的三重商店。谢谢如何使用D2R将RDF数据直接存储到芝麻?

+1

有可能有几种方法来实现这一点。但是,您必须对您的设置有更具体的了解,以及您需要的是什么。你说你没有RDF转储,但你也说你使用D2R生成了RDF。那么你有什么? –

+1

您可能还会显示您尝试过的内容。有很多关于如何使用在线提供的Sesame API的示例,您可以使用它来适应加载实时馈送或文件转储。 – Michael

+1

感谢Jeen和Michael的回复。那么,我问,我已经用D2R进行了rdf化数据,可以在http://cbakerlab.unbsj.ca:8080/liapibackup/snorql/找到。问题是由于后端的mysql数据库,SPARQL查询执行时间非常缓慢。有人建议我,如果我将数据存储到芝麻中,它可以提高访问速度。我在网上搜索找到一个教程,可以指导我做到这一点,但找不到任何。如果您知道,请与我分享任何示例/教程。谢谢。 –

回答

1

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

我试图编辑你的问题来反映,但不幸的是它被拒绝了。

  1. 烧成图形查询将返回一个GraphQueryResult

    GraphQueryResult graphResult = con.prepareGraphQuery(
    QueryLanguage.SPARQL, "CONSTRUCT <...your SPARQL QUERY here ...>".evaluate(); 
    
  2. 使用QueryResults实用工具类返回:

    无论如何,芝麻,您可以通过Java代码通过这样做作为模型的声明:

    Model resultModel = QueryResults.asModel(graphQueryResult); 
    
  3. use on e重载的RepositoryConnection.add方法将此数据添加到本机Sesame存储中。

+1

好,但你完全可以跳过第2步。 'GraphQueryResult'是'Iteration'的子类型,所以你可以直接将它提供给'RepositoryConnection.add'方法。这具有以下优点:结果不需要首先在模型中完全实现:它可以以流式方式处理。 –

+0

我忽略了这一点。好点子。谢谢@JeenBroekstra – Nikhil