0

在 SPARQL 中,数据可以直接以图形模式写入或使用 VALUES 添加到查询中:

SELECT ...
WHERE {
    VALUES ?l {"no" "neg"}
    ?a delph:hasLemma ?l.
}

在耶拿,我listContains(?l, ?x)https://jena.apache.org/documentation/inference/index.html#RULEbuiltins中找到了。但是如何使用呢?如何提供值列表以检查三元组的给定对象是否在该列表中?

4

1 回答 1

-1

listContains不是 SPARQL 的一部分。

list:member也许你在找什么。

https://jena.apache.org/documentation/query/library-propfunc.html

PREFIX list: <http://jena.apache.org/ARQ/list#>
SELECT ...
WHERE {
    ?a delph:hasLemma ?l.
    { ?l list:member "no" } UNION { ?l list:member "neg" }
}

它相当于

WHERE {
    ?a delph:hasLemma ?l .
    ?l list:member ?member 
    FILTER(?member IN ("no", "neg") )
}

或者

WHERE {
    ?a delph:hasLemma ?l.
    VALUES ?member { "no"  "neg" }
    ?l list:member ?member
    
}
于 2021-09-15T20:30:04.473 回答