Contains() bug in FCT


#1

I would like to use the <cond/> filter for the <property> and <property-of> elements in FCT query, but for this input:

<query timeout="15010"><text property="http://www.w3.org/2000/01/rdf-schema#label">Star Wars</text><class iri="http://dbpedia.org/class/yago/Movie106613686"/><property iri="http://purl.org/dc/terms/subject"><cond type="contains">tatooine</cond></property><property iri="http://dbpedia.org/ontology/starring"></property><property iri="http://dbpedia.org/ontology/director"></property><view limit="30" type="properties-in" offset="0"></view></query>

I get the following error:

<error>
    <code>22023</code>
    <message>Error while executing query</message>
    <diagnostics>SR468: contains() can not be called as plain built-in function, it&#39;s a macro handled by SQL compiler</diagnostics>
</error>

I found this solution:

Please replace bif:contains with contains. Basically,
…FILTER(bif:contains(?label, “‘india’”)… becomes
…FILTER(contains(?label, “‘india’”)…

And I see lines like this is facets.sql:

      if ('no' <> neg)
        {
          http (sprintf (' ?s%d bif:contains ''%s'' .', this_s, txs_qr), txt);
        }
      else
        {
          http (sprintf (' filter (! bif:contains (?s%d, ''"%s"'')) .', this_s, val), txt);
        }
    }
}

Is it possible to fix this and deploy to a server so that we can begin testing the filter functionality of Record list and CTRL list in the VIOS PoC?