In this work we address the problem of using any third-party custom sparql function by only knowing its URI, allowing the computa- tion to be executed on the remote endpoint that defines and implements such function. We present a standard-compliant solution that does not require changes to the current syntax or semantics of the language, based on the use of a call function. In contrast to the plain \Extensible Value Testing" described in the W3C Recommendations for the sparql Query Language, our approach is interoperable, that is, not dependent on the specific implementation of the endpoint being used for the query, relying instead on the implementation of the endpoint that declares and makes the function available, therefore reducing interoperability issues to one single case for which we provide an open source implementation. Further, the proposed solution for using custom functions within sparql queries is quite expressive, allowing for true higher-order functions, where func- tions can be assigned to variables and used as both inputs and outputs, enabling a generation of Web APIs for sparql that we call Web of Func- tions. The paper also shows different approaches on how our proposal can be applied to existing endpoints, including a SPARQL-to-SPARQL compiler that makes the use of call unnecessary, by exploiting non- normative sections in the Federated Query W3C Recommendations that are currently implemented on some popular sparql engines. We finally evaluate the effectiveness of our proposal reporting our experiments on two popular engines.
|Titolo:||Introducing the web of functions: Interoperable higher-order functions in pure SPARQL|
|Data di pubblicazione:||2015|
|Tipologia:||4.1 Contributo in Atti di convegno|
File in questo prodotto:
|sebd15 - Web_of_Functions___Interoperable_Higher_order_functions.pdf||versione post-print||Administrator Richiedi una copia|