【问题标题】:How to execute SPARQL query for multiple RDF files?如何对多个 RDF 文件执行 SPARQL 查询?
【发布时间】:2015-12-18 20:08:59
【问题描述】:

我有 44 .ttl 文件,总内存为 117 GB。我很好奇实时对所有.ttl 文件执行SPARQL 查询的有效方法。我尝试将它们组合起来,但在 Apache Jena 以及组合中加载模型需要大量时间。那么,最有效的方法应该是什么?

【问题讨论】:

    标签: rdf jena semantic-web sesame


    【解决方案1】:

    将它们加载到一个三元存储库中,例如 Jena 的 TDB。您可以根据需要将其制作成一个大图或单独的命名图。

    这样可以节省您要执行查询时的所有数据解析时间。

    【讨论】:

    • 它们是 DBpedia 文件,应该使用 DBpedia 端点吗?哪个效率更高?
    【解决方案2】:

    我没用过耶拿;但如果我使用 Sesame,我会这样做。

    1. 如果这将是一个企业应用程序,请避免依赖 DBpedia 端点。公开可用的 SPARQL 端点有时会因维护而停机。发生这种情况时,您将无法执行查询。
    2. 您可以将 .ttl 文件加载到您的 Triplestore,或者使用 SPARQL 1.1 的 INSERT 或 INSERT DATA 功能和 SERVICE 子句直接从 DBpedia 将数据上传到您的 Triplestore。
    3. 如果可能,将所有数据存储在一个图表中。运行联合查询的计算成本更高,而且鉴于数据集很大,这可能会有点问题。
    4. 要区分来源,您可以为每个数据集定义“上下文”(图形名称)。 Sesame 称它为上下文,Jena 可能有类似的东西。
    5. 查询时,尽量避免计算量大的查询(例如运行具有大量结果的查询,然后应用过滤器)。通常,请尝试想象一下图形模式对于您的结果会是什么样子,并尝试在查询中复制它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多