【问题标题】:Can a SPARQL query import or re-use a set of PREFIX definitions (namespace bindings)?SPARQL 查询可以导入或重用一组 PREFIX 定义(命名空间绑定)吗?
【发布时间】:2016-11-06 10:17:51
【问题描述】:

我通过在 Jupyter 笔记本(基于 Web 的 REPL 环境)中执行 SPARQL 查询来记录我对 RDF 数据的探索。

我经常通过复制前一个查询来创建查询以进行调整。笔记本充满了 SPARQL 查询,这些查询都以相同的八个 PREFIX 定义开始(例如,PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>)。

为了减少混乱,我保持 PREFIX 列表简短,但这意味着我必须经常切换窗口来搜索必须添加的其他前缀(例如,PREFIX eurovoc: ...)。

有没有办法将 PREFIX 定义保存在文件中,然后简单地将这些定义导入到查询中?

另外,由于我目前使用 Apache JENA 命令行实用程序 arq 在 Jupyter Notebook 中执行查询,因此我很乐意使用任何允许将 SPARQL 查询拆分为多个文件的命令行实用程序,或者其他此类解决方法。

我在stackoverflow.com 和网络上搜索了该问题的答案,尝试了许多涉及 SPARQL、PREFIX、声明、定义、重复、导入、重用、重用、命名空间、绑定、分离、文件和多个文件,我在这里复制这些文件是为了让可能提出相同问题的其他人更容易找到这个问题。

【问题讨论】:

  • 不适用于 arq - 尽管只是将前缀与查询连接起来并将输出提供给您所在的任何操作系统或环境中的 sparql 命令。
  • 以下工作:%%script bash QUERY=$(cat prefixes.sparql query.sparql) arq --data agro.n3 "$QUERY" (其中%%script bash 表示 Jupyter 笔记本单元格中的所有内容都由 bash 解释)。不漂亮,这意味着我需要将查询单独粘贴到笔记本中,但可行。谢谢!

标签: namespaces sparql prefix


【解决方案1】:

我在寻找类似的东西时偶然发现了这个问题。 AFAIK,SPARQL 没有导入指令,但是有像 rdf.sh 这样的工具,它可以查看您在文件中使用的所有前缀并构建所需的定义(它们通常基于 prefix.cc)。

此外,我看到端点(例如,Fuseki)具有预定义的前缀定义并自动完成您的 SPARQL,但依赖它们会降低查询的可移植性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 2016-12-17
    • 2020-07-13
    • 2021-01-24
    相关资源
    最近更新 更多