Publication and Discovery of Feta Description

This document describes a scenario where users can

  • publish a feta description into the Grimoires registry,
  • retrieve a published feta description from the Grimoires registry, and
  • discover a feta description using either canned query or free form query.

The described scenario will be implemented as a prototype for the demo purpose.

Feta Description

The schema of a feta description can be found here.

A sample feta description looks like:

<serviceDescriptions  xmlns="pd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="pd /C:/Program Files/taverna-workbench-1.2/./plugins/pedro/services/model/common.xsd">
	<serviceDescription >
		<serviceName>SHound3DbWhat</serviceName>
		<organisation >
			<organisationName>Blueprint</organisationName>
			<organisationDescriptionText>The Blueprint Initiative</organisationDescriptionText>
		</organisation>
		<locationURL>http://seqhound.blueprint.org/</locationURL>
		<interfaceWSDL>http://seqhound.blueprint.org/</interfaceWSDL>
		<serviceDescriptionText>Finds out what kind of molecules are contained in a 3-D structure.</serviceDescriptionText>
		<operations >
			<serviceOperation >
				<operationName>SHound3DbWhat</operationName>
				<operationInputs >
					<parameter >
						<parameterName>mmdbid</parameterName>
						<semanticType>http://www.mygrid.org.uk/ontology#bioinformatics_record_id</semanticType>
						<transportDataType>String</transportDataType>
						<collectionSemanticType>Single</collectionSemanticType>
					</parameter>
				</operationInputs>
				<operationOutputs >
					<parameter >
						<parameterName>result</parameterName>
						<semanticType>http://www.mygrid.org.uk/ontology#bioinformatics_record_id</semanticType>
						<transportDataType>String</transportDataType>
						<collectionSemanticType>Single</collectionSemanticType>
					</parameter>
				</operationOutputs>
				<operationTask>http://www.mygrid.org.uk/ontology#searching</operationTask>
				<operationResource>http://www.mygrid.org.uk/ontology#PDB</operationResource>
				<operationResourceContent>http://www.mygrid.org.uk/ontology#model_organism</operationResourceContent>
			</serviceOperation>
		</operations>
		<serviceType>SeqHound service</serviceType>
	</serviceDescription>
</serviceDescriptions>

Publication

When being published into Grimoires, the feta description will be transformed into Grimiores' data model, which is UDDI + WSDL + Metadata. In particular,
  • serviceDescription is transformed to a UDDI service,
  • serviceDescription/serviceType to the metadata attached to the above service,
  • serviceDescription/Organization to a UDDI business who owns the above service,
  • serviceDescription/locationURL to the service end point in the UDDI binding template,
  • serviceDescription/operations to a WSDL, which is also represented by a tModel that acts as the technical interface of the above binding template,
  • serviceDescription/operations/serviceOperation to WSDL operation,
  • serviceDescription/operations/serviceOperation/operationInputs and serviceDescription/operations/serviceOperation/operationOutputs to WSDL message parts,
  • serviceDescription/operations/serviceOperation/operationTask etc. to metadata attached to the corresponding WSDL operation
  • serviceDescription/operations/serviceOperation/operationInputs/semanticType etc. to metadata attached to the corresponding WSDL message part,
  • etc.

Retrieval

The retrieval of published feta description is supported. The result of the retrieval must be no different from the previously published one.

Discovery

All canned feta queries can be supported by using the feta description schema as the expression for queries. That is, <serviceDescription/> is used as a service template, with searching criteria filled in and unknown information left blank. Further benefits are:

  • Multiple queries can be issued at the same time to save the communication time,
  • Multiple searching criteria can be combined in one query, leaving the join work to the registry.

By task

Find a feta service description which has an operation doing "searching".

Feta RDF query
SELECT 
       ?descLoc, ?servName, ?opName 
WHERE
       (?s mg:hasServiceDescriptionLocation ?descLoc)
       (?s mg:hasServiceNameText ?servName)
       (?s mg:hasOperation ?op)
       (?op mg:hasOperationNameText ?opName)
       (?op mg:performsTask ?t)
       (?t rdf:type mg:searching)
 USING
     mg for <http://www.mygrid.org.uk/ontology#>
An equivalent service template in XML
<serviceDescriptions  xmlns="pd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="pd /C:/Program Files/taverna-workbench-1.2/./plugins/pedro/services/model/common.xsd">
	<serviceDescription >
		<operations >
			<serviceOperation >
				<operationTask>http://www.mygrid.org.uk/ontology#searching</operationTask>
			</serviceOperation>
		</operations>
	</serviceDescription>
</serviceDescriptions>
Expected result

The matched feta description is retrieved.

By input/output semantic type

Find a feta service description which has an operation accepts or returns data of the given semantic type.

Feta RDF query
SELECT 
       ?descLoc, ?servName, ?opName 
WHERE
       (?s mg:hasServiceDescriptionLocation ?descLoc)
       (?s mg:hasServiceNameText ?servName)
       (?s mg:hasOperation ?op)
       (?op mg:hasOperationNameText ?opName)
       (?op mg:inputParameter ?par)
       (?par mg:mygInstance ?Y)
       (mg:biological_sequence_id rdfs:subClassOf ?Y)
 USING
     mg for <http://www.mygrid.org.uk/ontology#>
     rdfs for <http://www.w3.org/2000/01/rdf-schema#> 
An equivalent service template in XML
<serviceDescriptions  xmlns="pd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="pd /C:/Program Files/taverna-workbench-1.2/./plugins/pedro/services/model/common.xsd">
	<serviceDescription >
		<operations >
			<serviceOperation >
				<operationInputs >
					<parameter >
						<semanticType>http://www.mygrid.org.uk/ontology#bioinformatics_record_id</semanticType>
					</parameter>
				</operationInputs>
			</serviceOperation>
		</operations>
	</serviceDescription>
</serviceDescriptions>
Expected result

The matched feta description is retrieved.

By application

Todo.

By method

Todo.

By resource

Todo.