我可以问一下关于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文件。
答案 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'