如何配置Virtuoso URL重写规则以使用JSON提供SPARQL结果?

时间:2017-11-23 16:46:01

标签: sparql virtuoso

JSON在SPARQL端点接口中作为结果选项提供,但在配置重写规则时,它将丢失。目前,Virtuoso 07.20.3217中的SPARQL结果选项仅为"自动"," RDF / XML"和" Turtle"。

enter image description here

如何配置规则以使用JSON提供结果?

1 个答案:

答案 0 :(得分:1)

回复您向OpenLink支持部门发送的电子邮件 -

这是Conductor接口中的疏忽,因为SPARQL查询结果可以从/sparql查询表单页面(包括JSON)中提供的任何序列化格式返回。我们已记录内部增强请求,以将这些其他格式添加到Conductor URL重写规则UI。

与此同时,您可以通过Conductor UI中的链接导出现有规则,以查看用于创建所选规则的SQL。对于默认的RDF / XML输出格式,它显示为format=application%2Frdf%2Bxml

the list of supported output formats工作,您应该能够将导出规则中的format=application%2Frdf%2Bxml更改为format=application%2Frdf%2Bjson,以获得所需的JSON输出。然后,您可以通过isql手动加载已编辑的规则,其类似于:

DB.DBA.VHOST_REMOVE (
    lhost=>'*ini*',
    vhost=>'*ini*',
    lpath=>'/rewrite-json'
);

DB.DBA.VHOST_DEFINE (
    lhost=>'*ini*',
    vhost=>'*ini*',
    lpath=>'/rewrite-json',
    ppath=>'/',
    is_dav=>0,
    is_brws=>0,
    def_page=>'',
    vsp_user=>'dba',
    ses_vars=>0,
    opts=>vector ('browse_sheet', '', 'url_rewrite', 'http_rule_list_1'),
    is_default_host=>0
);

DB.DBA.URLREWRITE_CREATE_RULELIST ( 
    'http_rule_list_1', 1,
    vector ('http_rule_1')
);

DB.DBA.URLREWRITE_CREATE_REGEX_RULE ( 
    'http_rule_1', 1,
    '/rewrite-json',
    vector (),
    0,
    '/sparql?query=select%%20%%2A%%20where%%20%%7B%%3Fs%%20%%3Fp%%20%%3Fo%%7D%%20limit%%205&format=application%2Frdf%2Bjson',
    vector (),
    NULL,
    NULL,
    2,
    301,
    ''
);

注意: 在修复此问题之前,您将无法在指挥中编辑此重写规则,因为JSON输出格式将结束 - 用当前列表中的一个写。

另见本文关于working with Virtuoso URL Rewrite Rules