Error in version 07.20.3237 on DB.DBA.R2RML_MAKE_QM_FROM_G?


With the new version of Openlink Virtuoso (Version: 07.20.3237, Build: Jun 7 2023 (f3d88f16b)), when I execute the following command from ISQL:

EXEC ('SPARQL ' || DB.DBA.R2RML_MAKE_QM_FROM_G ('urn:geca:tables:r2rml:mappings1'));

I receive the following error message:

SQLState: 22023
Message: SR008: Function id_to_iri needs a string or UNAME or IRI_ID or NULL as argument 1, not an arg of type rdf (246)

With only the returned error message, I can’t even determine if there is any error in the R2RML, since if I execute it only, I don’t encounter any errors, and the error only occurs when I execute the R2RML_MAKE_QM_FROM_G command.

This is the entire SPARQL/R2RML script, where you can find the Triple mappings too:

However, when using the previous version (Version: 07.20.3236, Build: Feb 27 2023 (795af34a7)) with the same code, I do not receive error message.

It seems that there has been a change in the new version that causes this error.
Is there a way to understand what is causing the error? This would help find a solution and correct it.

What is the DDL for the SQL tables being used as when I attempt to run your script it fails with the error:

-- Line 735: EXEC ('SPARQL ' || DB.DBA.R2RML_MAKE_QM_FROM_G ('urn:geca:tables:r2rml:mappings1'))

*** Error R2RML: VD [Virtuoso Server]Error S0002 in declaration of data source for <#TriplesMapGSDAH_SCHEDA_TI_WORK>: SQ200: No table GECA.AH.GSDAH_SCHEDA_TI; failed test query is SELECT REPLACE(IDK,'/','_') as ID, ti.ID_AUTHORITY, ti.TSK, ti.IDK, ti.VSV, ti.NINN, 
                                          ti.NINR, ti.ESC, ti.ERP, ti."CAST", ti.CASB, ti.CASU, ti.TIT, ti.TIR, ti.TIZ, 
                                          ti.TIL, ti.TIPN, ti.TIPM, ti.TIN, ti.TIA, ti.TIDD, ti.TIDT, ti.TIDA, ti.TIDH, 
                                          ti.TIDC, ti.TIDL, ti.CMZD, ti.CMZN, ti.AGRD, ti.AGRN, ti.OSS
                                    FROM GECA.AH.GSDAH_SCHEDA_TI ti
                                    WHERE ti.VSV='S'
at line 735 of load test.sql :
EXEC ('SPARQL ' || DB.DBA.R2RML_MAKE_QM_FROM_G ('urn:geca:tables:r2rml:mappings1'))

Does our sample Generating Virtuoso RDF Quad Map Storage patterns from R2RML scripts example which calls R2RML_MAKE_QM_FROM_G work for you as it works for me with the latest docker Version 07.20.3237-pthreads for Linux as of Jun 7 2023 (f3d88f16b) container ?