Using FCT as a SPARQL proxy


VIOS Network PoC now allows user to add data spaces to their session. Currently, only /fct endpoints are supported. I would like to allow use of arbitrary SPARQL endpoints. The naive approach is to send the FCT query to a Virtuoso instance, and have it return the SPARQL version of the query, then send that query to the target SPARQL endpoint. Since the SPARQL returned from the FCT instance is non-compliant, I would like to know if it is possible for FCT to generate a compliant version of SPARQL, perhaps a flag can be added to the element to specify this preference. If this is not possible, then can you enumerate the ways FCT SPARQL deviates from the standard? This will allow us to write transform logic.

Lastly, is it possible to have the FCT service handle the federation on behalf of the client, so that we can fit the response into our existing FCT response pipeline, rather than create a new pipeline for SPARQL endpoint results?


Also, is it possible to add an endpoint attribute to the and element to allow specification of a SPARQL endpoint or a GRAPH IRI for SPARQL FED? The descendants of the element bearing the endpoint attribute would be treated as one FROM/FROM NAMED/SERVICE block. For instance:

<query service="">
    <text property="">Luke</text>
    <class iri="[b:Bookmark]"/>
    <property iri="[b:creator]">
        <value datatype="uri"></value>
    <property-of iri="[b:recalls]">
        <view limit="30" type="list-count" offset="0"></view>
        <property service="" iri="[dcterms:subject]">
            <value datatype="uri"></value>

Which allows user to search their Solid Pod for browser history items that are tagged as Star Wars Books in Wikipedia. The PoC will allow user to switch data spaces mid-query to achieve this.