在多语言数据库中搜索尚未翻译成特定语言的术语 [英] Search in a multilingual database for terms that have not been translated into a specific language

查看:14
本文介绍了在多语言数据库中搜索尚未翻译成特定语言的术语的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在多语言同义词词典中的查询如下所示:

select (COUNT(?label) as ?pCount)
where {?term <http://www.w3.org/2004/02/skos/core#prefLabel> ?label 
FILTER(langMatches(lang(?label), "DE"))}

我从他们的德语翻译中得到了大量的概念,这正是我对此查询的期望。
我现在正在寻找一个查询,给出我没有任何德语翻译的所有概念,也就是没有"prefLabel"和"@de"的所有概念。

这样的查询会是什么样子?

推荐答案

您需要FILTER NOT EXISTS or MINUS

select ?term
where {
    ?term a <http://www.w3.org/2004/02/skos/core#Concept>
    MINUS {
        ?term <http://www.w3.org/2004/02/skos/core#prefLabel> ?label
        FILTER(langMatches(lang(?label), "DE"))
    }
}

都可以在这里使用(我使用了MINUS,因为它更短)。

withMINUS右侧(或更确切地说,底部)块的匹配行从另一侧被删除。在这种情况下,带有德语标签的术语将从所有概念列表中删除(?term a <http://www.w3.org/2004/02/skos/core#Concept>)。

(如果您的概念没有显式键入,则可以使用?term <http://www.w3.org/2004/02/skos/core#prefLabel> ?someLabel,但您可能希望添加DISTINCT以进行整理)

这篇关于在多语言数据库中搜索尚未翻译成特定语言的术语的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆