gpt4 book ai didi

regex - SPARQL 正则表达式过滤器

转载 作者:行者123 更新时间:2023-12-01 23:51:34 24 4
gpt4 key购买 nike

我正在尝试使用正则表达式过滤器来匹配 SPARQL 中的一个单词,但没有成功...:/我将查询发送到位于“http://dbtune.org/musicbrainz/sparql”的端点。那么,以下查询有效:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX mo: <http://purl.org/ontology/mo/>
SELECT ?artist ?name
WHERE {
?artist a mo:MusicArtist
. ?artist foaf:name "Switchfoot"
. ?artist foaf:name ?name
. FILTER(regex(str(?name), "switchfoot", "i"))
}

但是,如果我删除第 7 行 (. ?artist foaf:name "Switchfoot"),则以下查询不匹配:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX mo: <http://purl.org/ontology/mo/>
SELECT ?artist ?name
WHERE {
?artist a mo:MusicArtist
. ?artist foaf:name ?name
. FILTER(regex(str(?name), "switchfoot", "i"))
}

我不知道是我做错了什么还是端点的错误......

有人可以帮助我吗?

最佳答案

在您的第二个查询中,没有可供索引的图形模式。查询处理器满足该查询的唯一方法是检索三元组存储中每一位艺术家的姓名,然后对每个艺术家应用正则表达式匹配。难怪您会遇到某种资源限制,无论是 CPU 时间还是运行时间。

如果您想进行这样的自由文本搜索,我建议将数据集下载到本地端点,并使用自由文本索引,例如 LARQ 。您的查询将会更快,您的用户会为此感谢您!

关于regex - SPARQL 正则表达式过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11364285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com