语句部分匹配的 SPARQL 查询(包含)

Posted

技术标签:

【中文标题】语句部分匹配的 SPARQL 查询(包含)【英文标题】:SPARQL query for partial match of statement (contains) 【发布时间】:2015-02-20 11:34:25 【问题描述】:

我想知道 SPARQL 中是否有一种方法可以查询语句的部分匹配。因此,例如,如果在三重商店中我有一个包含“blablablaUsefulblablabla”的对象,我希望能够查询 Useful,所以我想说应该找到独立的语句“Useful”该语句之前或之后的内容。

有没有办法做到这一点?

谢谢

【问题讨论】:

【参考方案1】:

我有一个包含“blablablaUsefulblablabla”的对象

如果我理解正确的话,听起来你想要contains 函数。例如,在 DBpedia 上:

select distinct ?city ?label where 
  ?city a dbpedia-owl:City ;
        rdfs:label ?label .
  filter contains(?label,"San")         #-- the important line
  filter langMatches(lang(?label),'en')

limit 100

SPARQL results

【讨论】:

谢谢!这样可行。我假设没有办法直接查询这个,以节省查询时间?如果没有,这是最好的解决方案。谢谢 @robinaugy 标准中没有,但一些端点支持属性函数,因此您可以编写 ?label bif:contains "san" 之类的东西。这对支持文本索引的端点很有帮助。 对,这可能确实有用。感谢您的回复! Joshua 或其他人,如果我没看错的话,这个 contains 函数仅适用于文字?有没有办法对 URI 进行部分匹配? 编辑:找到了 :) 只需要做 str(?s) 而不是 ?s 然后

以上是关于语句部分匹配的 SPARQL 查询(包含)的主要内容,如果未能解决你的问题,请参考以下文章

SPARQL查询语言

SPARQL 查询根据语句的顺序返回不同的结果

DBpedia SPARQL 查询 ID3 标签的歌曲信息

SPARQL UNION不产生第二个查询的结果。

Access 2010 SQL 查询仅在全字字符串中查找部分匹配

如何迭代引用虚拟图的 SPARQL 查询?