【发布时间】:2014-10-25 21:50:32
【问题描述】:
我有一个 sparql-Query,它询问给定类型的 URI 的某些属性。由于我不确定这些属性是否存在,所以我使用 OPTIONAL 关键字:
PREFIX mbo: <http://creativeartefact.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT * WHERE {
?uri a mbo:LiveMusicEvent.
OPTIONAL {?uri rdfs:label ?label}.
OPTIONAL {?uri mbo:organisedBy ?organiser}.
OPTIONAL {?uri mbo:takesPlaceAt ?venue}.
OPTIONAL {?uri mbo:begin ?begin}.
OPTIONAL {?uri mbo:end ?end}.
}
当我对我的 SPARQL 端点(Virtuoso 服务器)运行此查询时,我收到了错误:
Virtuoso 42000 错误估计执行时间-721420288(秒) 超过 400(秒)的限制。
当我减少 OPTIONAL 子句时,在第一个删除的子句之后估计执行时间为 4106 秒,当我删除两个子句时,查询被执行(并立即返回值)。
我看不出来,为什么估计的执行时间会随着附加的 OPTIONAL 子句像这样飙升,但也许我只是使用了错误的构造查询?
【问题讨论】: