Provenance Query Demo

Introduction

This interface allows you to perform provenance queries over a provenance store already containing process documentation. The form is presented below, followed by example queries you can try. The example scenario that the process documentation describes in detailed at the bottom of the page. See the functional specification of the provenance query interface for a description of the query being submitted and the results being returned.

Query Entry Form

Enter XPaths for the query data handle (entity to find the provenance of, expressed as a search of the p-structure) and relationship target filter (scope of query, expressed as a search over a relationship target). For a scope-less query, use / as the relationship target filter.

XPaths can be broken into several lines for ease of editing. The easiest way to write a query is to copy and paste XPath fragments from the selection below the form. For example, to ask for the provenance of the data stored at file1, you can express the query data handle by pasting together the following parts:

Query Data Handle XPath

Relationship Target Filter XPath

Example Query Segments

Instants

Instant of message being received

Instant of message being received by the GUI actor

Instant of message being received by the Store actor

Searches in an Interaction Record

Search for message contents (interaction p-assertions)

Search for actor states (actor state p-assertions)

Checks on Interaction P-Assertions

Is request to store data in file1?

Is request to divide?

Contains tracer 1 (introduced by GUI actor in first workflow run)?

Contains tracer 2 (introduced by GUI actor in second workflow run)?

Does not contain sub-tracer 1 (introduced by Averager actor in first workflow run)?

Does not contain sub-tracer 2 (introduced by Averager actor in second workflow run)?

Searches in Interaction P-Assertions

Data Referred to in storage request

Result data returned in response message from Averager / Divider

Credentials in message (passed in several messages)

Checks on relationship targets

Is not "after" temporal relation

Is an OWL sub-class of the "wasCausedBy" relation

Description of Example Scenario

We define a simple workflow which is run and process documentation generated. It is contrived to be as simple as possible to illustrate the range of forms that provenance queries can take.

In the workflow, a GUI actor calls an Averager service with two values (7 and 5). Averager sums the values and calls Divider with 12 as the divisor and 2 as the dividend. Divider sends the 6 answer back to Averager, which returns the answer back to the GUI. The GUI then sends the value to its file store, Store, along with the file location, file1, at which to store it. With the request message to the Averager, the GUI also sends the user's credentials (C), which are then copied in all messages between the services.

Each actor in the workflow makes interaction p-assertions about the interactions it sends and receives. The interactions are numbered in the figure above, so that they can easily be referred to below. The actors also record the following relationship p-assertions.

The workflow has been run twice, as shown below. In each workflow run, the GUI adds a tracer to the request it makes to Averager, and Averager adds a tracer to the request it makes to Divider. The GUI saves the results in different files for the different workflows (file1 and file2). Finally, the Averager records one more relationship p-assertion: that the second response it sends to the GUI happens after the first response being sent.