适用于 DBpedia 端点但不适用于 ARC2 的 SPARQL 查询

A SPARQL query that works in the DBpedia endpoint but not with ARC2

查询如下:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT distinct ?value
    from <http://fr.dbpedia.org>
    WHERE{                                          

        ?sub rdfs:label ?value.                     
                    FILTER (CONTAINS(LCASE(?value), 'data')).                                                           
        }

limit 10  

使用 DBpedia endpoint 它工作得很好,但是当我尝试使用 ARC2 从 PHP 使用它时,我收到以下错误:

Query errorsArray ( [0] => Incomplete FILTER in ARC2_SPARQLPlusParser [ 1] => Incomplete or invalid Group Graph pattern. Could not handle " " in ARC2_SPARQLPlusParser )

任何想法可能是什么问题? 谢谢!

ARC2 支持完整的 SPARQL 1.1(请参阅 source code),因此 CONTAINS 不受支持。您可以尝试使用 REGEX 代替:

前缀 rdfs:http://www.w3.org/2000/01/rdf-schema#

SELECT distinct ?value
    from <http://fr.dbpedia.org>
    WHERE{                                          

        ?sub rdfs:label ?value.                     
                    FILTER (REGEX(STR(?value), 'data', 'i')).                                                           
        }

limit 10