python - 如何使用 unicode 字母进行 sparql 查询?

标签 python unicode sparql dbpedia

我正在使用 SPARQL 查询法语 dbpedia ( http://fr.dbpedia.org/ )。

我正在使用 Python 和 SPARQLWrapper(如果有什么不同的话)。

第一个查询工作正常。

    PREFIX dbpp:<http://dbpedia.org/property/>
    PREFIX dbpo:<http://dbpedia.org/ontology/>
    PREFIX dbpr:<http://dbpedia.org/resource/>
    SELECT ?wt ?summary ?source_url
    WHERE {
        ?wt rdfs:label "Concerto"@fr .
        OPTIONAL { ?wt dbpedia-owl:abstract ?summary . }
        OPTIONAL { ?wt foaf:isPrimaryTopicOf ?source_url . }
        filter (lang(?summary) = "fr" )
    }

第二个查询不起作用。

    PREFIX dbpp:<http://dbpedia.org/property/>
    PREFIX dbpo:<http://dbpedia.org/ontology/>
    PREFIX dbpr:<http://dbpedia.org/resource/>
    SELECT ?wt ?summary ?source_url
    WHERE {
        ?wt rdfs:label "Opéra"@fr .
        OPTIONAL { ?wt dbpedia-owl:abstract ?summary . }
        OPTIONAL { ?wt foaf:isPrimaryTopicOf ?source_url . }
        filter (lang(?summary) = "fr" )
    }

唯一的区别是标签的值。 dbpedia 中存在页面http://fr.dbpedia.org/page/Opéra,rdfs 标签设置为“Opéra”。

我认为该查询不起作用,因为它包含法语字母 é。我尝试了几次转义(Op%C3%A9reOp\u0233raOp\xe9ra),但没有成功。

有什么想法吗?

最佳答案

问题是FILTER不是可选的。所以它不匹配 <http://fr.dbpedia.org/resource/Opéra> ,其中没有 dbpedia-owl:abstract .

PREFIX dbpp: <http://dbpedia.org/property/>
PREFIX dbpo: <http://dbpedia.org/ontology/>
PREFIX dbpr: <http://dbpedia.org/resource/>
SELECT ?wt ?summary ?source_url
WHERE {
    ?wt rdfs:label "Opéra"@fr .
    OPTIONAL { ?wt dbpedia-owl:abstract ?summary .
    filter (lang(?summary) = "fr" ) 
    }
    OPTIONAL { ?wt foaf:isPrimaryTopicOf ?source_url . }
}

...有效(并返回 <http://fr.dbpedia.org/resource/Catégorie:Opéra> )。

关于python - 如何使用 unicode 字母进行 sparql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15407465/

相关文章:

java - 将 unicode 字符串拆分为字符串列表

python - "TypeError: ' 在函数签名中输入 ' object is not subscriptable"

python - django get_available_name() 得到了一个意外的关键字参数 'max_length'

ios - Swift countElements() 在计数标志 emoji 时返回不正确的值

java - 导致空字段的 Jena TDB 插入语句

sparql - DBpedia 和 SPARQL : Query with accent marks does not work

sparql - 使用 sparql 更新重命名图形

python - 将曲线拟合到 Python 中的直方图

python - 使用 python 和 twitterApi 将多个图像添加到推文?

go - 不能使用 unicode 字符作为 rune