SPARQL 查询:OR 在 FILTER 中?

问题描述

我想根据短标题搜索法庭案件,但我在 RDF 记录中注意到此信息有时存储在一个属性下 (cdm:expression_case-law_parties),有时存储在另一个属性下 (cdm:expression_title_alternative) .我想同时过滤两者。下面的查询(我尝试在 FILTER 中使用 OR ||)不起作用。什么是合适的方式?

PREFIX cdm: <http://publications.europa.eu/ontology/cdm#>
                            SELECT ?work ?expression ?ecli ?celex ?alttitle ?parties ?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 ?parties}
                            OPTIONAL{?expression cdm:expression_title_alternative ?alttitle}
                            FILTER(?class in (<http://publications.europa.eu/ontology/cdm#judgement>))
                            FILTER CONTAINS (?alttitle,"France v Commission") || (?parties,"France v Commission")}

LIMIT 15

解决方法

来自Stanislav Kralin's comment

FILTER (CONTAINS (?alttitle,"France v Commission") || CONTAINS(?parties,"France v Commission"))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...