gpt4 book ai didi

sparql - 如何检查 SPARQL 中变量的前缀?

转载 作者:行者123 更新时间:2023-12-02 00:59:46 24 4
gpt4 key购买 nike

我想查找 RDF 中有多少资源,但找不到任何教程来解释如何检查 SPARQL 中变量的前缀。

我试过这个:

select count(?x) where {
res:?x ?p ?v
}

但是它有语法错误。我正在为 DBPedia 使用 virtuoso

最佳答案

您可以使用strstarts(string,prefix) 来检查string 是否以prefix 开头。您可以使用 str 函数获取 IRI 的字符串表示形式,包括从前缀生成的 IRI。例如,如果您有前缀 ex: ,那么 ex: 本身就是一个合法的 IRI,而 str(ex :) 生成 "http://example.org/"。这意味着您可以通过执行 strstarts(str(?x ),str(p:))。然后你可以过滤它,或者计算它,等等。

这是一个将 ?thing 绑定(bind)到几个不同值的示例,其中一些值以 dbpedia-owl: 前缀开头:

select * where {
values ?thing { dbpedia-owl:a dbpedia-owl:b dbpprop:c }
bind( strstarts(str(?thing),str(dbpedia-owl:)) as ?startsWithDBpediaOwl )
}

SPARQL results (a and b get true, c gets false)

您也可以对其进行过滤,然后计算结果:

select (count(*) as ?n) where {
values ?thing { dbpedia-owl:a dbpedia-owl:b dbpprop:c }
filter strstarts(str(?thing),str(dbpedia-owl:))
}

SPARQL results (2)

关于sparql - 如何检查 SPARQL 中变量的前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30051339/

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