Hello Ruben,

There are two methods.

Method 1.

The procedure is named WS.WS."/!sparql/" and its source text resides in
libsrc/Wi/sparql_io.sql . You can cut & paste it to a separate sql file,
edit and load as any other SQL file (say, via ISQL client).

Important side note:
It would be really bad idea to reload whole sparql_io.sql , for two
reasons.

First of all, is that sparql_io.sql contains directives for AWK script
that translates the SQL into C source, these directives sets permissions
(like --!AWK PUBLIC for commonly available procedures), ISQL knows
nothing about them so only DBA account will work properly after such a
reloading.

Other reason is subtle. When a new version of server is used with a
database made by old version, procedures created by user (hence, stored
in DB.DBA.SYS_PROCEDURES) take priority over procedures in server
executable. So if you load whole sparql_io.sql then its content is out
of sync with the rest of server internals after next version update. If
you load only WS.WS."/!sparql/" from your file then only this single
procedure remains "old". This procedure is not called by other routines
so it's relatively safe.

If for some reason you decide to cancel the change in that procedure,
drop it and restart the server.

Method 2.

You don't have to overwrite anything at all. Create a patched version of
the procedure, name it differently and edit virtual host definition by
VHOST_REMOVE and then VHOST_DEFINE. After VHOST_REMOVE you will need
four things:

1. The procedure itself :)

2. DB.DBA.VHOST_DEFINE (lpath=>'/sparql/' ... ) as it is in
libsrc/Wi/sparql_io.sql but with your function name as ppath ("physical
path") named argument of the procedure;

3. grant execute on WS.WS."your-function" to "SPARQL"; note double
quotes around name of "SPARQL" user and the upper case; otherwise it
will be confused with keyword SPARQL;

4. registry_set ('your-function-name', 'no_vsp_recompile'); otherwise
HTTP server will try to find the physical path in DAV storage or a
filesystem, to read and compile the content as a procedure.

Second method is probably better. In addition it will let you create
different variants of page for different IRIs.

Best Regards,

Ivan Mikhailov
OpenLink Software
http://virtuoso.openlinksw.com

P.S. Rumi, I don't know whether it's interesting enough to add to the
doc or wiki, but...

On Thu, 2009-09-17 at 13:06 +0200, Ruben Martin wrote:
> Hi again,
> 
> We want to change some text in the sparql endpoint page. For example
> the text explaining how to grant SPARQL_SPONGE privileges. It seems
> this page is embeded in some binary file. Is there some "easyer" way
> to edit that page? Or we need to change the source code (maybe
> 'appsrc/ODS-Framework/oauth/sparql.vsp') and remake the server?
> 
> Best regards 
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry® Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay 
> ahead of the curve. Join us from November 9-12, 2009. Register now!
> http://p.sf.net/sfu/devconf
> _______________________________________________ Virtuoso-users mailing list 
> Virtuoso-users@lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users


Reply via email to