涉及汉字的 SPARQL 查询
SPARQL Query Involving Chinese Characters
我是 运行 以下查询,以获取 this public 端点上的英语单词 "father" 的翻译:
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 .
}
在返回的字符串中,我还可以找到中文翻译“爸爸”。
当我尝试反向查询时,我没有收到任何中文单词的结果(它适用于其他语言):
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 "爸爸" .
}
我做错了什么?
正如 Stanislav Kralin 正确指出的那样,查询不起作用的原因是缺少语言注释。正确的查询公式如下:
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 .}
}
我是 运行 以下查询,以获取 this public 端点上的英语单词 "father" 的翻译:
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 .
}
在返回的字符串中,我还可以找到中文翻译“爸爸”。 当我尝试反向查询时,我没有收到任何中文单词的结果(它适用于其他语言):
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 "爸爸" .
}
我做错了什么?
正如 Stanislav Kralin 正确指出的那样,查询不起作用的原因是缺少语言注释。正确的查询公式如下:
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 .}
}