Hi Percy,

Note, Ivan does most of the work on the Virtuoso SPARQL engine so you should 
follow his advise ...

Although I would like to point out that even your last query runs successfully 
for me against an open source 6.1.4 or commercial 6.3 build, thus are you 
running against an open source 6.1.3 build still ?

Best Regards
Hugh Williams
Professional Services
OpenLink Software, Inc.      //              http://www.openlinksw.com/
10 Burlington Mall Road, Suite 265, Burlington MA 01803
Weblog   -- http://www.openlinksw.com/blogs/
LinkedIn -- http://www.linkedin.com/company/openlink-software/
Twitter  -- http://twitter.com/OpenLink
Google+  -- http://plus.google.com/100570109519069333827/
Facebook -- http://www.facebook.com/OpenLinkSoftware
Universal Data Access, Integration, and Management Technology Providers

On 12 Jan 2012, at 14:21, Ivan Mikhailov wrote:

> Hello Percy,
> 
> I'd write either
> 
> MODIFY <http://test.com/>
> delete
> {?s ?p ?o}
> insert
> {?s_new ?p ?o}
> where
> {
> {
>  SELECT iri(bif:replace(
>    str(?s),"http://test.com/link","http://test.com/extra/link"; ) )
> AS ?s_new ?s ?p ?o
>  WHERE 
>  {?s ?p ?o
>  filter (regex (str(?s), "http://test.com/link";))
> }
> }
> }
> 
> or
> 
> MODIFY <http://test.com/>
> delete
> {?s ?p ?o}
> insert
> {`iri(?s_new)` ?p ?o}
> where
> {
> {
>  SELECT bif:replace(
>    str(?s),"http://test.com/link","http://test.com/extra/link"; )
> AS ?s_new ?s ?p ?o
>  WHERE 
>  {?s ?p ?o
>  filter (regex (str(?s), "http://test.com/link";))
> }
> }
> }
> 
> or even
> 
> MODIFY <http://test.com/>
> delete
> {?s ?p ?o}
> insert
> { `iri(bif:replace(
>    str(?s),"http://test.com/link","http://test.com/extra/link"; ))`
>  ?p ?o }
> where
> {
>  {?s ?p ?o
>  filter (regex (str(?s), "http://test.com/link";))
> }
> }
> }
> 
> but in any case I'd convert string to IRI somewhere before trying to
> construct a subject node.
> 
> Best Regards,
> 
> Ivan Mikhailov
> OpenLink Software
> http://virtuoso.openlinksw.com
> 
> 
> On Thu, 2012-01-12 at 10:55 -0200, Percy Enrique Rivera Salas wrote:
>> Hi Hugh,
>> 
>> I provided a wrong example =(
>> the right one is the following
>> Virtuoso 22023 Error SR007: Function sprintf needs a string or UNAME or NULL 
>> as argument 2, not an arg of type INTEGER (189)
>> MODIFY <http://test.com/>
>> delete
>> {?s ?p ?o}
>> insert
>> {?s_new ?p ?o}
>> where
>> {
>> {
>>  SELECT
>> 
>> bif:replace(str(?s),"http://test.com/link","http://test.com/extra/link";) AS 
>> ?s_new ?s ?p ?o
>>  WHERE 
>>  {?s ?p ?o
>>  filter (regex (str(?s), "http://test.com/link";))
>> }
>> }
>> }
>> 
>> Best Regards,
>> 
>> Percy
>> 
>> 2012/1/11 Hugh Williams <hwilli...@openlinksw.com>
>>        Hi Percy,
>> 
>> 
>>        In what way does it now work as the query itself runs on my
>>        machine but doesn’t modify anything as I don’t have such data,
>>        so are you getting and error or unexpected results are
>>        occurring ? Please provide some output of what you are seeing
>>        as not working ?
>> 
>>        Best Regards
>>        Hugh Williams
>>        Professional Services
>>        OpenLink Software, Inc.      //
>>         http://www.openlinksw.com/
>>        10 Burlington Mall Road, Suite 265, Burlington MA 01803
>>        Weblog   -- http://www.openlinksw.com/blogs/
>>        LinkedIn -- http://www.linkedin.com/company/openlink-software/
>>        Twitter  -- http://twitter.com/OpenLink
>>        Google+  -- http://plus.google.com/100570109519069333827/
>>        Facebook -- http://www.facebook.com/OpenLinkSoftware
>>        Universal Data Access, Integration, and Management Technology
>>        Providers
>> 
>>        On 11 Jan 2012, at 19:03, Percy Enrique Rivera Salas wrote:
>> 
>> 
>>> Dear All,
>>> 
>>> The following MODIFY Statement doesn't work properly, I
>>> think is because
>>> the variable ?url and ?new_url is an IRI (not a Literal)
>>> 
>>> MODIFY <http://test.com/>
>>> delete
>>> {?s ?p ?url}
>>> insert
>>> {?s ?p ?new_url}
>>> where
>>> {
>>> {
>>>  SELECT
>>>  ?s ?p
>>> bif:replace(str(?url),"http://test.com/link","http://test.com/extra/link";) 
>>> AS ?new_url ?url
>>>  WHERE 
>>>  {?s ?p ?url
>>>  filter (regex (str(?url), "http://test.com/link";))
>>> }
>>> }
>>> }
>>> 
>>> Any idea to workaround?
>>> 
>>> Best Regards, 
>>> 
>>> Percy
>>> 
>>> ------------------------------------------------------------------------------
>>> Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't
>>> need a complex
>>> infrastructure or vast IT resources to deliver seamless,
>>> secure access to
>>> virtual desktops. With this all-in-one solution, easily
>>> deploy virtual 
>>> desktops for less than the cost of PCs and save 60% on VDI
>>> infrastructure 
>>> costs. Try it free!
>>> http://p.sf.net/sfu/Citrix-VDIinabox_______________________________________________
>>> Virtuoso-users mailing list
>>> Virtuoso-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
>> 
>> 
>> 
>> ------------------------------------------------------------------------------
>> RSA(R) Conference 2012
>> Mar 27 - Feb 2
>> Save $400 by Jan. 27
>> Register now!
>> http://p.sf.net/sfu/rsa-sfdev2dev2
>> _______________________________________________ Virtuoso-users mailing list 
>> Virtuoso-users@lists.sourceforge.net 
>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to