gpt4 book ai didi

sequence - 使用 sparql 获取项目在 rdf 类型序列中的位置

转载 作者:行者123 更新时间:2023-12-05 05:25:30 24 4
gpt4 key购买 nike

我在 rdf 中有一个这样编码的序列:

_:blanknode <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>.
_:blanknode <http://www.w3.org/1999/02/22-rdf-syntax-ns#_0> uri:a.
_:blanknode <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> uri:b.
_:blanknode <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> uri:c.

现在我想知道给定 uri 在这个列表中的位置。有没有类似的东西:

SELECT ?position
WHERE {
_:blanknode <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>.
uri:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#_?position> _:blanknode
}

作为解决方法,我认为我可以使用:

<http://www.w3.org/1999/02/22-rdf-syntax-ns#_0> uri:value "1".
<http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> uri:value "2".
and so on...

查询:

SELECT ?position
WHERE {
_:blanknode <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>.
uri:a ?seqUri _:blanknode.
?seqUri uri:value ?position
}

但必须有更优雅的方式

最佳答案

您可以使用 REPLACE 函数删除 URI 的 namespace 部分,然后将结果转换为整数,如下所示:

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX uri: <http://example.org/>

SELECT (xsd:integer(REPLACE(str(?prop),
"http://www.w3.org/1999/02/22-rdf-syntax-ns#_", "")) as ?pos)
WHERE { [] a rdf:Seq;
?prop uri:a .
}

结果:

pos
---
0

关于sequence - 使用 sparql 获取项目在 rdf 类型序列中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30541221/

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