Semantic Phyloinformatic Web Services Using the EvoInfo Stack Speaker: John Harney LSDIS Lab, Dept....
-
Upload
raymond-marshall -
Category
Documents
-
view
213 -
download
0
Transcript of Semantic Phyloinformatic Web Services Using the EvoInfo Stack Speaker: John Harney LSDIS Lab, Dept....
Semantic Phyloinformatic Web Services Using the EvoInfo Stack
Speaker: John HarneyLSDIS Lab, Dept. of Computer Science,
University of GeorgiaMentor(s): Hilmar Lapp, Rutger Vos
VDC/CCIT Meeting, August 2009
Project Goals Revisited – Problem Definition• Problem
– Scientific tools/services consume and produce data in many different, loosely defined formats
Result: Syntactic heterogeneities make it difficult for
Web services to be used, discovered, and interoperate
Project Goals Revisited – Semantic Web Services• Semantic Web
“a web of data that can be processed directly and indirectly by machines”
– Attaching semantic meaning to data on the web
• Improvements by adding Semantic Web principles to Web services?– Reusability– Discovery– Interoperability
Project Goals Revisited – SAWSDL• SAWSDL (Semantic Annotations for WSDL
and XML)– Recommendation proposed by the World Wide
Web Consortium (Aug 2007)– Allows Web service providers to attach
semantics to elements of their services• Links data structure to semantic concepts in a well
defined and universally understood ontology• Gives methods/rules to transform data level syntax
(e.g. XML) to their corresponding semantic level syntax
Project Goals Revisited – Solution• Solution
– Create a Web Service using the SAWSDL recommendation
• Proof of concept Web Service – Using a well defined stack of scientific data
formats and definitions, make an easily accessible, discoverable, and interoperable WS
Project Goals – Revised Solution• Provide a Web service (WS) that:
– Utilizes semantics introduced by the SAWSDL recommendation
– Provides flexibility in allowing Web service users to utilize various Web service protocols
• SOAP• REST
Tools/Technologies Required • What is needed to produce a semantic
Web service?– WS interface standards/protocols
• Well-defined (and most current) technical specifications of defining how the service interface should be designed
– WS creation tools/software • Containers that implement the service’s functionality
– Semantic Web tools/software
– Data schemas/definitions
Web Service Functionality
• The Web service provider:– Connects to some backend scientific data store – Applies (Create Read Update Delete) operations over
that data store– Be accessible using different protocols (i.e. SOAP or
REST)
Client Application
(REST or SOAP)
Input (data, url, etc)
Data StoreOutput
(data, resource url, etc)
Resource
“GET” Resource e.g. get
(Resource xxx)
return(Resource xxx)
Scientific data syntax
Service
Web Service Functionality – Interface Description• The Web service’s WSDL (Web Services Description
Language) file defines the interface of the service– Describes elements of the service
• SAWSDL extends WSDL so that semantics may be attached to the service description
• Two versions (1.1 vs 2.0)– WSDL1.1 – more widely used version today– WSDL2.0 - newer, more improved standard
• Less complex than 1.1• Allows access to a service via multiple Web service protocols
(i.e. SOAP or REST)
Web Service Functionality – Interface Description• The WSDL file is a simple
XML document– The expected data
schemas for service i/o are described in the types section of the document
– SAWSDL annotations are placed here to attach semantic concepts and schema transformation rules
Service.wsdl
<wsdl2:description> <wsdl2:types>
… <xs:element name="getResource"> … sawsdl:liftingSchemaMapping= “…nexml2cdao.xsl" sawsdl:loweringSchemaMapping=
“…cdao2nexml.lowering">
… </wsdl2:types>
… <wsdl2:interface> </wsdl2:interface> <wsdl2:binding> </wsdl2:binding> <wsdl2:service> </wsdl2:service><wsdl2:description>
Client Functionality• Invoking the service
– Client sends some request to the service– The Web service provider, however, expects a specific format as
input and it may not match the input given by the client
ServiceClient Application
(REST or SOAP)
Input (request data)
Service.wsdl2
Service Endpoint
Client Functionality• Invoking the service
– Service can be more accessible if we mapped, or “lifted” the input data to semantic level concepts
– The semantic level data can then be “lowered” back to a syntax that matches the expected input format of the service
ServiceClient Application
(REST or SOAP)
Input (XML data, URL,
etc) Service.wsdl2
Lifting Lowering
Semantic Level Data
Service Endpoint
Client Functionality• What is “Lifting” and “Lowering”?
Syntax Level:• Specific structure• Known by few
Semantic Level:• General• Widely understood and accepted• In the form of statements “triples” (RDF)
<state > <hasID> “s1” <state > <hasSymbol> “A”
<matrix> <state id = “s1” symbol = “A”>
</state> </matrix>
<matrix> <state> </state> <ID>s1</ID> <Symbol>A</Symbol> </matrix>
Client A
Client B
Lift
Lift
Lower
Lower
Client Functionality• Invoking the service
– Must get transformation file(s) from SAWSDL annotations first
ServiceClient
Application(REST or
SOAP)
LiftingSchemaService.wsdl
Parse WSDL with SAWSDL annotations
LoweringSchema
Client Functionality• Invoking the service
– Apply transforms to the incoming request data so that the service can be invoked
Service
Client Application
(REST or SOAP)
Input (XML data, URL,
etc) Service.wsdl
Matched input data structure
Apply loweringSchemaMapping &
liftingSchemaMapping
Requested Output (XML data, URL, etc)
Current Deliverables
• Used in conjunction with EvoInfo group’s stack of deliverables
• Divided into two parts– Service side
• WSDL2.0 file marked up with SAWSDL annotations • Lifitng and lowering transformation files• Basic service implementation
– Client side• SAWSDL parser• Code to perform transformations per the transformation files on the server
side• Basic client implementation
TODOs
• Service/Client have limited functionality– Not all operations have been implemented– Still need to test with a backend data store
• Currently only SOAP client uses SAWSDL – Can a REST client also take advantage of
SAWSDL?
Challenges/Obstacles
• Volume of software packages required– Software packages from many different resources were
needed
• Novelty– Service creation platforms (I used Apache Axis2 and
Apache Woden) are still new and developing– Few implementations of services use WSDL2.0 (most still
use 1.1)
Overall Contributions of the project• Created foundation for building:
– Web services accessible by multiple protocols
– A client application that utilizes semantic annotations via SAWSDL
– Lifting and lowering schema transformation files
Overall Impressions of the Project/Program• Project was more research-centric than
originally thought– WSDL2.0 & SAWSDL, although
recommendations, are relatively new and not widely used as of yet
• Not much support for the tools/ideas utilized
– Learned new tools/technologies (Axis2, Semantic Web, SVN, evolutionary informatics)
• VDC Summer internship program– Great program!– Well organized!
Thank you
Questions?
Demo
• Demo (time permitting)