Shell使用SPARQL选择数据并上传到virtuoso

时间:2014-05-26 10:45:34

标签: bash shell sparql virtuoso

我正在尝试运行以下脚本以将RDF数据加载到Virtuoso存储中。该脚本运行正常,但似乎没有任何内容上传到Virtuoso,因为SPARQL查询不显示任何结果。有什么想法吗?

#!/bin/bash
/usr/local/virtuoso-opensource/bin/isql 1111 dba dba <<EOF
 SPARQL CREATE GRAPH <free>;
 ld_dir('/home/najib', 'term.rdf', 'free');
 rdf_loader_run();
 SPARQL SELECT * FROM <free> WHERE {?s ?o ?p};
 EOF

1 个答案:

答案 0 :(得分:1)

引用你的heredoc EOF

#!/bin/bash
/usr/local/virtuoso-opensource/bin/isql 1111 dba dba <<'EOF'
SPARQL CREATE GRAPH <free>;
ld_dir('/home/najib', 'term.rdf', 'free');
rdf_loader_run();
SPARQL SELECT * FROM <free> WHERE {?s ?o ?p};
EOF

根据man bash

  

无参数扩展,命令替换,算术   执行扩展或路径名扩展          在单词上。如果引用单词中的任何字符,则分隔符是单词上的引号删除的结果,          并且不会扩展here-document中的行。 如果单词不加引号,则此处的所有行 - 文档 -          进行参数扩展,命令替换和算术扩展。在lat-          例如,字符序列\被忽略,\必须用于引用字符\,$,          和`。

PS:同时确保在关闭之前没有空格EOF