【发布时间】:2021-10-16 12:25:09
【问题描述】:
假设我们有一个记录日志事件的本体,有 2 种不同类型的事件:info 和 warning。每个条目都通过非传递属性hasPreviousEvent 链接到前一个条目,如下所示:
对于所有info 节点,我想检索最近的error 节点,无论它返回多少跳。理想情况下,对于上述示例数据集,我希望得到以下结果集:
| entry | prev |
|---|---|
| :info_2 | :error_1 |
| :info_3 | :error_2 |
| :info_4 | :error_2 |
使用 SPARQL 属性路径,以下查询
SELECT * WHERE {
?entry rdf:type :Info ;
:hasPreviousEntry* ?prev .
?prev rdf:type :Error .
} ORDER BY ?entry
合理地检索到以下结果集:
| entry | prev |
|---|---|
| :info_2 | :error_1 |
| :info_3 | :error_1 |
| :info_3 | :error_2 |
| :info_4 | :error_1 |
| :info_4 | :error_2 |
我找不到想要的结果。任何帮助将不胜感激。
【问题讨论】:
标签: sparql ontology turtle-rdf