SPARQL to SQL translation


The translation of SPARQL to SQL results in RDF_QUAD self-joins and a call to some functions like __ro2sql, __i2idn that are not defined in the database but programatically in Virtuoso.

My question: Do these functions perform database calls to retrieve the required information from the other tables (like RDF_OBJ, _RDF_LANGUAGE, etc ) OR the table values are stored in memory/or temporary in files and then acceded by them.

Thanks in advance.

The RDF language and type are cached, as result the seek on tables is only needed if not in cache, although the literal objects are work in different way. The objects are serialised so that IDs are in the RDF_QUAD table column O, except for a few types such as IRIs, integers and datetime types. Thus a join on O is either between a IRI and/or RDF literal object.