【问题标题】:SPARQL query for partial match of statement (contains)语句部分匹配的 SPARQL 查询(包含)
【发布时间】:2023-04-05 02:53:01
【问题描述】:

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

有没有办法做到这一点?

谢谢

【问题讨论】:

    标签: sparql


    【解决方案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 然后
    猜你喜欢
    • 2011-07-06
    • 2013-12-19
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2021-08-03
    相关资源
    最近更新 更多