gpt4 book ai didi

sparql - 动态生成 urn/iri/uri

转载 作者:行者123 更新时间:2023-12-01 11:33:08 25 4
gpt4 key购买 nike

我需要根据时间动态生成图形的名称。
我很坚强,有些人认为

select ?g where { 
bind(concat("<urn:myNewGraph_",str(now()),">") as ?g)
}

本来可以解决问题的,但是使用 Stardog 我得到了一个空结果。

如果我运行这个
select ?g where { 
bind(concat("urn:myNewGraph_",str(now())) as ?g)
}

我得到 urn:myNewGraph_2015-05-28T09:37:11.823Z
有任何想法吗?

此外,我不确定即使我能以某种方式获得像 <urn:myNewGraph_2015-05-28T09:37:11.823Z> 这样的字符串。从这个不工作的测试中可以看出,本来可以作为图形名称的有效参数:
INSERT {graph ?g {<urn:s> <urn:p> <urn:o>}
where {
?g="<rn:myNewGraph_2015-05-28T09:37:11.823Z>"
}

有没有正确的方法来动态生成 urn/iri/uri?

最佳答案

您的原始查询看起来是正确的,并且当我使用不同的 SPARQL 引擎 (Sesame) 执行它时会产生有效的结果,所以我猜您可能希望将此作为可能的错误报告给 Stardog 开发人员。

但是,为了能够使用由此获得的值,它需要是一个实际的 URI(或 IRI)——而您生成的是一个文字字符串。

你需要改变两件事:首先,去掉封闭的<> (这些括号实际上不是 IRI 的一部分) - 所以实际上你的第二个查询更好。二、使用IRI将字符串值转换为 IRI 的函数:

INSERT {GRAPH ?g {<urn:s> <urn:p> <urn:o>} }
WHERE {
BIND( IRI(CONCAT("urn:myNewGraph_",STR(NOW()))) as ?g)
}

不确定在您的情况下是否有必要,但通常您可能需要使用 ENCODE_FOR_URI在某处运行,以确保在将字符串转换为 IRI 之前,字符串中的任何特殊字符都已正确编码/转义。

关于sparql - 动态生成 urn/iri/uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30503255/

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