SQL IN()运算符的SPARQL等价性
SQLSQL IN()运算符的SPARQL等价性,sparql,Sparql,SQLIN()运算符是否有SPARQL等价物?我过滤我的结果,现在使用: FILTER ( lang(?label) = 'en' ) 我想要像这样的东西: FILTER ( lang(?label) IN ('en', 'de') ) SPARQL是否可以做到这一点?在SPARQL 1.1中 应该有用 1.1之前的版本需要一个大的析取: FILTER ( (lang(?label) = 'en') || (lang(?label) = 'de') ) 根据官方文件 在 boolean
IN()
运算符是否有SPARQL等价物?我过滤我的结果,现在使用:
FILTER ( lang(?label) = 'en' )
我想要像这样的东西:
FILTER ( lang(?label) IN ('en', 'de') )
SPARQL是否可以做到这一点?在SPARQL 1.1中
应该有用
1.1之前的版本需要一个大的析取:
FILTER ( (lang(?label) = 'en') || (lang(?label) = 'de') )
根据官方文件
在
boolean rdfTerm IN (expression, ...)
IN运算符测试是否在右侧表达式列表的值中找到左侧的RDF项。测试使用“=”运算符完成,该运算符测试由运算符映射确定的相同值
右边的零项列表是合法的
如果在术语列表的其他地方未找到正在测试的RDF术语,则比较中的错误会导致in表达式产生错误
IN运算符等效于SPARQL表达式:
(lhs=表达式1)| |(lhs=表达式2)| |
示例:
因此,中的操作员接受值列表。因此,下面是一个示例,您可以使用语法中的FILTER+尝试SPARQL:
SELECT ?s1
WHERE
{
?s1 rdf:type dbpedia-owl:Scientist.
FILTER (?s1 IN (<http://example.com/#1>,<http://example.com/#2>, <http://example.com/#3>))
}
选择?s1
哪里
{
?s1 rdf:dbpedia型猫头鹰:科学家。
过滤器(?s1英寸(,)
}
SELECT ?s1
WHERE
{
?s1 rdf:type dbpedia-owl:Scientist.
FILTER (?s1 IN (<http://example.com/#1>,<http://example.com/#2>, <http://example.com/#3>))
}