MetadataService.
The provenance RDF graph corresponding to the enactment of a workflow is stored as a named graph using the NG4J (Named Graphs for Jena) API. This allows to recover and refer to the entire graphs corresponding to workflow enactments without having to resort to the expensive RDF reification mechanism.
One of the benefits of recording provenance is that one can go back and query the repository for information about previous experiments. For instance, one can ask:
Check if a given process has already been run against a given input and, if that is the case, give me the output it generated.
ProvenanceGenerator, which implements
WorkflowEventListener. At the beginning of a
workflow enactment the generator initialises a Jena
ProvenanceOntology object which is used during
the enactment to type the provenance data which is generated
by every WorkflowInstanceEvent sent by Taverna.
At the end of the workflow the whole graph corresponding to
the instance data in ProvenanceOntology is
passed to MetadataService that stores
it in database.
Optionally, a DataService can be activated too
which stores all input and output data, including the intermediate ones.
The metadata repository can subsequently be queried either via canned
queries such as DataForProcess and
FailedProcesses or generic queries
expressed in TriQL
query language for named graphs.
TAVERNA_HOME (remember you need Taverna 1.4 or later) and start Taverna.
TAVERNA_HOME/conf/provenance.properties.
mygrid.dataservice.hsql.url and mygrid.metadataservice.hsql.url respectively.
mygrid.kave.type from jena/hypersonic to jena/mysql to use the MySQL metadata store. Make sure that you configure the corresponding properties using your connection values.
mygrid.dataservice.type from hypersonic to mysql to use MySQL as database for the data.
##====================================================================
# STORES TYPES #
# Metadata Store
#--------------------------------------------------------------------
mygrid.kave.type = jena/hypersonic
# mygrid.kave.type = jena/mysql
#--------------------------------------------------------------------
# Data Store
#--------------------------------------------------------------------
mygrid.dataservice.type = hypersonic
# mygrid.dataservice.type = mysql
#--------------------------------------------------------------------
#====================================================================
# METADATA SERVICE CONNECTIONS #
# Jena/Hypersonic
#--------------------------------------------------------------------
# By defauly it stores data in user.home/provenance/metadata/hsql/tables
# Uncomment and edit the following if you want a different location:
# mygrid.metadataservice.hsql.url = jdbc:hsqldb:file:your/path/to/provenance/metadata/hsql/tables
mygrid.metadataservice.hsql.user = sa
mygrid.metadataservice.hsql.password =
#--------------------------------------------------------------------
# Jena/MySQL (requires access to a MySQL DB)
#--------------------------------------------------------------------
mygrid.metadataservice.mysql.url = jdbc:mysql://rpc103.cs.man.ac.uk/metadata_sandbox
mygrid.metadataservice.mysql.user = anonymous
mygrid.metadataservice.mysql.password = anonymous
#--------------------------------------------------------------------
#====================================================================
# DATA SERVICE CONNECTIONS #
# Hypersonic
#--------------------------------------------------------------------
# By defauly it stores data in user.home/provenance/data/hsql/tables
# Uncomment and edit the following if you want a different location:
# mygrid.dataservice.hsql.url = jdbc:hsqldb:file:your/path/to/provenance/data/hsql/tables
mygrid.dataservice.hsql.user = sa
mygrid.dataservice.hsql.password =
#--------------------------------------------------------------------
# MySQL (requires access to a MySQL DB)
#--------------------------------------------------------------------
mygrid.dataservice.mysql.url = jdbc:mysql://rpc103.cs.man.ac.uk/data_sandbox
mygrid.dataservice.mysql.user = anonymous
mygrid.dataservice.mysql.password = anonymous
#--------------------------------------------------------------------
# Derby
#--------------------------------------------------------------------
mygrid.dataservice.derby.url = jdbc:derby:provenance/data/derby/tables;create=true
mygrid.dataservice.derby.user =
mygrid.dataservice.derby.password =
#--------------------------------------------------------------------
#====================================================================
# USER CONTEXT CONFIGURATION #
# used only if not already set by other means
#--------------------------------------------------------------------
mygrid.usercontext.experimenter = http://www.someplace/someuser
mygrid.usercontext.organisation = http://www.someplace/somelab
#--------------------------------------------------------------------
provenance.properties file in the conf folder in Taverna. Detailed instructions at: ProvenanceBrowser#Troubleshooting
provenance folder which is created in the folder .taverna in your home directory. (In Windows XP this is C:\Documents and Settings\your user name\.taverna\provenance, while in Mac OS X it is /Users/your user name/.taverna ). Detailed instructions at: ProvenanceBrowser#Troubleshooting
ProvenanceGenerator listener is hard coded in the content of the file /src/META-INF/services/org.embl.ebi.escience.scufl.enactor.WorkflowEventListener. Refactoring that name will have to be reflected in that file.
| I | Attachment | Action | Size | Date | Who | Comment |
|---|---|---|---|---|---|---|
| | architecture-1.1.dia | manage | 3.6 K | 24 Jul 2006 - 09:41 | DanieleTuri |