SparQL:替换主题URI

时间:2019-06-14 14:12:25

标签: sparql fuseki

我们有一些包含oa:Annotations且具有某些属性的图。由于我正在处理服务器的本地副本,因此更改这些URI指向本地主机对我很有用。根据我读过的书,我认为这应该起作用,但事实并非如此。它似乎并没有改变任何东西。服务器仍然返回204,我使用的是端口和url(/ update)。所以我绝对应该能够改变事情。没有错误消息。

PREFIX oa: <http://www.w3.org/ns/oa#>    

DELETE
{ GRAPH ?g {?oldIRI ?p ?o} }
INSERT
{ GRAPH ?g {?newIRI ?p ?o} }
WHERE
{
    GRAPH ?g {
        ?oldIRI a oa:Annotation .
        ?oldIRI ?p ?o .
    }

    BIND(
        CONCAT("http://localhost:80",
               SUBSTR( STR(?oldIRI),
                      34,
                      STRLEN(STR(?oldIRI)) ) 
        ) AS ?newIRI
    )

    FILTER(CONTAINS(?oldIRI, "part_of_old_url"))
}

有人知道为什么它没有达到我希望的效果吗?我用作参考的书确实具有更改属性及其值的“方法”,但是没有更改主题的示例,因此我认为存在更普遍的问题吗?

更新:使用STR()

如评论中所建议,我使用CONTAINS(STR(?oldIRI), "part_of_old_url")将oldIRI转换为字符串。我尚不完全了解所有更改,但这就是我可以说的:(我有备份,不用担心:D)

PREFIX oa: <http://www.w3.org/ns/oa#>    

SELECT *
WHERE {
    GRAPH ?g {
        ?iri a oa:Annotation .
    }
} LIMIT 100

此查询的结果为零。这是一个默认查询,我经常使用它来获取一些注解uri,以便进行调查。

0 个答案:

没有答案