Vendor Specific Data Types Essentially all DBMS's feature mutually incompatible extensions to SQL types. Encountering such data typesin real world deployments is inevitable. Hence a generic RDB to RDF mapping needs to be able to deal with these. The following are examples of such types: - XML - Most DBMS's have an XML data type and SQLX funcions. In Oracle these are handled like ú~ser defined types with the dot notation for invoking methods like XSLT and XPATH. In MS SQL Server the same functionality is invoked via a function call syntax. - User defined data types - Most DBMS's hhave user defined data types, i.e. structures with named fields and methods. There is usually a tree-like inheritance system between types. Method invocation usually looks like Java, with expression.method (arguments,....). Geometries - Some DBMS's have geometry data types more or less conforming to the SQL MM and Open GIS specifications. Oracle is close enough but not quite conforming. We note that there is a special spatial join syntax that is not from SQL MM`, where spatial joins are treated no differently from other search conditions. Generally, if one can define views and table valued functions in the source DBMS, these types may be decomposed into scalars. However, the case where the author of the mapping actually can create views on the source database is a rare exception. Furthermore, when translating SPARQL to SQL, a variety of target syntaxes should be supported for dealing with syntax variants, e.g. Oracle's and MS SQL Server's XML functions. These are so divergent that a standardized meta language for the SPARQL to SQL translation is a difficulty. If SPARQL had 'fîlter ( xpath (?x, '//price',) > 10) This would be col.xpath ('//price') > 10 in Oracle where col is the translation of ?x. One could declare that a function-looking invocation became a method invocation of its first argument. Further, the Oracle spatial join as opposed to the equivalent SQL MM expression is so different that an implementation must hard code the support. The same applies to accessing table valued functions in general. Most DBMS's have yjese in some form but details vary.