Filter SPARQL查询中的析取过滤器
我想在判例法数据库中搜索特定的标题。我在Filter SPARQL查询中的析取过滤器,filter,sparql,logical-or,Filter,Sparql,Logical Or,我想在判例法数据库中搜索特定的标题。我在title和alttitle属性中查找该标题,使用过滤器和|(逻辑或) 现在我注意到,这似乎只有在两个过滤条件都为真时才会产生结果。因此,下面的示例不会产生任何结果,即使我要查找的记录中的?alttitle字段的值是“NTN东洋轴承和其他v委员会”,而?title字段的值是“NTN东洋轴承有限公司和其他v委员会”。我希望在使用|时,在?alttitle属性中有一个匹配项就足够了 如何确保即使只有与?alttitle值匹配的记录也会返回?此外,任何加快查询速
title
和alttitle
属性中查找该标题,使用过滤器和|
(逻辑或)
现在我注意到,这似乎只有在两个过滤条件都为真时才会产生结果。因此,下面的示例不会产生任何结果,即使我要查找的记录中的?alttitle
字段的值是“NTN东洋轴承和其他v委员会”,而?title
字段的值是“NTN东洋轴承有限公司和其他v委员会”。我希望在使用|
时,在?alttitle
属性中有一个匹配项就足够了
如何确保即使只有与?alttitle
值匹配的记录也会返回?此外,任何加快查询速度的提示都将不胜感激
SPARQL端点:
前缀cdm:
选择不同的?工作?表达式?ecli?celex?alttitle?agname?标题
在哪里{{{
在课堂上工作。
表达cdm:表达属于工作。
?表达式cdm:表达式标题?标题。
?表达式cdm:表达式_使用_语言。
?cdm工作:案例法?ecli?ecli。
?工作cdm:资源\法律\身份\名人?名人。
可选{表述cdm:表述(判例法)缔约方| cdm:表述(标题)备选(替代标题)}
}
过滤器(?类在(,)中)
过滤器(包含(?alttitle,“NTN东洋轴承和其他v委员会”)|包含(?title,“NTN东洋轴承v委员会”))
工会{在一个班级工作。
表达cdm:表达属于工作。
?表达式cdm:表达式标题?标题。
?表达式cdm:表达式_使用_语言。
?cdm工作:案例法?ecli?ecli。
?工作cdm:资源\法律\身份\名人?名人。
?cdm工作:案例法由通用公司提供。
?ag cdm:代理名称?agname。
可选{表述cdm:表述(判例法)缔约方| cdm:表述(标题)备选(替代标题)}
}
过滤器(?类在()中)
过滤器(包含(?alttitle,“NTN东洋轴承和其他v委员会”)|包含(?title,“NTN东洋轴承v委员会”))
限制15
数据存在一些编码“问题”(我们称之为隐藏陷阱):我的意思是,它在前4个字中与过滤器一起工作:过滤器(contains(str(?alttitle),“NTN Toyo轴承和”)
但即使是额外的单空格字符也会使结果集为空:过滤器(contains(str(?alttitle),“NTN Toyo轴承和”))
-如果您使用工作过滤器进行查询,并要求N-Triples作为结果,而不是HTML,您将看到文本是NTN Toyo轴承和\u00a0v Council
-unicode字符是一个“不间断空格”:顺便说一句,第二个UNION
子句的过滤器不在UNION的范围内-我不认为这是一个很好的发现,也是将来故障排除的有用方法。事实上,进一步的测试证实,这两种情况都不是真实的,因为这是一个非破坏空间。因此,|
确实如预期的那样工作。请随意将此作为答案发布!
PREFIX cdm: <http://publications.europa.eu/ontology/cdm#>
SELECT DISTINCT ?work ?expression ?ecli ?celex ?alttitle ?agname ?title
WHERE {{{
?work a ?class.
?expression cdm:expression_belongs_to_work ?work.
?expression cdm:expression_title ?title.
?expression cdm:expression_uses_language <http://publications.europa.eu/resource/authority/language/ENG>.
?work cdm:case-law_ecli ?ecli.
?work cdm:resource_legal_id_celex ?celex.
OPTIONAL{?expression cdm:expression_case-law_parties|cdm:expression_title_alternative ?alttitle}
}
FILTER(?class in (<http://publications.europa.eu/ontology/cdm#judgement>,<http://publications.europa.eu/ontology/cdm#opinion_cjeu>))
FILTER (CONTAINS(?alttitle, "NTN Toyo Bearing and Others v Council")||CONTAINS(?title,"NTN Toyo Bearing v Council"))}
UNION{?work a ?class.
?expression cdm:expression_belongs_to_work ?work.
?expression cdm:expression_title ?title.
?expression cdm:expression_uses_language <http://publications.europa.eu/resource/authority/language/ENG>.
?work cdm:case-law_ecli ?ecli.
?work cdm:resource_legal_id_celex ?celex.
?work cdm:case-law_delivered_by_advocate-general ?ag.
?ag cdm:agent_name ?agname.
OPTIONAL{?expression cdm:expression_case-law_parties|cdm:expression_title_alternative ?alttitle}
}
FILTER(?class in (<http://publications.europa.eu/ontology/cdm#opinion_advocate-general>))
FILTER (CONTAINS(?alttitle, "NTN Toyo Bearing and Others v Council")||CONTAINS(?title,"NTN Toyo Bearing v Council"))}
LIMIT 15