SPARQL QUERY OWL文件

时间:2010-10-30 17:13:06

标签: unicode sparql normalization unicode-normalization

我可以问一下关于Ontology的SPARQL查询吗?我有一个family.owl文件是来自protege 3.4的本体构建数据:

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

我在网站上使用Java和CORESE API(http://www-sop.inria.fr/edelweiss/software/corese/v2_4_0/manual/index.php#coreseapi)来查询上面的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文件。

1 个答案:

答案 0 :(得分: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'