# Known issues
WARNING
THIS PAGE IS OUTDATED.
TODO: check these points and move them somewhere else if still relevant.
# RDF
GRAPHis not supported yet
# SPARQL
ORDER BYdoesn't support functions as parameters, accepts variables only. Example:
SELECT ...
ORDER BY str(?o)
SELECT ...
ORDER BY xsd:integer(?o)
SELECT ...
ORDER BY (?o1 + ?o2)
REGEXis not supported by MsSQL and DB2, while the other databases handle it differently: see [[Regex SPARQL filter]]URIwith a hierarchical directory path of the form directory/directory/.../name are supported if we use them without prefix or with complete prefix. Example we can query<http://en.wikipedia.org/wiki/BMW_7_Series#section/help>using it as it is or with a complete prefix as:
PREFIX bmwSection: http://en.wikipedia.org/wiki/BMW_7_Series#section/
SELECT * WHERE {?x ?y bmwSection:help}
It is not supported the form:
PREFIX bmw: http://en.wikipedia.org/wiki/BMW_7_Series#
SELECT * WHERE {?x ?y bmw:section/help}
- No support for cast functions (e.g. xsd:string(...), xsd:integer(...) ).
REPLACEfunction is supported with some limitations based on the database used. See [[Replace SPARQL filter]].- Do not use
SELECT Expressionswith more variable declarations, use the correspondant version with BIND. Example: Instead of:
SELECT ?title (?p AS ?fullPrice) (?fullPrice*?discount) AS ?customerPrice)
{ ?x ns:price ?p .
?x dc:title ?title .
?x ns:discount ?discount .
}
Use:
SELECT ?title (?fullPrice*?discount) AS ?customerPrice)
{
?x dc:title ?title .
?x ns:discount ?discount .
BIND (?p AS ?fullPrice)
?x ns:price ?fullPrice .
}
- Hash functions in oracle are supported only if DBMS_CRYPTO is enabled by the DBA.
Hash,timezoneanduiidfunctions are supported based on the database see [[OntopSPARQLFunctions |Supported Sparql Functions]] for more information.- Using Oracle
strBeforeandstrAfterSPARQL functions return null instead of an empty string when no result has been found. IF,COALESCE,EXISTS,NOT EXISTS,IN,NOT IN,STRDT,timezoneandSHA384functions are not supported .
# Mapping
WARNING
Are Bnodes supported in the mapping?
# OWL API
Implementationof most OWLReasoner methods is missing.Symbol @When we pass a literal to the OWL API, if it finds an "@" it will interpret it as a language tag. The OWL API says:
"If the datatype is rdf:PlainLiteral, and the lexical value contains
a language tag then the language tag will be parsed out of the lexical value. For example, "abc@en"^^rdf:PlainLiteral would be parsed into a lexical value of 'abc' and a language tag of 'en'. "
Thus, if one expects such symbols in an object property the best solutions are:
- cast the object to string in the mapping
- replace the @ in the query with @.
# Databases and SQL
Registered Keywords- when you have a column name that is also a registered DBMS keyword, you should enclose that column name in quotes. Supported common keywords are: cast, do, extract, first, following, last, materialized, nulls, partition, range, row, rows, siblings, value, xml.ORDER BYin H2: in presence of an Union, the last version of H2 (1.4.), it orders both subqueries independently of each other giving wrong results. See SPARQL-compliance test offset-1UNOPTIMIZED SQL OPERATORS/FUNCTIONS: MIN/MAX, CASE, WHEN clause, DATE FUNCTIONS, NESTED SELECTS, MATCHES, RIGHT/FULL/SELF/CARTESIAN JOIN, SUBJOIN, ALL, ANY, UNION, INTERSECT, MINUM and EXCEPT: Unoptimized sql operators will be transformed in view and generate a result.UNSUPPORTED SQL OPERATORS: EXISTS, UNIQUE, TOPREGEX OPERATORis not supported by MsSQL and DB2, while the other databases handle it differently
# R2RML mappings
WARNING
Are Bnodes supported in the mapping?
- no support for
inverseExpression - predicate cannot be uritemplate (column reference or template declaration)
- object cannot be uritemplate (column reference or template declaration) when predicate is rdf:type
- no support for
bnodein Ontop - no support for
sqlversion - no support for
graphMaps(hence context graphs) - bnode naming is arbitrary
- constant type objects are returned as simple literal. Constant-valued term maps are not considered as having a term type, and specifying rr:termType on these term maps has no effect. For example we return "2011-01-04T00:00:00.0" instead of "2011-01-04T00:00:00.0"^^xsd:dateTime
The current state of the W3C R2RML compliance tests could be seen [[W3C-R2RML-Compliance| here]]
# Ontop Bootstrapper
WARNING
Are Bnodes supported in the mapping?
- The BNode syntax generated by Ontop bootstrapper cannot be processed by Ontop
- Foreign keys on multiple columns are not supported