SlideShare a Scribd company logo
Description and Discovery of Type Adaptors for Web Services Workflow Martin Szomszor ( [email_address] )
Presentation Outline Contemporary workflow Design Discovery of services using semantics Problem description Type conversion requirements Describing Type Adaptor capabilities Using WSDL Discovering Type Adaptors Implementation Example  Using bespoke mapping language FXML-M GRIMOIRES Registry
In  Silico  Experimentation Computational experimentation Access to resources provided by Web Services Users map experimental process to workflow Tasks are realised by service instances
Service Discovery Users need to find services to fulfill given tasks e.g. Retrieve sequence data Sequence alignment (Blast) There are lots of services ! Interface definitions can be terse, often un-documented and sometimes cryptic  Limited  semantic  value Manual discovery not ideal
Semantic Discovery Support users in the discovery of services according to domain specific terminology Annotate service descriptions with concepts from an ontology (PEDRO) Input and output types assigned a  semantic type  by a reference to an ontology concept Discover services by: Task performed Resources used Input and output semantic types
Semantically Driven Workflow Design When building workflows, users connect services because they are deemed  semantically compatible: Output semantic type equivalent to input semantic type
Syntactic Compatibility However, semantically compatible service interfaces may not be  syntactically compatible  (i.e. different data formats)
Syntactic Mediation When a mismatch in data formats occurs within a workflow, a translation component is required These  Type Adaptors  come in a variety of guises Translation Scripts (e.g. XSLT) Bespoke Code (JAVA and PERL) Web Services Current solutions are manual Identify when mismatch occurs How to resolve it What translation components are suitable Create new translation components if necessary  How can we describe Type Adaptors?
WSDL Overview WSDL is a declarative language used to specify program capabilities through the definition of end-points Programs expose operations Operations are specified in terms of messages Messages contain parts (each with syntactic type) XML Schema can be used to describe data formats Abstract definition separated from concrete implementation Binding defines invocation method and data encoding
 
WSDL Examples: <definitions> <message name='getEntryIn'> <part name='accession_id' element='DDBJ:ACCESSION'/> </message> <message name='getEntryOut'> <part name='record' element='DDBJ:DDBJXML'/> </message> <portType name='DDBJPortType'> <operation name='GetEntry'> <input name='getEntryIn' message='tns:getEntryIn'/> <output name='getEntryOut' message='tns:getEntryOut'/> </operation> </portType> SOAP <binding name='DDBJBinding' type='tns:DDBJPortType'> <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='GetEntry'> <soap:operation soapAction='GetEntry'/> <input name='getEntryIn'> <soap:body use='literal'/> </input> <output name='getEntryOut'> <soap:body use='literal'/> </output> </operation> </binding> </definitions> JAVA <binding name=&quot;JavaBinding&quot; type=&quot;tns:DDBJPortType&quot;> <java:binding/> <format:typeMapping encoding=&quot;Java&quot; style=&quot;Java&quot;> <format:typeMap typeName=”DDBJ:DDBJXML&quot; formatType=”DDBJXML.SequenceData&quot;/> <format:typeMap typeName=”DDBJ:ACCESSION&quot; formatType=&quot;java.lang.String&quot;/> </format:typeMapping>  <operation name=”GetEntry&quot;> <java:operation methodName=”GetEntry” methodType=&quot;instance&quot;/> <input name=&quot;getEntryIn&quot;/> <output name=“getEntryOut”/> </operation> </binding> </definitions> http://ws.apache.org/wsif/providers/wsdl_extensions/java_extension.html
WSDL Conclusions Can be used to describe many implementations Transport not necessarily SOAP over HTTP Data encoding does not have to be XML Java Objects String formats (e.g. csv) Binary Files Other WSDL Bindings: XQuery  [Onose and Simeon 2004] EJB, JMS, J2EE Connector Architecture (e.g. Cobol): from Apache WSIF Anything you like…
Type Adaptors Type Adaptors are components that:  consume an input (source type) produce an output (destination type) Functionality can be described at an abstract level: what goes in what comes out Actual implementation can be described using a binding, e.g. XSLT script location Java Class used Hence, we use WSDL to describe Type Adaptors
WSDL for Type Adaptors
Discovery of Type Adaptors
Simple solution: Adaptor for each compatible data format O(n 2 ) Poor Scalability Alternative: Introduce intermediate representation O(n) Less effort introducing new formats Type Adaptor Approaches f c e b d a f c e b d a
Intermediate Representation Use OWL ontologies to capture semantics and structure of data formats Proven technique TAMBIS Project  [Stevens  et al  2003] Complex query formulation over diverse information sources SEEK Project  [Bowers and Ludascher 2004] An ontology-driven framework for data transformation in scientific workflows
Implementation Type Adaptor approach: Using OWL as intermediate representation Transformation Technology: Using bespoke mapping language FXML-M Registry Technology: GRIMOIRES Advertise Discover
Mapping Mechanics <S> <X>foo</X> <X>bar</X> </S> <D> <Y>foo</Y> <Y>bar</Y> </D> Source Document Destination Document m 1 : S/X -> D/Y m 2 : X/$ -> Y/$ Mappings
Mapping Mechanics S X “ foo” S/* S/* xsd:string xsd:string X “ bar” D Y “ foo” D/* D/* xsd:string xsd:string Y “ bar” m 1 : S/X -> D/Y m 2 : X/$ -> Y/$
Example M-Binding <binding xmlns=&quot;http://www.ecs.soton.ac.uk/~mns03r/mapping/example&quot; xmlns:sns=&quot;http://jaco.ecs.soton.ac.uk/schema/source&quot; xmlns:dns=&quot;http://jaco.ecs.soton.ac.uk/schema/destination&quot;> <mapping id= &quot;1&quot; > <source match= &quot;sns:S/sns:X&quot; /> <destination create= &quot;dns:D[join]/dns:Y[branch]&quot; /> </mapping> <mapping id= ”2&quot; > <source match= &quot;sns:X/$&quot; /> <destination create= &quot;dns:Y[join]/$&quot; /> </mapping> </binding>
Transformation Technology Bespoke Mapping Language (FXML-M) Declarative Statements map schema elements from source to destination Mappings are combined in an M-Binding Document Composable M-Bindings can include statements from other M-Bindings Predicate support (for complex relations) Asymmetric relations (one-to-many, many-to-one) Implementation (FXML-T)  Consumes M-Bindings, schemas and source document Produces destination document
Mappings with OWL Our Type Adaptor approach uses OWL for an intermediate representation But our transformation technology is XML to XML Solution, use canonical XML representation for OWL concept instances OWL Instance Schema Automatically generated from OWL ontology Concept hierarchies calculated Elements for each concept and property
Bio Example <ddbj:DDBJXML> <ddbj:ACCESSION>AB000059</ddbj:ACCESSION> <ddbj:FEATURES> <ddbj:source> <ddbj:location>1..1755</ddbj:location> <ddbj:qualifiers name=&quot;isolate&quot;>Som1</ddbj:qualifiers> <ddbj:qualifiers name=&quot;lab_host&quot;>Felis domesticus</ddbj:qualifiers> </ddbj:source> </ddbj:FEATURES> </ddbj:DDBJXML> <ont:Sequence_Data_Record> <ont:accession_id>AB000059</ont:accession_id> <ont:has_feature> <ont:Feature_Source> <ont:isolate>Som1</ont:isolate> <ont:lab_host>Felis domesticus</ont:lab_host> <ont:location> <ont:Feature_Location> <ont:start>1</ont:start> <ont:end>1755</ont:end> </ont:Feature_Location> </ont:location> </ont:Feature_source> </ont:has_feature> </ont:Sequence_Data_Record> Simple One-to-One Element and literal Many-to-Many Split literal value Predicate evaluation
Example M-Binding <binding xmlns=&quot;http://www.ecs.soton.ac.uk/~mns03r/mapping/ddbj-to-ont-mapping&quot; xmlns:sns=&quot;http://jaco.ecs.soton.ac.uk/schema/DDBJ&quot; xmlns:dns=&quot;http://jaco.ecs.soton.ac.uk/ont/sequencedata&quot;> <mapping id=&quot;1&quot;> <source match=&quot;sns:DDBJXML/sns:ACCESSION&quot;/> <destination create=&quot;dns:Sequence_Data_Record[join]/dns:accession_id[branch]/&quot;/> </mapping> <mapping id=“2”> <source match=&quot;sns:ACCESSION/$&quot;/> <destination create=&quot;dns:accession_id[join]/$&quot;/> </mapping> <mapping id=”3&quot;> <source match=&quot;sns:DDBJXML/sns:FEATURES/sns:source&quot;/> <destination create=&quot;dns:Sequence_Data_Record[join]/dns:has_feature[branch]/ dns:Feature_Source[branch]&quot;/> </mapping> <mapping id=”4&quot;> <source match='sns:source/sns:qualifiers[sns:qualifiers/sns:name/$ = &quot;lab_host&quot;]'/> <destination create=&quot;dns:Feature_Source[join]/dns:lab-host[branch]&quot;/> <mapping> <source match=&quot;sns:qualifiers/$&quot;/> <destination create=&quot;dns:lab-host[join]/$&quot;/> </mapping> </mapping> <mapping id=”5&quot;> <source match=&quot;sns:location/$^[^.]+&quot;/> <destination create=&quot;dns:Location[join]/dns:start[branch]/$&quot;/> </mapping> </binding>
Configurable Mediator
Discovery of M-Bindings
Example WSDL <?xml version='1.0' encoding='UTF-8'?> <definitions name='DDBJ-to-sequencedata' targetNamespace='http://jaco.ecs.soton.ac.uk:8080/Bindings/DDBJ-to-sequencedata' ... xmlns='http://schemas.xmlsoap.org/wsdl/'> <types> <xsd:schema targetNamespace='http://jaco.ecs.soton.ac.uk:8080/Bindings/DDBJ-to-sequencedata'> <xsd:import namespace='http://jaco.ecs.soton.ac.uk/schema/DDBJ'/> <xsd:import namespace='http://jaco.ecs.soton.ac.uk/ont/sequencedata'/> </xsd:schema> </types> <message name='sns#DDBJXML-to-dns#Sequence_Data_Record-IN'> <part name='in' element='sns:DDBJXML'/> </message> <message name='sns#DDBJXML-to-dns#Sequence_Data_Record-OUT'> <part name='in' element='dns:Sequence_Data_Record'/> </message> <portType name='TranslationPortType'> <operation name='sns#DDBJXML-to-dns#Sequence_Data_Record'> <input name='sns#DDBJXML-to-dns#Sequence_Data_Record-IN'/> <output name='sns#DDBJXML-to-dns#Sequence_Data_Record-OUT'/> </operation> </portType> <binding name='TranslationBinding' type='tns:TranslationPortType'> <operation name='sns#DDBJXML-to-dns#Sequence_Data_Record'> <input name='sns#DDBJXML-to-dns#Sequence_Data_Record-IN'/> <output name='sns#DDBJXML-to-dns#Sequence_Data_Record-OUT'/> </operation> </binding> <service name='TranslationService'> <port name='TranslationPort' binding='tns:TranslationBinding'> <fxml:binding location='http://jaco.ecs.soton.ac.uk/binding/DDBJ-to-sequencedata.xml'/> </port> </service> </definitions>
Conclusions Type Adaptors come in many flavours, all can be described using WSDL GRIMOIRES can be used to advertise and discover WSDL Type Adaptors We have shown this to work with our own Mapping Language (FXML-M) Practical Scalable
Questions and Comments?
FXML-T Performance
FXML-T Performance
FXML-T Performance
GRIMOIRES Performance 1.81 Total Mediation 0.27 Serialisation Translation 0.23 Serialisation Discovery 0.62 Jena Mediation 0.47 Realisation Translation 0.22 RealisationDiscovery 2.50 DDBJ Execution Average Time (S) Activity

More Related Content

PPT
Introduction to XML
PPT
Dublin Core Basic Syntax Tutorial
PPTX
What is xml
PPT
PPTX
Document type definition
PPT
Document Type Definition
PPT
Introduction to XML
Dublin Core Basic Syntax Tutorial
What is xml
Document type definition
Document Type Definition

What's hot (19)

PPTX
Xml dtd
PPT
PPT
Linq
PPT
Chen's first test slides
PPT
Chen test paper20abcdeftfdfd
PPT
O9xml
PPT
4 xml namespaces and xml schema
PPT
XML and DTD
PDF
Introduction to DTD
PPT
Web Services Part 1
PPT
2 dtd - validating xml documents
PPT
Schema
PDF
ANOMALY DETECTION IN ARABIC TEXTS USING NGRAMS AND SELF ORGANIZING MAPS
PDF
Anomaly Detection in Arabic Texts using Ngrams and Self Organizing Maps
PPT
Xml Java
PPTX
Xml For Dummies Chapter 8 Understanding And Using Dt Ds it-slideshares.blog...
PPT
Xml 215-presentation
Xml dtd
Linq
Chen's first test slides
Chen test paper20abcdeftfdfd
O9xml
4 xml namespaces and xml schema
XML and DTD
Introduction to DTD
Web Services Part 1
2 dtd - validating xml documents
Schema
ANOMALY DETECTION IN ARABIC TEXTS USING NGRAMS AND SELF ORGANIZING MAPS
Anomaly Detection in Arabic Texts using Ngrams and Self Organizing Maps
Xml Java
Xml For Dummies Chapter 8 Understanding And Using Dt Ds it-slideshares.blog...
Xml 215-presentation
Ad

Viewers also liked (11)

PPT
Modelling Users’ Profiles and Interests based on Cross-Folksonomy Analysis ...
PPTX
Live Social Semantics @ ESWC2010
PPT
Syntactic Mediation in Grid and Web Service Architectures
PPT
Semantic Modelling of User Interests Based on Cross-Folksonomy Analysis @ IS...
PPTX
Design de Experiencia
PPT
Recording and Reasoning Over Data Provenance in Web and Grid Services
PPTX
Live Social Semantics @ ISWC2009
PPSX
GMS BYOD Faculty Training
PDF
Lược sử thời gian
PPTX
Presentation1
PPTX
10g de Groot - 1.15
 
Modelling Users’ Profiles and Interests based on Cross-Folksonomy Analysis ...
Live Social Semantics @ ESWC2010
Syntactic Mediation in Grid and Web Service Architectures
Semantic Modelling of User Interests Based on Cross-Folksonomy Analysis @ IS...
Design de Experiencia
Recording and Reasoning Over Data Provenance in Web and Grid Services
Live Social Semantics @ ISWC2009
GMS BYOD Faculty Training
Lược sử thời gian
Presentation1
10g de Groot - 1.15
 
Ad

Similar to Description and Discovery of Type Adaptors for Web Services Workflow (20)

PPT
Automated Syntactic Mediation for Web Service Integration
PPT
seert
PPT
[DSBW Spring 2010] Unit 10: XML and Web And beyond
PPT
webservices overview
PPT
Beyond Seamless Access: Meta-data In The Age of Content Integration
PDF
XML Schema Patterns for Databinding
PPT
Delivering Process-Driven, Dynamic Applications
PPT
Delivering Process-Driven, Dynamic Applications
PPT
PDF
IQPC Canada XML 2001: How to develop Syntax and XML Schema
PPT
java-webservices introduction ppt for beginners
PPTX
UML 2.5: Specification Simplification
PPT
Semantic RDF based integration framework for heterogeneous XML data sources
PDF
IBM Solutions '99 XML and Java: Lessons Learned
PPT
PDF
Don Bailey eLearning sample
PDF
XML Schema Computations: Schema Compatibility Testing and Subschema Extraction
PPTX
SOA standards
PPT
Crawford Ubl200212
PPT
Crawford U B L200212
Automated Syntactic Mediation for Web Service Integration
seert
[DSBW Spring 2010] Unit 10: XML and Web And beyond
webservices overview
Beyond Seamless Access: Meta-data In The Age of Content Integration
XML Schema Patterns for Databinding
Delivering Process-Driven, Dynamic Applications
Delivering Process-Driven, Dynamic Applications
IQPC Canada XML 2001: How to develop Syntax and XML Schema
java-webservices introduction ppt for beginners
UML 2.5: Specification Simplification
Semantic RDF based integration framework for heterogeneous XML data sources
IBM Solutions '99 XML and Java: Lessons Learned
Don Bailey eLearning sample
XML Schema Computations: Schema Compatibility Testing and Subschema Extraction
SOA standards
Crawford Ubl200212
Crawford U B L200212

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Empathic Computing: Creating Shared Understanding
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Cloud computing and distributed systems.
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
Mobile App Security Testing_ A Comprehensive Guide.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Empathic Computing: Creating Shared Understanding
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
Understanding_Digital_Forensics_Presentation.pptx
Cloud computing and distributed systems.
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Description and Discovery of Type Adaptors for Web Services Workflow

  • 1. Description and Discovery of Type Adaptors for Web Services Workflow Martin Szomszor ( [email_address] )
  • 2. Presentation Outline Contemporary workflow Design Discovery of services using semantics Problem description Type conversion requirements Describing Type Adaptor capabilities Using WSDL Discovering Type Adaptors Implementation Example Using bespoke mapping language FXML-M GRIMOIRES Registry
  • 3. In Silico Experimentation Computational experimentation Access to resources provided by Web Services Users map experimental process to workflow Tasks are realised by service instances
  • 4. Service Discovery Users need to find services to fulfill given tasks e.g. Retrieve sequence data Sequence alignment (Blast) There are lots of services ! Interface definitions can be terse, often un-documented and sometimes cryptic Limited semantic value Manual discovery not ideal
  • 5. Semantic Discovery Support users in the discovery of services according to domain specific terminology Annotate service descriptions with concepts from an ontology (PEDRO) Input and output types assigned a semantic type by a reference to an ontology concept Discover services by: Task performed Resources used Input and output semantic types
  • 6. Semantically Driven Workflow Design When building workflows, users connect services because they are deemed semantically compatible: Output semantic type equivalent to input semantic type
  • 7. Syntactic Compatibility However, semantically compatible service interfaces may not be syntactically compatible (i.e. different data formats)
  • 8. Syntactic Mediation When a mismatch in data formats occurs within a workflow, a translation component is required These Type Adaptors come in a variety of guises Translation Scripts (e.g. XSLT) Bespoke Code (JAVA and PERL) Web Services Current solutions are manual Identify when mismatch occurs How to resolve it What translation components are suitable Create new translation components if necessary How can we describe Type Adaptors?
  • 9. WSDL Overview WSDL is a declarative language used to specify program capabilities through the definition of end-points Programs expose operations Operations are specified in terms of messages Messages contain parts (each with syntactic type) XML Schema can be used to describe data formats Abstract definition separated from concrete implementation Binding defines invocation method and data encoding
  • 10.  
  • 11. WSDL Examples: <definitions> <message name='getEntryIn'> <part name='accession_id' element='DDBJ:ACCESSION'/> </message> <message name='getEntryOut'> <part name='record' element='DDBJ:DDBJXML'/> </message> <portType name='DDBJPortType'> <operation name='GetEntry'> <input name='getEntryIn' message='tns:getEntryIn'/> <output name='getEntryOut' message='tns:getEntryOut'/> </operation> </portType> SOAP <binding name='DDBJBinding' type='tns:DDBJPortType'> <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='GetEntry'> <soap:operation soapAction='GetEntry'/> <input name='getEntryIn'> <soap:body use='literal'/> </input> <output name='getEntryOut'> <soap:body use='literal'/> </output> </operation> </binding> </definitions> JAVA <binding name=&quot;JavaBinding&quot; type=&quot;tns:DDBJPortType&quot;> <java:binding/> <format:typeMapping encoding=&quot;Java&quot; style=&quot;Java&quot;> <format:typeMap typeName=”DDBJ:DDBJXML&quot; formatType=”DDBJXML.SequenceData&quot;/> <format:typeMap typeName=”DDBJ:ACCESSION&quot; formatType=&quot;java.lang.String&quot;/> </format:typeMapping> <operation name=”GetEntry&quot;> <java:operation methodName=”GetEntry” methodType=&quot;instance&quot;/> <input name=&quot;getEntryIn&quot;/> <output name=“getEntryOut”/> </operation> </binding> </definitions> http://ws.apache.org/wsif/providers/wsdl_extensions/java_extension.html
  • 12. WSDL Conclusions Can be used to describe many implementations Transport not necessarily SOAP over HTTP Data encoding does not have to be XML Java Objects String formats (e.g. csv) Binary Files Other WSDL Bindings: XQuery [Onose and Simeon 2004] EJB, JMS, J2EE Connector Architecture (e.g. Cobol): from Apache WSIF Anything you like…
  • 13. Type Adaptors Type Adaptors are components that: consume an input (source type) produce an output (destination type) Functionality can be described at an abstract level: what goes in what comes out Actual implementation can be described using a binding, e.g. XSLT script location Java Class used Hence, we use WSDL to describe Type Adaptors
  • 14. WSDL for Type Adaptors
  • 15. Discovery of Type Adaptors
  • 16. Simple solution: Adaptor for each compatible data format O(n 2 ) Poor Scalability Alternative: Introduce intermediate representation O(n) Less effort introducing new formats Type Adaptor Approaches f c e b d a f c e b d a
  • 17. Intermediate Representation Use OWL ontologies to capture semantics and structure of data formats Proven technique TAMBIS Project [Stevens et al 2003] Complex query formulation over diverse information sources SEEK Project [Bowers and Ludascher 2004] An ontology-driven framework for data transformation in scientific workflows
  • 18. Implementation Type Adaptor approach: Using OWL as intermediate representation Transformation Technology: Using bespoke mapping language FXML-M Registry Technology: GRIMOIRES Advertise Discover
  • 19. Mapping Mechanics <S> <X>foo</X> <X>bar</X> </S> <D> <Y>foo</Y> <Y>bar</Y> </D> Source Document Destination Document m 1 : S/X -> D/Y m 2 : X/$ -> Y/$ Mappings
  • 20. Mapping Mechanics S X “ foo” S/* S/* xsd:string xsd:string X “ bar” D Y “ foo” D/* D/* xsd:string xsd:string Y “ bar” m 1 : S/X -> D/Y m 2 : X/$ -> Y/$
  • 21. Example M-Binding <binding xmlns=&quot;http://www.ecs.soton.ac.uk/~mns03r/mapping/example&quot; xmlns:sns=&quot;http://jaco.ecs.soton.ac.uk/schema/source&quot; xmlns:dns=&quot;http://jaco.ecs.soton.ac.uk/schema/destination&quot;> <mapping id= &quot;1&quot; > <source match= &quot;sns:S/sns:X&quot; /> <destination create= &quot;dns:D[join]/dns:Y[branch]&quot; /> </mapping> <mapping id= ”2&quot; > <source match= &quot;sns:X/$&quot; /> <destination create= &quot;dns:Y[join]/$&quot; /> </mapping> </binding>
  • 22. Transformation Technology Bespoke Mapping Language (FXML-M) Declarative Statements map schema elements from source to destination Mappings are combined in an M-Binding Document Composable M-Bindings can include statements from other M-Bindings Predicate support (for complex relations) Asymmetric relations (one-to-many, many-to-one) Implementation (FXML-T) Consumes M-Bindings, schemas and source document Produces destination document
  • 23. Mappings with OWL Our Type Adaptor approach uses OWL for an intermediate representation But our transformation technology is XML to XML Solution, use canonical XML representation for OWL concept instances OWL Instance Schema Automatically generated from OWL ontology Concept hierarchies calculated Elements for each concept and property
  • 24. Bio Example <ddbj:DDBJXML> <ddbj:ACCESSION>AB000059</ddbj:ACCESSION> <ddbj:FEATURES> <ddbj:source> <ddbj:location>1..1755</ddbj:location> <ddbj:qualifiers name=&quot;isolate&quot;>Som1</ddbj:qualifiers> <ddbj:qualifiers name=&quot;lab_host&quot;>Felis domesticus</ddbj:qualifiers> </ddbj:source> </ddbj:FEATURES> </ddbj:DDBJXML> <ont:Sequence_Data_Record> <ont:accession_id>AB000059</ont:accession_id> <ont:has_feature> <ont:Feature_Source> <ont:isolate>Som1</ont:isolate> <ont:lab_host>Felis domesticus</ont:lab_host> <ont:location> <ont:Feature_Location> <ont:start>1</ont:start> <ont:end>1755</ont:end> </ont:Feature_Location> </ont:location> </ont:Feature_source> </ont:has_feature> </ont:Sequence_Data_Record> Simple One-to-One Element and literal Many-to-Many Split literal value Predicate evaluation
  • 25. Example M-Binding <binding xmlns=&quot;http://www.ecs.soton.ac.uk/~mns03r/mapping/ddbj-to-ont-mapping&quot; xmlns:sns=&quot;http://jaco.ecs.soton.ac.uk/schema/DDBJ&quot; xmlns:dns=&quot;http://jaco.ecs.soton.ac.uk/ont/sequencedata&quot;> <mapping id=&quot;1&quot;> <source match=&quot;sns:DDBJXML/sns:ACCESSION&quot;/> <destination create=&quot;dns:Sequence_Data_Record[join]/dns:accession_id[branch]/&quot;/> </mapping> <mapping id=“2”> <source match=&quot;sns:ACCESSION/$&quot;/> <destination create=&quot;dns:accession_id[join]/$&quot;/> </mapping> <mapping id=”3&quot;> <source match=&quot;sns:DDBJXML/sns:FEATURES/sns:source&quot;/> <destination create=&quot;dns:Sequence_Data_Record[join]/dns:has_feature[branch]/ dns:Feature_Source[branch]&quot;/> </mapping> <mapping id=”4&quot;> <source match='sns:source/sns:qualifiers[sns:qualifiers/sns:name/$ = &quot;lab_host&quot;]'/> <destination create=&quot;dns:Feature_Source[join]/dns:lab-host[branch]&quot;/> <mapping> <source match=&quot;sns:qualifiers/$&quot;/> <destination create=&quot;dns:lab-host[join]/$&quot;/> </mapping> </mapping> <mapping id=”5&quot;> <source match=&quot;sns:location/$^[^.]+&quot;/> <destination create=&quot;dns:Location[join]/dns:start[branch]/$&quot;/> </mapping> </binding>
  • 28. Example WSDL <?xml version='1.0' encoding='UTF-8'?> <definitions name='DDBJ-to-sequencedata' targetNamespace='http://jaco.ecs.soton.ac.uk:8080/Bindings/DDBJ-to-sequencedata' ... xmlns='http://schemas.xmlsoap.org/wsdl/'> <types> <xsd:schema targetNamespace='http://jaco.ecs.soton.ac.uk:8080/Bindings/DDBJ-to-sequencedata'> <xsd:import namespace='http://jaco.ecs.soton.ac.uk/schema/DDBJ'/> <xsd:import namespace='http://jaco.ecs.soton.ac.uk/ont/sequencedata'/> </xsd:schema> </types> <message name='sns#DDBJXML-to-dns#Sequence_Data_Record-IN'> <part name='in' element='sns:DDBJXML'/> </message> <message name='sns#DDBJXML-to-dns#Sequence_Data_Record-OUT'> <part name='in' element='dns:Sequence_Data_Record'/> </message> <portType name='TranslationPortType'> <operation name='sns#DDBJXML-to-dns#Sequence_Data_Record'> <input name='sns#DDBJXML-to-dns#Sequence_Data_Record-IN'/> <output name='sns#DDBJXML-to-dns#Sequence_Data_Record-OUT'/> </operation> </portType> <binding name='TranslationBinding' type='tns:TranslationPortType'> <operation name='sns#DDBJXML-to-dns#Sequence_Data_Record'> <input name='sns#DDBJXML-to-dns#Sequence_Data_Record-IN'/> <output name='sns#DDBJXML-to-dns#Sequence_Data_Record-OUT'/> </operation> </binding> <service name='TranslationService'> <port name='TranslationPort' binding='tns:TranslationBinding'> <fxml:binding location='http://jaco.ecs.soton.ac.uk/binding/DDBJ-to-sequencedata.xml'/> </port> </service> </definitions>
  • 29. Conclusions Type Adaptors come in many flavours, all can be described using WSDL GRIMOIRES can be used to advertise and discover WSDL Type Adaptors We have shown this to work with our own Mapping Language (FXML-M) Practical Scalable
  • 34. GRIMOIRES Performance 1.81 Total Mediation 0.27 Serialisation Translation 0.23 Serialisation Discovery 0.62 Jena Mediation 0.47 Realisation Translation 0.22 RealisationDiscovery 2.50 DDBJ Execution Average Time (S) Activity

Editor's Notes

  • #2: The presentation concentrates on the problem of workflow harmonisation that arises when service providers use different representations for conceptually equivalent information.