我正在执行一个Sparql查询,该查询返回所有其中关键字apple
不属于特定子类Species
的URI
select distinct ?s
where
{
?s a owl:Thing . ?s rdfs:label ?label .
filter(langmatches(lang(?label), 'en')) ?label bif:contains '"apple"' .
filter not exists {?s rdf:type/rdfs:subClassOf* dbo:Species }
}
我想包含更多的子类。我想包含许多子类,所以我想像这样过滤掉:
filter not exists {?s rdf:type/rdfs:subClassOf* dbo:Species
和filter not exists {?s rdf:type/rdfs:subClassOf* dbo:Organisation
和filter not exists {?s rdf:type/rdfs:subClassOf* dbo:SomeOtherSubclass
如何将多个AND链接在一起?
答案 0 :(得分:4)
您可以这样做:
FILTER NOT EXISTS {
VALUES ?clazz { dbo:Species dbo:Organisation dbo:SomeOtherSubclass }
?s rdf:type/rdfs:subClassOf* ?clazz.
}
虽然不能保证效果良好。