【问题标题】:How to make a sparql query with unicode letters?如何使用 unicode 字母进行 sparql 查询?
【发布时间】:2013-03-14 11:05:30
【问题描述】:

我正在使用 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)都没有成功。

有什么想法吗?

【问题讨论】:

    标签: python unicode sparql dbpedia


    【解决方案1】:

    问题在于FILTER 不是可选的。所以它不匹配&lt;http://fr.dbpedia.org/resource/Opéra&gt;,它没有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 . }
    }
    

    ... 有效(并返回 &lt;http://fr.dbpedia.org/resource/Catégorie:Opéra&gt;)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      相关资源
      最近更新 更多