On 16/08/12 14:28, Carsten Keßler wrote:
Dear all,

is it possible to replace URIs in a store, similar to the approach in
example 5 given here: http://www.w3.org/TR/sparql11-update/#deleteInsert ?

The catch is that I don't want to replace single URIs, but all URIs in a
certain namespace. Say I have

http://some.domain.org/myClassA
http://some.domain.org/myClassB
http://some.domain.org/myPropertyA
http://some.domain.org/myPropertyB
etc.

and I want to change them all to

http://another.domain.org/myClassA
http://another.domain.org/myClassB
http://another.domain.org/myPropertyA
http://another.domain.org/myPropertyB
etc.

Finding the URIs to replace via FILTER and regex is no problem, but I'm
wondering whether there is a way to make sure that the
class/property-specific parts of the URIs are maintained and copied over
to the new URIs?

Any ideas appreciated!

This (virtually untested) update will convert namespaces for subject URIs:

DELETE { ?s ?p ?o  }
INSERT { ?s1 ?p ?o  }
WHERE
{
   { SELECT (uri(concat("http://another.domain.org/";,
                         SUBSTR(str(?s),24)) )
             AS ?s1)
    {
      ?s ?p ?o .
      FILTER regex(str(?s), "^http://some.domain.org/";)
    }}
}

it finds the URIs starting with http://some.domain.org/, then calculates a replacement by string bashing.

Repeat for objects.

        Andy


Thanks,
Carsten

---
Carsten Keßler  | http://carsten.io

Semantic Interoperability Lab | http://musil.uni-muenster.de
Institute for Geoinformatics | http://ifgi.uni-muenster.de
University of Münster | http://www.uni-muenster.de



Reply via email to