1

我在 Virtuoso isql 上运行以下查询。

SPARQL 
CONSTRUCT
{
 ?infectee ?getInfectedBy ?infector
}

FROM <http://ndssl.bi.vt.edu/chicago/>

WHERE
{
  ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://ndssl.bi.vt.edu/chicago/vocab/dendrogram>.
  ?s <http://ndssl.bi.vt.edu/chicago/vocab/dendrogram_infectee_pid> ?infectee.
  ?s <http://ndssl.bi.vt.edu/chicago/vocab/dendrogram_infector_pid> ?infector.
  ?s <http://ndssl.bi.vt.edu/chicago/vocab/dendrogram_iteration> '0'^^xsd:decimal.
  BIND (iri('http://ndssl.bi.vt.edu/chicago/vocab/getInfectedBy') as ?getInfectedBy)
 };

我想以“N-Triples”格式转储结果。我怎样才能在 isql 中做到这一点?

4

1 回答 1

2

在Virtuoso 用户邮件列表上回答了这个问题,也被问到了......

可以使用各种格式的转储结果

define output:format "{XX}" 

pragma,所以在你的情况下,它将是:

SQL> sparql define output:format "TURTLE" CONSTRUCT ...

其他可能的格式是:

  • NICE_TTL
  • RDF_XML
  • 等等

使用 ISQL 客户端获取长文本时,请使用该set blobs on;指令来避免收到data truncated警告。

IE:

SQL> set blobs on;
SQL> sparql define output:format ...

对于CONSTRUCT,支持的格式为:

TRIG, TTL, JSON, JSON;TALIS, SOAP, RDF/XML, NT, RDFA;XHTML, JSON;RES, HTML;MICRODATA, HTML, JS, ATOM;XML, JSON;ODATA, XML, CXML;QRCODE, CXML, HTML;UL, HTML;TR, JSON;LD, CSV, TSV, NICE_TTL, HTML;NICE_MICRODATA, HTML;SCRIPT_LD_JSON, HTML;SCRIPT_TTL,HTML;NICE_TTL

文档链接:

要将结果保存到本地文件中,应执行以下操作:

  1. 将数据插入XX.ttl本地文件:

isql host:port dba pwd exec="set blobs on; sparql define output:format '"TURTLE"' construct {...} from <....> where {....}" > XX.ttl

  1. 修剪前 9 行,以便只有三元组作为内容:

tail -n +9 XX.ttl > XX_new.ttl

于 2016-06-15T04:14:13.143 回答