涉及汉字的SPARQL查询

涉及汉字的SPARQL查询,sparql,Sparql,我正在运行以下查询以获取public endpoint上英文单词“父亲”的翻译: PREFIX dbnary: <http://kaiko.getalp.org/dbnary#> select distinct ?l ?written where { dbnary-eng:father dbnary:describes ?le . ?t dbnary:isTranslationOf ?le . ?t dbnary:targetLanguage ?l . ?t dbnary:writt

我正在运行以下查询以获取public endpoint上英文单词“父亲”的翻译:

PREFIX dbnary: <http://kaiko.getalp.org/dbnary#>
select distinct ?l ?written where
{
dbnary-eng:father dbnary:describes ?le .
?t dbnary:isTranslationOf ?le .
?t dbnary:targetLanguage ?l .
?t dbnary:writtenForm ?written .
}
前缀dbnary:
选择不同的?l?写入位置
{
父亲:描述?勒。
t dbnary:是“乐”的翻译。
t dbnary:targetLanguage?l。
?t dbnary:书面形式?书面形式。
}
在返回的字符串中,我还可以找到中文翻译”爸爸". 当我尝试反向查询时,我没有收到任何中文单词的结果(它适用于其他语言):

前缀dbnary:
选择distinct?c,其中
{
c dbnary:描述了。
t dbnary:是“乐”的翻译。
t dbnary:targetLanguage?l。
?t dbnary:writtenForm“爸爸" .
}
我做错了什么?

正如正确指出的,查询不起作用的原因是缺少语言注释。正确的查询公式如下:

PREFIX dbnary: <http://kaiko.getalp.org/dbnary#>
select distinct ?c where
{
   ?c dbnary:describes ?le .
   ?t dbnary:isTranslationOf ?le .
   ?t dbnary:targetLanguage ?l .
   {?t dbnary:writtenForm "爸爸"@yue .}
   UNION {?t dbnary:writtenForm "爸爸"@cmn .}
}
前缀dbnary:
选择distinct?c,其中
{
c dbnary:描述了。
t dbnary:是“乐”的翻译。
t dbnary:targetLanguage?l。
{?t dbnary:writenform“爸爸“@yue.”
联合{?t dbnary:writenform“爸爸“@cmn.}
}

”爸爸“@yue
”爸爸“@cmn
@StanislavKralin,你的答案是正确的(请随意添加为正式答案)。但是,我想知道为什么我需要这些语言注释。第一个查询没有指出需要这些注释(只有一些字符串有语言注释,但没有中文注释)。你也知道答案吗?”第一个查询并不表示这些是必需的”-例如,在“结果格式”列表中选择“JSON”选项,或者在第一个查询中添加类似于
bind(lang(?write)as?lang
的内容。Web UI只是跳过语言标记。
PREFIX dbnary: <http://kaiko.getalp.org/dbnary#>
select distinct ?c where
{
   ?c dbnary:describes ?le .
   ?t dbnary:isTranslationOf ?le .
   ?t dbnary:targetLanguage ?l .
   {?t dbnary:writtenForm "爸爸"@yue .}
   UNION {?t dbnary:writtenForm "爸爸"@cmn .}
}