【问题标题】:SPARQL QUERY OWL FILESPARQL 查询猫头鹰文件
【发布时间】:2011-05-02 20:46:29
【问题描述】:

我能问你关于 Ontology 的 SPARQL 查询吗?我有一个 family.owl 文件是从 protege 3.4 构建的本体,带有数据:

Lan haschild Tuấn, 
Tùng haschild Tuấn.

我在网站 (http://www-sop.inria.fr/edelweiss/software/corese/v2_4_0/manual/index.php#coreseapi ) 上使用 Java 和 CORESE API 来查询上面的 family.owl。使用以下 SPARQL 查询:

PREFIX fm:< http://www.owl-ontologies.com/Ontology1287989576.owl#>

SELECT ?child
WHERE 
{ 
  fm:Lan fm:haschild ?child 
} 

结果是 Tuấn(真实结果必须是 Tuấn)

如果我将“where”子句替换为:WHERE { fm:Tùng fm:haschild ?child },则结果为空(真正的结果必须是 Tuấn)

我知道字符串“Tùng”和“Tuấn”的错误结果。这个字符串有字符 unicode ù, ấ

你能让我在 CORESE API 中使用 unicode 字符来使用 sparql 查询 owl 文件吗?

【问题讨论】:

    标签: unicode sparql normalization unicode-normalization


    【解决方案1】:

    一种可能的解决方案是转义 URI,而不是:

    fm:Tùng --> fm:T%C3%B9ng
    

    fm:Tuấn --> fm:Tu%E1%BA%A5n
    

    如果您以这种方式创建数据,您应该不会遇到问题。在 URIS 中使用重音符号并不是非常可取的,因此人们倾向于对 URI 进行编码/转义,并且大多数语言都有库来对 URI 进行编码。例如在 Python 中就像 ...

    >>> import urllib
    >>> urllib.quote("Tùng")
    'T%C3%B9ng'
    >>> urllib.quote("Tuấn")
    'Tu%E1%BA%A5n'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多