MarkLogic 8-SPARQL-跟随同义词链
假设我有很多同义词的本体论MarkLogic 8-SPARQL-跟随同义词链,sparql,semantics,marklogic,Sparql,Semantics,Marklogic,假设我有很多同义词的本体论 <term> <word>cat</word> <synonyms> <synonym>feline</synonym> </synonyms> </term> <term> <word>feline></word> <synonyms> <synonym>kitty<
<term>
<word>cat</word>
<synonyms>
<synonym>feline</synonym>
</synonyms>
</term>
<term>
<word>feline></word>
<synonyms>
<synonym>kitty</synonym>
<synonyms>
</term>
我如何编写SPARQL查询,这样我就可以给它一个单词cat,它将给我cat的所有同义词以及cat的同义词的所有同义词
我不知道是否有递归的方法,或者是否必须指定每个级别。要使用SPARQL,需要将此数据表示为三元组。更了解本体论的人可能会提出更好的IRIs,但如MarkLogic中所示:
<triple>
<subject>http://marklogic.com/scope#cat</subject>
<predicate>http://marklogic.com/term</predicate>
<object>cat</object>
</triple>
<triple>
<subject>http://marklogic.com/scope#cat</subject>
<predicate>http://marklogic.com/synonym</predicate>
<object>feline</object>
</triple>
<triple>
<subject>http://marklogic.com/scope#cat</subject>
<predicate>http://marklogic.com/synonym</predicate>
<object>kitty</object>
</triple>
请注意,我的三元组的含义与您的不完全匹配,但希望足够接近,以说明这一点。使用三元组,您可以执行如下SPARQL查询:
select ?term
where {
<http://marklogic.com/scope#cat> <http://marklogic.com/synonym> ?term
}
应该还猫和小猫 啊这其实是有道理的。我们必须从现有的三元组中进行一些推断,然后它大大简化了SPARQL查询。很好。