【问题标题】:Semantic relations between set of words词集之间的语义关系
【发布时间】:2015-05-15 09:42:48
【问题描述】:
如果我有一组单词(DBpedia 资源)存储在 arraylist 中
如何构建 SPARQL 查询来查找这些术语之间所有可能的直接间接关系?
主要问题是我不知道我要搜索的关系类型是什么。
假设我的数组列表包含 3 个单词,France,Paris,Europe
如何编写返回 France-Paris 、Paris-Europe 和 France-Europe 之间的直接关系(或 2 跳的间接关系)的查询
希望我能弄清楚我在寻找什么
【问题讨论】:
标签:
java
sparql
semantic-web
dbpedia
【解决方案1】:
您可以做的是使用VALUES 为您的资源集设置一个变量,但是两次,为关系的每一端设置一次。然后使用变量作为谓词来查找关系是什么。比如:
SELECT ?resource1 ?p1 ?intermediary ?p2 ?resource2
WHERE
{
VALUES ?resource1 { :Paris :France :Europe }
VALUES ?resource2 { :Paris :France :Europe }
FILTER(?resource1 != ?resource2)
{
?resource1 ?p1 ?resource2
}
UNION
{
?resource1 ?p1 ?intermediary.
?intermediary ?p2 ?resource2.
}
}
结果是: