为什么这个sparql查询返回重复项(以及如何避免这种情况?)

时间:2018-03-15 16:37:28

标签: sparql

我对sparql的某些特定行为感到困惑。

让我们假设一些格式为n-triples的测试数据如下:

<s1> <t> <t1> .
<s1> <t> <t2> .
<s1> <p> <o> .
<s2> <p> <o> .

我想要归还的是具有 t 属性的 所有三元组。例如,我希望返回此测试数据:

<s1> <t> <t1> .
<s1> <t> <t2> .
<s1> <p> <o> .

但不是 s2 的三元组,因为它没有在任何地方定义属性 t

现在,发出如下查询:

select * where { ?s ?p ?o . ?s <t> [] }

返回

| s1 | p | o  |
| s1 | t | t1 |
| s1 | t | t2 |
| s1 | p | o  |
| s1 | t | t1 |
| s1 | t | t2 |

为什么会产生重复项,如何避免这种情况?

0 个答案:

没有答案