如图所示 这个问题 它具有相似的标题,我想通过知道其名称的一部分来检索dbpedia资源。我是初学者,当谈到SPARQL等等,但问题中的例子帮助了我很多,因为作者搜索了“罗马尼亚”,并且回答的人用Sparql请求连接他来完成这项工作。这很好,但这就是事情。
在这个例子中,他们已经“知道”罗马尼亚是一个国家,因此
?c a dbpedia-owl:Country ;
在WHERE子句中。完整的sparql请求正在
SELECT ?c
WHERE {
?c a dbpedia-owl:Country ;
foaf:name "Romania"@en .
FILTER NOT EXISTS {?c dbpedia-owl:dissolutionYear ?y}
}
但是,这个问题并不能完全满足我们的需求,因此通过名称搜索任何资源,“名称”是资源的实际名称或其中的一部分, 无论其(rdf :)类型。目标是搜索“任何东西”,只知道名称或其中的一部分。
在问你们这个问题之前我一直在做一些研究,我已经知道“名称的一部分”问题可以通过bif函数解决(坏方法,因为它不符合sparql),或者CONTAINS子句,但我找不到任何展示如何使用它的例子。
我们现在假设在dbpedia资源中有一个“单词”来搜索,该单词将是来自某个用户的输入。我们称之为“输入”。
我想,请求看起来像:
SELECT ?something WHERE
{
?something a (dbpedia Resource).
CONTAINS(?something,"INPUT")
}
我的主要问题是两个主要方面:
- 有没有描述Dbpedia资源类型的东西?我认为这不是本体论或其他任何东西。通过knwoing我想搜索所有资源,找到一个匹配...
- 我将提供的特定名称,或一些字符串。我考虑了FILTER选项,但这意味着获取所有资源,然后在它们被检索后按名称过滤它们,我猜,这不是那么优化。
那么,是否有人知道这个“主查询”通过提供其名称或其中的一部分来获取资源? (一个例子是提供“奥巴马”,并且不仅为巴拉克,而且为米歇尔获得结果)。
先谢谢你。