依次替换主语、谓语和宾语中的前缀。
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix car: <http://example.com/car/>
prefix demo: <http://example.com/demo/>
prefix spdm: <http://example.com/spdm/>
prefix loc: <http://example.com/loc/>
prefix plane: <http://example.com/plane/>
DELETE {?s ?p1 ?o} INSERT {?s ?p2 ?o} WHERE
{
?s ?p1 ?o .
FILTER (strstarts(str(?p1), str(car:)))
BIND (IRI(replace(str(?p1), str(car:), str(plane:))) AS ?p2)
} ;
DELETE {?s1 ?p ?o} INSERT {?s2 ?p ?o} WHERE
{
?s1 ?p ?o .
FILTER (strstarts(str(?s1), str(car:)))
BIND (IRI(replace(str(?s1), str(car:), str(plane:))) AS ?s2)
} ;
DELETE {?s ?p ?o1} INSERT {?s ?p ?o2} WHERE
{
?s ?p ?o1 .
FILTER (strstarts(str(?o1), str(car:)) && isIRI(?o1))
BIND (IRI(replace(str(?o1), str(car:), str(plane:))) AS ?o2)
} ;
未在Allegrgraph中测试,可能存在Allegrgraph特定的解决方案。
使现代化
我仍然需要所有关系,前缀为“car”的对象不需要
必须更换
然后不要替换对象中的前缀。但是,请记住,一个三元组中的对象可以是另一个三元组中的主体。
这就足够用
新建前缀并在数据库中保留旧对象。
“独立”URI不存储在triplestore中。