Hi,

Based on your two answers, I guess I have to run the following

UPDATE DB.DBA.RDF_QUAD 
set g = iri_to_id(
   regexp_replace(id_to_iri(g), '/foo/', '/bar/')
)
where
 g = iri_to_id(
        regexp_match('/foo/', id_to_iri(g))
);

Right ?

Yet, I'm not sure I understand the second part of [1]

"For Virtuoso Graph Groups two tables need to be updated: "

Do I have to run the previous query + the 2 ones in that part ? Or only the 
previous one ?

Thanks,

Alex.

[1] http://ods.openlinksw.com/wiki/main/Main/VirtTipsAndTricksGuideRenameGraph



On 26 May 2011, at 08:37, Ivan Mikhailov wrote:

> Alexandre,
> 
> I've posted a procedure to find all distinct predicates that start with
> some specified substring. It's trivial to turn it into a procedure to
> list all distinct graphs with same filtering and make an update based on
> th results.
> 
> Best Regards,
> 
> Ivan Mikhailov
> OpenLink Software
> http://virtuoso.openlinksw.com
> 
> On Tue, 2011-05-24 at 18:15 +0100, Tim Haynes wrote:
>> On 24/05/2011 16:55, Alexandre Passant wrote:
>>> I've seen doc at [1], but is there a way to do regex-based renaming of 
>>> graphs in Virtuoso ?
>>> 
>>> E.g. rename all graphs with URI scheme http://example.org/foo/* into 
>>> http://example.org/bar/*
>>> 
>>> Thanks
>>> 
>>> Alex.
>>> 
>>> [1] 
>>> http://ods.openlinksw.com/wiki/main/Main/VirtTipsAndTricksGuideRenameGraph
>> 
>> Hi,
>> 
>> Yes, it should be possible. Consider the following:
>> 
>> select distinct(
>>  iri_to_id(
>>    regexp_replace(id_to_iri(g), 'openlink', 'localhost')
>>  )
>> )
>> from
>>  DB.DBA.RDF_QUAD
>> where
>>  regexp_match('openlink', id_to_iri(g))
>> 
>> Converting that to an update is left as an exercise :)
>> 
>> HTH,
>> 
>> ~Tim
> 
> 

--
Dr. Alexandre Passant, 
Social Software Unit Leader
Digital Enterprise Research Institute, 
National University of Ireland, Galway




Reply via email to