什么事!SPARQL中的平均值?
我正在使用SPARQL构造一个查询,并希望排除某些结果 我知道什么事!SPARQL中的平均值?,sparql,Sparql,我正在使用SPARQL构造一个查询,并希望排除某些结果 我知道过滤器不存在可用于执行此任务。例如: SELECT * { ?sub a ?type . FILTER NOT EXISTS {?sub a :NotExpectedType.} } SELECT * { ?sub a ?type . ?sub !a :NotExpectedType . } 但是在探索过程中,我意外地发现我可以写!a。这是一个有效的SPARQL查询,但结果不同于过滤器不存在。例如:
过滤器不存在
可用于执行此任务。例如:
SELECT * {
?sub a ?type .
FILTER NOT EXISTS {?sub a :NotExpectedType.}
}
SELECT * {
?sub a ?type .
?sub !a :NotExpectedType .
}
但是在探索过程中,我意外地发现我可以写!a
。这是一个有效的SPARQL查询,但结果不同于过滤器不存在
。例如:
SELECT * {
?sub a ?type .
FILTER NOT EXISTS {?sub a :NotExpectedType.}
}
SELECT * {
?sub a ?type .
?sub !a :NotExpectedType .
}
那么,
是什么呢!a
是什么意思?(我知道a
是rdf:type
的快捷方式,但这并不能帮助我理解。)!a是一个属性路径,它表示“长度为1的路径,其属性不是rdf:type
”
SELECT ?x {
?x a ?type.
FILTER NOT EXISTS { ?x a :MyClass }
}
上面的查询将找到?x
,其中不存在三元组?x rdf:type:MyClass
SELECT ?x {
?x a ?type.
?x !a :MyClass.
}
此查询将查找
?x
,其中对于某些?属性
,而不是rdf:type
,存在三重?x?属性:MyClass
表示您得到了下面的答案,但现在的问题是,您理解为什么两个查询返回不同的结果吗?