<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Constraint-Guided Workflow Composition Based on the EDAM Ontology</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Anna-Lena</forename><surname>Lamprecht</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Chair for Programming Systems</orgName>
								<orgName type="institution">Technical University Dortmund</orgName>
								<address>
									<postCode>D-44227</postCode>
									<settlement>Dortmund</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Stefan</forename><surname>Naujokat</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Chair for Programming Systems</orgName>
								<orgName type="institution">Technical University Dortmund</orgName>
								<address>
									<postCode>D-44227</postCode>
									<settlement>Dortmund</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Bernhard</forename><surname>Steffen</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Chair for Programming Systems</orgName>
								<orgName type="institution">Technical University Dortmund</orgName>
								<address>
									<postCode>D-44227</postCode>
									<settlement>Dortmund</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Tiziana</forename><surname>Margaria</surname></persName>
							<email>tiziana.margaria@cs.uni-potsdam.de</email>
							<affiliation key="aff1">
								<orgName type="department">Chair for Service and Software Engineering</orgName>
								<orgName type="institution">University Potsdam</orgName>
								<address>
									<postCode>D-14482</postCode>
									<settlement>Potsdam</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Constraint-Guided Workflow Composition Based on the EDAM Ontology</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">34729E56FBB60B01C6F179A6041F258B</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T12:21+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Methods for the automatic composition of services into executable workflows need detailed knowledge about the application domain, in particular about the available services and their behavior in terms of input/output data descriptions. In this paper we discuss how the EMBRACE data and methods ontology (EDAM) can be used as background knowledge for the composition of bioinformatics workflows. We show by means of a small example domain that the EDAM knowledge facilitates finding possible workflows, but that additional knowledge is required to guide the search towards actually adequate solutions. We illustrate how the ability to flexibly formulate domain-specific and problem-specific constraints supports the workflow development process.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The challenge of automatic workflow composition, in particular the automatic composition of bioinformatics web services into executable workflows, has been addressed by several projects in the past years (see, e.g., <ref type="bibr" target="#b0">[1]</ref><ref type="bibr" target="#b1">[2]</ref><ref type="bibr" target="#b2">[3]</ref><ref type="bibr" target="#b3">[4]</ref><ref type="bibr" target="#b4">[5]</ref>). The importance of domain-specific knowledge about services and data types has been recognized long ago (see, e.g., <ref type="bibr" target="#b5">[6]</ref>). However, most automatic workflow composition systems have so far relied on self-defined, special-purpose domain models, rather than using systematic information from a central instance (simply because no such instance existed). Some of the systems named above do in fact use knowledge from the BioMoby <ref type="bibr" target="#b6">[7]</ref> ontologies (which apply the LSID <ref type="bibr" target="#b7">[8]</ref> naming scheme), but these have mainly been derived from the (often incomplete or imprecise) meta-information that service providers submit during service registration at MobyCentral, and not systematically designed for depicting the structure of the whole bioinformatics domain. Quite recently the EDAM (EMBRACE Data And Methods) ontology <ref type="bibr" target="#b8">[9]</ref> has been initiated with the aim of building a unified vocabulary about bioinformatics services and data, suitable for bridging the gap between mere service registries and semantically aware service composition methodologies.</p><p>In this paper we show how the domain knowledge that EDAM provides can be used as basis for the automation of service composition. After an introduction to the principles of automatic workflow composition and to the software framework that we used for this study (Section 2) we describe the EDAM ontology (Section 3), especially focussing on the parts that are relevant for automatic workflow composition. In Section 4 (Results and Discussion) we present an example domain and workflow composition problem, showing that the EDAM knowledge facilitates finding possible workflows, but that additional knowledge is required to limit the search to the actually desired or adequate solutions. We use the PROPHETS synthesis framework, which facilitates a very flexible way of expressing additional knowledge: it can either be specified during domain modeling (especially suitable for domain-specific constraints) or during the actual synthesis (especially suitable for problem-specific constraints). In this way, users can flexibly interact with the workflow development framework, collecting possible solutions and continuously refining the constraints according to any arising requirements. The paper ends with a conclusion in Section 5.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Automatic Workflow Composition</head><p>The automatic composition of (small) software units into (large) runnable pieces of software has been subject to research for several years (see, e.g. <ref type="bibr" target="#b9">[10]</ref><ref type="bibr" target="#b10">[11]</ref><ref type="bibr" target="#b11">[12]</ref><ref type="bibr" target="#b12">[13]</ref><ref type="bibr" target="#b13">[14]</ref><ref type="bibr" target="#b14">[15]</ref><ref type="bibr" target="#b15">[16]</ref><ref type="bibr" target="#b16">[17]</ref><ref type="bibr" target="#b17">[18]</ref>). Contemporary terminology, for instance automatic workflow composition or automatic service composition, reflects the current trend towards service orientation and (business) process modeling. Nevertheless, the principles of the composition methodologies on which they are based remain the same.</p><p>The commonly known methods can roughly be distinguished into synthesisbased and planning-based approaches: Synthesis methods usually are rather behavior-oriented (e.g., the temporal-logic-based methods of <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b15">16]</ref>), whereas classical planning algorithms are more focused on the availability of resources and definition of a world state with predicates, which can be modified by the actions (cf. <ref type="bibr">[19, chapter 10]</ref>). In addition, several hybrid approaches, such as LTL-enhanced planning <ref type="bibr" target="#b19">[20,</ref><ref type="bibr" target="#b16">17]</ref>, exist that incorporate aspects of the respective other method. Despite all the differences with regard to the above named strategies and algorithms, all approaches share an essential characteristic: they search for paths in some kind of "universe" that is given by the information about the services and in particular their input/output behavior.</p><p>Accordingly, the quality of the solutions crucially depends on the quality of the available information about the services of the domain (more than on the actual search strategy): Merely syntactic information (as provided by most programming language APIs or standard web service interfaces) is not sufficient. Proper semantic descriptions of services and data types are required to obtain meaningful results. For instance, assume a web service that returns a job ID, and another service that consumes a nucleotide sequence. From a programming language point of view, both would be classified as character sequences (strings) and would thus be assumed to match. While this is syntactically correct, sub-mitting a job ID to a sequence analysis service would of course not lead to the desired results, so a more precise -semantic -interface description is required.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Automatic Workflow Composition in Bio-jETI</head><p>For the work presented in this paper, we used the PROPHETS extension of the Bio-jETI framework <ref type="bibr" target="#b20">[21]</ref>. PROPHETS seamlessly integrates automatic service composition methodology into Bio-jETI, in particular by supporting visualized/graphical semantic domain modeling, loose specification within the workflow model, non-formal specification of constraints using natural language templates, and automatic generation of model checking formulas (to check global properties of workflows). For a detailed introduction into the framework and the underlying ideas the reader is referred to <ref type="bibr" target="#b21">[22,</ref><ref type="bibr" target="#b22">23]</ref>. In a nutshell, working with PROPHETS incorporates two phases:</p><p>1. During domain modeling meta-information about the available services is collected and provided in appropriate form, and semantic classifications of the services and their input and output types are defined. The service and type taxonomies are stored in OWL format, where the OWL classes represent abstract classifications, and the actual types and services are then represented as individuals that are related to one or more of those classifications by instance-of relations. 2. In the actual workflow design phase this domain is used to (automatically) create the workflow models. Central is the idea of loose specification: branches in the model can be marked as loosely specified, which are then automatically replaced by adequate composite services.</p><p>The algorithm <ref type="bibr" target="#b23">[24]</ref> that is then applied to complete a loosely specified workflow to be fully executable takes two orthogonal aspects into account: On the one hand, the workflow must be type-consistent to be executable, on the other hand, the constraints specified by the workflow designer must be met:</p><p>-The configuration universe constitutes the algorithm's basic search space.</p><p>It contains all valid execution sequences and is implicitly defined by the domain model. As this configuration universe is usually very large, it is not explicitly generated from the domain definition, but on the fly during the synthesis process. -The specification formula is the second aspect. It describes all sequences of services that meet the individual workflow specification, but without taking care of actual executability concerns. As the explicit representation of all these sequences would be extremely large, the formula is not explicitly built, but given as a declarative formula in SLTL (Semantic Linear Time Logic) <ref type="bibr" target="#b23">[24]</ref>, a variant of the commonly known propositional linear-time logic (PLTL). The formula is a conjunction of all available constraints, comprising:</p><p>• technical constraints (configurations of the synthesis algorithm),</p><p>• domain-specific constraints (globally specified by the domain modeler), and</p><p>• problem-specific constraints (derived from the loosely specified branch or specified by the workflow designer).</p><p>To start the search for solutions, the synthesis algorithm requires an initial state (i.e. a set of start types). They are determined automatically according to the output specification of the service at the beginning of the loose specification. Based on this the synthesis algorithm performs a parallel evaluation of the configuration universe and the specification formula to search for paths that are consistent with both the configuration universe and the SLTL formula. Each of those paths is a valid concretization of the loosely specified branch.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">EDAM as Background Knowledge</head><p>The EDAM (EMBRACE Data And Methods) ontology<ref type="foot" target="#foot_0">3</ref> has been developed in the scope of the EMBRACE (European Model for Bioinformatics Research and Community Education) project<ref type="foot" target="#foot_1">4</ref> as an ontology for describing life science web services <ref type="bibr" target="#b8">[9]</ref>. In contrast to many known ontologies like the Gene Ontology <ref type="bibr" target="#b24">[25]</ref> or the majority of the Open Biomedical Ontologies <ref type="bibr" target="#b25">[26]</ref>, who focus on the description of biological content, it provides a vocabulary of terms and relations that can be used for annotating services with useful (semantic) metadata, in particular regarding their behavior and their inputs and outputs. Two important applications of EDAM have already been identified in <ref type="bibr" target="#b8">[9]</ref>: the use of the defined terms for semantic annotations of web services (e.g. via SAWSDL extension attributes <ref type="bibr" target="#b26">[27]</ref>) in order to facilitate service discovery and integration, and the more detailed description of the involved data types in order to improve the data exchange between services.</p><p>Strictly speaking, EDAM is not a single, large ontology, but consists of six separate (sub-) ontologies:</p><p>1. Biological entity: physically existing (parts of) things, such as SNPs, alleles, or protein domains.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2.</head><p>Topic: fields of bioinformatics study, such as nucleic acid sequence analysis, model organisms, or visualization and rendering.</p><p>3. Operation: particular functions of tools or services (e.g., web service operations), such as annotation, codon usage analysis, or sequence database search by motif or pattern.</p><p>4. Data resource: various kinds of data resources, such as Biological pathways data resource, Literature data resource, or Ontology data resource.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>5.</head><p>Data: semantic descriptions of data entities that are commonly used in bioinformatics, such as BioCyc enzyme ID, phylogenetic consensus tree, or sequence alignment.</p><p>6. Data format: references to (syntactic) data format specifications, such as Clustal sequence format, PubMed Central article format, or HMMER hidden Markov model format.</p><p>Importantly, EDAM is not a catalogue of concrete services, data, resources etc., but a provider of terms for classification of such entities -exactly what is meant by "background knowledge". Thus, using EDAM is simply taking the (relevant parts of the) ontology and sorting the application-specific resources into this skeletal domain structure. In the following we use the Operation (sub-) ontology as vocabulary for service classifications, and the Data (sub-) ontology for data type classifications. Employing also the Data format part in order to take into account the more technical interface specifications is subject of ongoing work. (For this study we used EDAM version beta08.)</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Results and Discussion</head><p>Using EDAM as background knowledge in the domain model for synthesis with PROPHETS, the domain setup involves three major steps:</p><p>1. Converting EDAM from OBO (Open Biomedical Ontologies) format into OWL format (using the Protégé OWL API). 2. Generating the service taxonomy from the Operation term and (transitively) all its subclasses, and the type taxonomy from the Data term and (transitively) all its subclasses. 3. Sorting the available services and their input/output types into the service and type taxonomy, respectively.</p><p>Steps 1 and 2 can be executed fully automatically.</p><p>Step 3 can be automated if EDAM annotations are available for the types and services, as it is the case, for instance, for EMBOSS <ref type="bibr" target="#b27">[28]</ref>, which provides EDAM relations in its Ajax Command Definition (ACD) files. In the following we will use a smaller example domain that comprises a set of bioinformatics tools for which the taxonomic classifications have been defined manually. It uses only a small part of EDAM, but it is already large enough to illustrate our results. Table <ref type="table" target="#tab_0">1</ref> lists the services in the example domain, along with their input and output data types. Concrete service and data type names are given in normal font, while (abstract) services and types in terms of the EDAM ontology are given in italics. Note that the service interface descriptions in this domain are quite simple: each one has at most one input and one output, whereby only user data (i.e. input and output files) are considered, while other parameters (primarily used for configurations that are not actually inputs) are not taken into account.</p><p>Figures <ref type="figure" target="#fig_1">1 and 2</ref> show the service and type taxonomies (screenshots from PROPHETS' built-in ontology editor). The classes (the blue squares) correspond to the Operations and Data (sub-) ontologies of EDAM, respectively, but have been cut down to the classes that are relevant for the services and data that are used in the domain model. The purple rhombs represent the concrete services and types of the domain that have been added to the domain model as instances of the respective EDAM classes. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Viewer</head><p>In: Data Visualisation and rendering</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>WUBlastParser</head><p>In: Sequence database hits Out: Sequence identifier   Figure <ref type="figure" target="#fig_2">3</ref> shows the simple loosely specified workflow that we used as basis for experimentation with the described domain model, along with five possible concretizations. The workflow begins with reading a DNA sequence file (ReadDNASequence) and ends with displaying a result (Viewer). These components are connected by a loosely specified branch (colored in red). Accordingly, the basic synthesis problem is to find a workflow that takes a ReadDNASequence's output (a DNA sequence) as input, and produces Viewer's input (some data) as output. Note that this setup is in particular appropriate for experimentation with the domain, exploring what workflows are generally possible with certain input data. In many realistic applications, the target of the loosely specified branch is a more specific component, for instance an alignment viewer, so that the synthesis problem as such becomes more specific, too.</p><p>The five concretizations shown in Figure <ref type="figure" target="#fig_2">3</ref> are of course not the only possible ones. As we will detail in the following, thousands if not millions of solutions are easily possible with the described domain model, but they are not necessarily desired or adequate. We will show in the following how playing with configurations and constraints may help mastering this enormous potential by excluding inadequate or bundling equivalent solutions.</p><p>In a first experiment, we executed the synthesis with no further constraints. That is, only the input/output specification defined by the loosely specified branch was considered and a "naive" search was performed on the synthesis universe. When we used the basic configuration of the synthesis algorithm, we obtained 264,118 possible solutions for the synthesis problem already for a search depth of 5. Additionally using a solution filtering mechanism that removes service sequences that are mere permutations of others decreased the number of solutions to 5,325. As the example domain is characterized by consisting of services that have at most one input and one output data type, it turned out to be most efficient, however, to use a configuration in which the synthesis also mimics a "pipelining" behavior. This means that output data is only transferred to the direct successor of a service in the workflow and in particular not available for any other subsequent services. This configuration led to 2269 solutions in the unconstrained case.</p><p>In the following we will develop a small set of constraints that is already sufficient to drastically reduce the solution space further by excluding clearly inadequate solutions. The constraints are based on a few general observations about the solutions obtained so far:</p><p>1. Workflows that contain services that make no contribution to solving the synthesis problem. Such services are, for example, ReadFile (requiring no input but producing arbitrary new data that is planted into the workflow and can distract from the actual synthesis problem) or WriteFile (consuming data but without producing a new analysis result). 2. Workflows that contain services that make no progress within the workflow. Particular examples are redundant service calls, such as a the multiple invocation of Gblocks on a multiple sequence alignment where only the first call does make sense. 3. Workflows that contain "dead" functionality in the sense that certain service outputs are not adequately used. For instance, a BLAST result is usually not used as such. Rather, the sequence identifiers of the BLAST hits are of interest in order to retrieve the corresponding entries from a database. Thus, to make sense, workflows that call BLAST should also contain a call to a BLAST parser that gets the IDs from the BLAST result. 4. Workflows that contain several services that are useful when seen individually or in parts of the solution, but the overall workflow is not the envisaged analysis. For example, a solution where an alignment service (such as ClustalW) is called with the input data is certainly a possible and useful workflow, but if the workflow developers' intention was actually to do the alignment with homologous sequences of the input sequences, or to obtain a phylogenetic tree from the input, this solution is not adequate.</p><p>In order to address the first observation ("services that make no contribution") we defined a constraint that excludes all corresponding services of our example domain (i.e. ReadFile, ReadDNASequence, WriteFile, and Viewer) from the synthesis. This can easily be realized via the SLTL formula G(¬Strue) which prohibits any occurrence of S in a solution. Since the exclusion of particular services is a quite common constraint, it is provided as a template in the PROPHETS Synthesis Wizard, which only requires the user to list all 'unwanted' services. Applying this template to all four services named above yields a constraint that in itself reduced the number of solutions from 2,269 to 55.</p><p>Adding an SLTL constraint for the second observation ("services that make no progress") in a similar fashion, specifying that Gblocks should not never be called twice (or more), decreases the number of solutions 49. This number can be further reduced by an SLTL constraint exploiting the third observation ("dead functionality"): requiring that a call of WUBlast should be followed by a call to the corresponding parser eliminates another 18 solutions.</p><p>In order to address the last observation ("workflow is not the envisaged analysis"), we provided the synthesis with constraints that express general ideas about the desired workflow. As one example, a frequently performed analysis for molecular sequences is to search for similar sequences in a database and compare the new sequences to the known ones by means of a sequence alignment. Accordingly, we formulated a constraint that enforces a sequence database search by sequence and after that a multiple sequence alignment as part of the solution. This decreased the number of solutions further down to 24. The remaining solutions are similar to the two workflows at the bottom of Figure <ref type="figure" target="#fig_2">3</ref>: they start with WUBlast and the WUBlastParser, followed by either DBFetch FetchBatch or DBFetch FetchData, after which one of the alignment algorithms is called. Half of the solutions appended Gblocks as final service.</p><p>Another analysis that is often applied to molecular sequences is the construction of a phylogenetic tree, which represents the evolutionary relationship between the sequences. As an alternative to the above constraint for the fourth observation, we formulated a constraint that enforces the use of a phylogenetic tree construction service. The only remaining result when this constraint is applied together with constraints 1, 2 and 3 is a one-step solution consisting of the PhyML DNA service, which computes a phylogenetic tree from a set of DNA sequences.</p><p>Table <ref type="table" target="#tab_1">2</ref> summarizes our findings, containing also all other combinations of the constraints developed above: The first constraint (excluding services that make no contribution towards solving the synthesis problem) has the strongest impact on the number of solutions, whereas the second constraint leads only to an exclusion of around 80 solutions. Notably, already constraints 1 and 4 together decrease the number of solutions to 24, i.e. to the set of solutions that was also obtained with the first four constraints together. Likewise, constraints 1 and 4' together already lead to the single-step solution that was initially obtained by a combination of four constraints.</p><p>As the table furthermore shows, some combinations of constraints, in fact most combinations involving 4 and 4', leave no solutions at all. This may indicate that the constraints are inconsistent (i.e. do not have any solution), or, as in this case, that they require solutions of length greater than the current search depth of 5. In the latter case, increasing the search depth may be the solution of choice, but there are two options which apply in both cases:</p><p>loosening the constraints, in order to resolve the inconsistencies or to allow shorter solutions, and revise/extend the domain model in order to increase the solution space.</p><p>Whereas playing with the first option may well be in the competence of the workflow designer, the second option requires domain modeling expertise.</p><p>The second column of the table gives the number of nodes that are visited by the synthesis algorithm during its iterative deepening depth-first search. The numbers reflect that the synthesis search space is not only constituted by the (static) service descriptions, but also by the additionally provided logical constraints (cf. Section 2). In fact, the search space may grow with the product of the sizes of the formula and the constraints. As the table shows, in our case constraints can both decrease and increase the search space: In the unconstrained case, 34,026 nodes are visited, the least number of nodes (1,103) is visited when constraints 1 and 2 are used, and with constraints 2, 3, 4, and 4' a total of 1,764,843 nodes are visited until a search depth of 5.</p><p>Note that not all constraints we defined here are useful in every setting. For instance, services that generate data "from scratch" may well be useful when there are other services involved that need this additional input. Thus, in cases where producing entirely new data is considered a useful or even necessary feature, the first constraint needs to be relaxed. Thus changing the considered problem/purpose may in addition to adapting the purpose-specific constraints (here 4 and 4') also require to reconsider all the other constraint classes.</p><p>Methods for the automatic composition of services into executable workflows need detailed knowledge about the application domain. In this paper we discussed how the EMBRACE data and methods ontology (EDAM) can be used as background knowledge for the composition of bioinformatics workflows. We found that the EDAM knowledge facilitates finding possible workflows, but that additional knowledge is required to limit the search to the actually desired/adequate solutions:</p><p>-EDAM provides a controlled vocabulary for data and methods in the bioinformatics domain, whereby it covers in particular the service and data type description terminology that is needed for the automatic composition of services into workflows. Given that the services in the domain and their input/output types are properly annotated in terms of EDAM, this knowledge ensures that the synthesis algorithms find adequate workflows. -However, finding the actually desired workflows requires more knowledge. In this paper we provided simple examples of additional constraints, such as exclusion of particular services, dependencies between services, and general patterns for a desired solution.</p><p>Larger service collections like EMBOSS <ref type="bibr" target="#b27">[28]</ref> or the BioCatalogue <ref type="bibr" target="#b28">[29]</ref>, which provide hundreds or even thousands of services, are not manageable without systematic discovery or service composition techniques. When dealing with small domains, human experts may be unbeatable in composing tailored workflows, but firstly not every human is an expert in bioinformatics services and data types, and secondly also experts cannot always keep track of all changes in large domain libraries. Thus both experts and average users may profit from tools that automatically exploit arising domain-specific and problem-specific knowledge beyond the usual "static" domain model (i.e. service interface descriptions).</p><p>The PROPHETS synthesis framework enables a very flexible way of expressing additional knowledge: it can either be specified during domain modeling (especially suitable for domain-specific constraints) or during the actual synthesis (especially suitable for problem-specific constraints). Thus, the expression of (additional) domain knowledge is, in particular, cleanly separated from the implementation of the synthesis algorithm. This is in contrast to other approaches to automatic composition of bioinformatics services that we are aware of (such as <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b4">5]</ref>), which rely on the knowledge that is provided by the service and data type descriptions and ontological classifications, and where all additional domain knowledge (if any) is hidden in specifically designed composition algorithms.</p><p>Currently we are exploring the bioinformatics domain further in order to identify general domain-specific constraints, and problem-specific constraints especially in the shape of often recurring workflow patterns. Such a library of constraints that can be added and removed dynamically during the workflow development process will enable users to work and experiment with the domain in a very flexible manner by tailoring their solution space on demand. This kind of experimentation provides users with an easy entry into this complex landscape of tools and technologies, and later with means for scalability: experimenting with options and constraints it is possible to tailor the setting in a way that at the same time improves the adequacy of the specification as well as the search depths for solutions of the synthesis procedure. We plan to support this approach by extending the domain knowledge with domain-specific search heuristics enhancing the synthesis algorithms.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Service taxonomy.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Type taxonomy.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Loosely specified workflow and some possible concretizations.</figDesc><graphic coords="9,136.62,157.77,324.92,250.29" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Domain model: service descriptions.</figDesc><table><row><cell>Service</cell><cell>Behavior</cell></row><row><cell>ClustalW</cell><cell>In: Sequence</cell></row><row><cell>Global multiple sequence alignment</cell><cell>Out: Multiple sequence alignment</cell></row><row><cell>ClustalW2</cell><cell>In: Sequence</cell></row><row><cell>Global multiple sequence alignment</cell><cell>Out: Multiple sequence alignment</cell></row><row><cell>DBFetch FetchBatch</cell><cell>In: Sequence identifier</cell></row><row><cell>Database search and retrieval</cell><cell>Out: Sequence</cell></row><row><cell>DBFetch FetchData</cell><cell>In: Sequence identifier</cell></row><row><cell>Database search and retrieval</cell><cell>Out: Sequence</cell></row><row><cell>Gblocks</cell><cell>In: Multiple sequence alignment</cell></row><row><cell cols="2">Sequence alignment conservation analysis Out: Multiple sequence alignment</cell></row><row><cell>KAlign</cell><cell>In: Sequence</cell></row><row><cell>Global multiple sequence alignment</cell><cell>Out: Multiple sequence alignment</cell></row><row><cell>Mafft</cell><cell>In: Sequence</cell></row><row><cell>Global multiple sequence alignment</cell><cell>Out: Multiple sequence alignment</cell></row><row><cell>Muscle</cell><cell>In: Sequence</cell></row><row><cell>Global multiple sequence alignment</cell><cell>Out: Multiple sequence alignment</cell></row><row><cell>PhyML AminoAcid</cell><cell>In: Protein Sequence</cell></row><row><cell>Phylogenetic tree construction</cell><cell>Out: Phylogenetic tree</cell></row><row><cell>from molecular sequences</cell><cell></cell></row><row><cell>PhyML DNA</cell><cell>In: DNA sequence</cell></row><row><cell>Phylogenetic tree construction</cell><cell>Out: Phylogenetic tree</cell></row><row><cell>from molecular sequences</cell><cell></cell></row><row><cell>poptree NJ</cell><cell>In: Sequence composition</cell></row><row><cell>Phylogenetic tree construction</cell><cell>Out: poptree outfile</cell></row><row><cell>(minimum distance methods)</cell><cell></cell></row><row><cell>poptree UPGMA</cell><cell>In: Sequence composition</cell></row><row><cell>Phylogenetic tree construction</cell><cell>Out: poptree outfile</cell></row><row><cell>(minimum distance methods)</cell><cell></cell></row><row><cell>postree</cell><cell>In: poptree outfile</cell></row><row><cell>Phylogenetic tree drawing</cell><cell>Out: Phylogenetic tree image</cell></row><row><cell>predator</cell><cell>In: Protein sequence</cell></row><row><cell>Protein secondary structure prediction</cell><cell>Out: Protein secondary structure</cell></row><row><cell>ps2pdf</cell><cell>In: Image</cell></row><row><cell></cell><cell>Out: Image</cell></row><row><cell>ReadFile</cell><cell>Out: Data</cell></row><row><cell>File loading</cell><cell></cell></row><row><cell>ReadDNASequence</cell><cell>Out: DNA sequence</cell></row><row><cell>File loading</cell><cell></cell></row><row><cell>TCoffee</cell><cell>In: Sequence</cell></row><row><cell>Global multiple sequence alignment</cell><cell>Out: Multiple sequence alignment</cell></row><row><cell>WriteFile</cell><cell>In: Data</cell></row><row><cell>WUBlast</cell><cell>In: Sequence</cell></row><row><cell>Sequence database search by sequence</cell><cell>Out: Sequence database hits</cell></row><row><cell>(word-based methods)</cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2 .</head><label>2</label><figDesc>Overview of results (considering solutions found until a search depth of 5).</figDesc><table><row><cell cols="3">Constraints Visited nodes Solutions</cell><cell cols="3">Constraints Visited nodes Solutions</cell></row><row><cell>none</cell><cell>34,026</cell><cell>2,269</cell><cell>1, 2, 3</cell><cell>9,603</cell><cell>31</cell></row><row><cell>1</cell><cell>1,139</cell><cell>55</cell><cell>1, 2, 4</cell><cell>8,057</cell><cell>24</cell></row><row><cell>2</cell><cell>82,343</cell><cell>2,194</cell><cell>1, 2, 4'</cell><cell>2,084</cell><cell>1</cell></row><row><cell>3</cell><cell>132,809</cell><cell>1,916</cell><cell>1, 3, 4</cell><cell>28,545</cell><cell>24</cell></row><row><cell>4</cell><cell>436,102</cell><cell>471</cell><cell>1, 3, 4'</cell><cell>18,699</cell><cell>0</cell></row><row><cell>4'</cell><cell>129,200</cell><cell>406</cell><cell>1, 4, 4'</cell><cell>15,919</cell><cell>0</cell></row><row><cell>1, 2</cell><cell>1,103</cell><cell>49</cell><cell>2, 3, 4</cell><cell>919,162</cell><cell>138</cell></row><row><cell>1, 3</cell><cell>3,123</cell><cell>52</cell><cell>2, 3, 4'</cell><cell>284,463</cell><cell>347</cell></row><row><cell>1, 4</cell><cell>8,309</cell><cell>24</cell><cell>2, 4, 4'</cell><cell>859,047</cell><cell>18</cell></row><row><cell>1, 4'</cell><cell>2,336</cell><cell>1</cell><cell>3, 4, 4'</cell><cell>1,752,153</cell><cell>0</cell></row><row><cell>2, 3</cell><cell>138,137</cell><cell>1,847</cell><cell>1, 2, 3, 4</cell><cell>28,545</cell><cell>24</cell></row><row><cell>2, 4</cell><cell>443,860</cell><cell>459</cell><cell>1, 2, 3, 4'</cell><cell>2,084</cell><cell>1</cell></row><row><cell>2, 4'</cell><cell>181,365</cell><cell>394</cell><cell>1, 2, 4, 4'</cell><cell>15,235</cell><cell>0</cell></row><row><cell>3, 4</cell><cell>910,672</cell><cell>138</cell><cell>1, 3, 4, 4'</cell><cell>54,711</cell><cell>0</cell></row><row><cell>3, 4'</cell><cell>277,239</cell><cell>359</cell><cell>2, 3, 4, 4'</cell><cell>1,764,843</cell><cell>0</cell></row><row><cell>4, 4'</cell><cell>847,845</cell><cell>18</cell><cell>all</cell><cell>54,027</cell><cell>0</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">http://edamontology.sourceforge.net/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_1">http://www.embracegrid.info/</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Semi-automatic web service composition for the life sciences using the BioMoby semantic web framework</title>
		<author>
			<persName><forename type="first">M</forename><surname>Dibernardo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Pottinger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wilkinson</surname></persName>
		</author>
		<idno type="PMID">18373957</idno>
	</analytic>
	<monogr>
		<title level="j">Journal of Biomedical Informatics</title>
		<imprint>
			<biblScope unit="volume">41</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="837" to="847" />
			<date type="published" when="2008-10">October 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Bio-jETI: a framework for semanticsbased service composition</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">L</forename><surname>Lamprecht</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">BMC Bioinformatics</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">10</biblScope>
			<biblScope unit="page">S8</biblScope>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>Suppl</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">SADI Semantic Web Services -&apos;cause you can&apos;t always GET what you want!</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">D</forename><surname>Wilkinson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Vandervalk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Mccarthy</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the IEEE Services Computing Conference</title>
				<meeting>the IEEE Services Computing Conference<address><addrLine>Singapore</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Asia-Pacific</publisher>
			<date type="published" when="2009-12">December 2009. 2009. 2009</date>
			<biblScope unit="page" from="13" to="18" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Magallanes: a web services discovery and automatic workflow composition tool</title>
		<author>
			<persName><forename type="first">J</forename><surname>Rios</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Karlsson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Trelles</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">BMC Bioinformatics</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page">334</biblScope>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">jORCA: easily integrating bioinformatics Web Services</title>
		<author>
			<persName><forename type="first">V</forename><surname>Martín-Requena</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Ríos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>García</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ramírez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Trelles</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Bioinformatics</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="553" to="559" />
			<date type="published" when="2010-02">February 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Towards a Knowledge-Based Approach to Semantic Service Composition</title>
		<author>
			<persName><forename type="first">L</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Shadbolt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Goble</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Tao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Cox</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Puleston</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Smart</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The SemanticWeb -ISWC</title>
				<imprint>
			<date type="published" when="2003">2003. 2003</date>
			<biblScope unit="page" from="319" to="334" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">BioMOBY: an open source biological web services proposal</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">D</forename><surname>Wilkinson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Links</surname></persName>
		</author>
		<idno type="PMID">12511062</idno>
	</analytic>
	<monogr>
		<title level="j">Briefings in Bioinformatics</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="331" to="341" />
			<date type="published" when="2002-12">December 2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Globally distributed object identification for biological knowledgebases</title>
		<author>
			<persName><forename type="first">T</forename><surname>Clark</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Martin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Liefeld</surname></persName>
		</author>
		<idno type="PMID">15153306</idno>
	</analytic>
	<monogr>
		<title level="j">Briefings in Bioinformatics</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="59" to="70" />
			<date type="published" when="2004-03">March 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">The EMBRACE web service collection</title>
		<author>
			<persName><forename type="first">S</forename><surname>Pettifer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Ison</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kalas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Thorne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Mcdermott</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Jonassen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Liaquat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Fernandez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Rodriguez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Partners</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">G</forename><surname>Pisano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Blanchet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Uludag</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Rice</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Bartaseviciute</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Rapacki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hekkelman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Sand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Stockinger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">B</forename><surname>Clegg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Bongcam-Rudloff</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Salzemann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Breton</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">K</forename><surname>Attwood</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Cameron</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Vriend</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Nucl. Acids Res</title>
		<imprint>
			<biblScope unit="page">297</biblScope>
			<date type="published" when="2010-05">May 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Some Philosophical Problems from the Standpoint of Artificial Intelligence</title>
		<author>
			<persName><forename type="first">J</forename><surname>Mccarthy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">J</forename><surname>Hayes</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Machine Intelligence 4</title>
				<editor>
			<persName><forename type="first">B</forename><surname>Meltzer</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Michie</surname></persName>
		</editor>
		<imprint>
			<publisher>Edinburgh University Press</publisher>
			<date type="published" when="1969">1969</date>
			<biblScope unit="page" from="463" to="502" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving</title>
		<author>
			<persName><forename type="first">R</forename><surname>Fikes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">J</forename><surname>Nilsson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artif. Intell</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">3/4</biblScope>
			<biblScope unit="page" from="189" to="208" />
			<date type="published" when="1971">1971</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Synthesis of Communicating Processes from Temporal Logic Specifications</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Manna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Wolper</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. Program. Lang. Syst</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="68" to="93" />
			<date type="published" when="1984">1984</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">On the synthesis of a reactive module</title>
		<author>
			<persName><forename type="first">A</forename><surname>Pnueli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Rosner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Annual Symposium on Principles of Programming Languages</title>
				<imprint>
			<date type="published" when="1989">1989</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">HTN Planning: Complexity and Expressivity</title>
		<author>
			<persName><forename type="first">K</forename><surname>Erol</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Nau</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">AAAI</title>
		<imprint>
			<biblScope unit="volume">94</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="1123" to="1128" />
			<date type="published" when="1994">1994</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Automatic synthesis of linear process models from temporal constraints: An incremental approach</title>
		<author>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Beeck</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ACM/SIGPLAN Int. Workshop on Automated Analysis of Software (AAS&apos;97)</title>
				<imprint>
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">mu-calculus Synthesis</title>
		<author>
			<persName><forename type="first">O</forename><surname>Kupfermann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">Y</forename><surname>Vardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Mathematical Foundations of Computer Science</title>
		<imprint>
			<date type="published" when="2000">2000. 2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">A Planner Fully Based on Linear Time Logic</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">C</forename><surname>Mayer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Orlandini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Balestreri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Limongelli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">AIPS</title>
		<imprint>
			<biblScope unit="page" from="347" to="354" />
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">LTL Guided Planning: Revisiting Automatic Tool Composition in ETI</title>
		<author>
			<persName><forename type="first">T</forename><surname>Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 31st IEEE Software Engineering Workshop</title>
				<meeting>the 31st IEEE Software Engineering Workshop</meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="214" to="226" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Russel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Norvig</surname></persName>
		</author>
		<title level="m">Artificial Intelligence: A Modern Approach</title>
				<imprint>
			<publisher>Prentice Hall</publisher>
			<date type="published" when="2009">12 2009</date>
		</imprint>
	</monogr>
	<note>3 edn</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Using temporal logics to express search control knowledge for planning</title>
		<author>
			<persName><forename type="first">F</forename><surname>Bacchus</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Kabanza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artif. Intell</title>
		<imprint>
			<biblScope unit="volume">116</biblScope>
			<biblScope unit="issue">1-2</biblScope>
			<biblScope unit="page" from="123" to="191" />
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Bio-jETI: a service integration, design, and provisioning platform for orchestrated bioinformatics processes</title>
		<author>
			<persName><forename type="first">T</forename><surname>Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Kubczak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</author>
		<idno type="PMID">18460173</idno>
		<idno type="PMCID">PMC2367639</idno>
	</analytic>
	<monogr>
		<title level="j">BMC Bioinformatics</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="page">S12</biblScope>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>Suppl</note>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Synthesis-Based Loose Programming</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">L</forename><surname>Lamprecht</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Naujokat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 7th International Conference on the Quality of Information and Communications Technology (QUATIC)</title>
				<meeting>the 7th International Conference on the Quality of Information and Communications Technology (QUATIC)</meeting>
		<imprint>
			<date type="published" when="2010-09">September 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Semantics-based composition of EMBOSS services</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">L</forename><surname>Lamprecht</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Naujokat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">BMC Bioinformatics</title>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
	<note>to appear</note>
</biblStruct>

<biblStruct xml:id="b23">
	<monogr>
		<title level="m" type="main">Module Configuration by Minimal Model Construction</title>
		<author>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Freitag</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1993">1993</date>
		</imprint>
		<respStmt>
			<orgName>Fakultät für Mathematik und Informatik, Universität Passau</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Gene ontology: tool for the unification of biology. The Gene Ontology Consortium</title>
		<author>
			<persName><forename type="first">M</forename><surname>Ashburner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A</forename><surname>Ball</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Blake</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Botstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Butler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Cherry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">P</forename><surname>Davis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Dolinski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">S</forename><surname>Dwight</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">T</forename><surname>Eppig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Harris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">P</forename><surname>Hill</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Issel-Tarver</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kasarskis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Lewis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Matese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E</forename><surname>Richardson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ringwald</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">M</forename><surname>Rubin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Sherlock</surname></persName>
		</author>
		<idno type="PMID">10802651</idno>
	</analytic>
	<monogr>
		<title level="j">Nature Genetics</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="25" to="29" />
			<date type="published" when="2000-05">May 2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">The OBO Foundry: coordinated evolution of ontologies to support biomedical data integration</title>
		<author>
			<persName><forename type="first">B</forename><surname>Smith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ashburner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Rosse</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bard</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Bug</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Ceusters</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">J</forename><surname>Goldberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Eilbeck</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ireland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">J</forename><surname>Mungall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Leontis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Rocca-Serra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ruttenberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Sansone</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">H</forename><surname>Scheuermann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Shah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">L</forename><surname>Whetzel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Lewis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Nat Biotech</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="issue">11</biblScope>
			<biblScope unit="page" from="1251" to="1255" />
			<date type="published" when="2007-11">November 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<title level="m" type="main">Semantic Annotations for WSDL and XML Schema</title>
		<author>
			<persName><forename type="first">J</forename><surname>Farrell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Lausen</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/sawsdl/(82007)W3CRecommendation" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">EMBOSS: the European Molecular Biology Open Software Suite</title>
		<author>
			<persName><forename type="first">P</forename><surname>Rice</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Longden</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bleasby</surname></persName>
		</author>
		<idno type="PMID">10827456</idno>
	</analytic>
	<monogr>
		<title level="j">Trends in Genetics: TIG</title>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="276" to="277" />
			<date type="published" when="2000-06">June 2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Bio-Catalogue: a universal catalogue of web services for the life sciences</title>
		<author>
			<persName><forename type="first">J</forename><surname>Bhagat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Tanoh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Nzuobontane</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Laurent</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Orlowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Roos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Wolstencroft</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Aleksejevs</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Stevens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Pettifer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lopez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A</forename><surname>Goble</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Nucl. Acids Res</title>
		<imprint>
			<biblScope unit="volume">38</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="W689" to="694" />
			<date type="published" when="2010-07">July 2010</date>
		</imprint>
	</monogr>
	<note>suppl</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
