With data sources on the Web undergoing a developing trend towards Linked Data, Web APIs, which provide on-the-fly computation of data resources through invocation, need to progress in order to continue playing their roles as Linked Data prosumers when invoked through semantic extensions. Therefore, OmniVoke takes RDF data as input and returns RDF data as response data, thus enabling a seamless integration of Web APIs, as semantic data prosumers, into the linked data space. To carry out concrete invocations, the envisaged scenario is for applications to issue SPARQL queries to derive the data required for invoking a particular Web API. Alternatively appropriate user-interaction interfaces can be provided to allow the user to provide his/her input, which, together with response data, can be collected into shared data space for further manipulations like inspection, re-use etc. In latter case, the user is typically presented with a set of input fields, which need to be completed in order to invoke the service. Semantic annotations or descriptions of the service can be attached here to aid the user. Additional information such as comments can be provided to support the user resolving any potential ambiguities. OmniVoke supports both means of deriving request data.
Validates the request to the OmniVoke, extracts informtation related to the invocation request to the actual API through interprating the API semantic descriptions
Using the lowering script given in semantic desciption, it undertakes tasks of “lowering” RDF input data to the format supported by the actual API
Constructe a valid request for invoking the actual Web API using information given in service description and the "lowered" input
De-capsulate the API response, i.e. extract status code, response data, out of response header, body etc., and decide whether lifting is required for each output, with the help of the service description
Using the lifting script given in semantic desciption, it undertakes tasks of “lifting” the output data in the format prescribed by the actual API to RDF output
Constructe a valid response to the orginal OmniVoke request using information given in service description and the "lifted" output