Skip to content

Regex SPARQL filter

Dag Hovland edited this page Feb 4, 2014 · 13 revisions

Ontop supports the regex SPARQL filter by translating into similar filter expressions in sql. As regular expression filtering is not part of standard SQL, the use of the regex filter in SPARQL expressions therefore depends on the underlying database. (Note that the LIKE filter, which is standard in SQL, only supports a limited form of pattern mathing, where % and _ are wildcards.). Most notably, for DB2 and MS SQLServer we have not found a proper translation, and the regex filter will not work, except for matching single words.

  • H2: Case-insensitivity (flag i) is translated into changing the column value and regular expression into lowercase. Multiline mode is not supported

  • Mysql: Case-insensitive matching is probably more efficient than the SPARQL default case-sensitive search. Multiline mode is not supported.

  • Postgres: Multiline mode is not supported.

  • Oracle: Multiline, dotall, and case-insensitive search supported thorugh the REGEX_LIKE operator.

  • DB2 and SqlServer: No built-in support for regular expression filtering in the database engine. The regex SPARQL filter is translated to "LIKE", which means the filter only works properly for single words.

Clone this wiki locally