Changes between Version 31 and Version 32 of SemanticWebServices

Show
Ignore:
Timestamp:
2009/03/20 11:27:07 (15 years ago)
Author:
rvos
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SemanticWebServices

    v31 v32  
    3232 * We have asked Oswaldo to suggest which WABI services he thinks are most interesting/useful for his integration with the Spanish INB, and we will wrap these services during the hackathon as SADI and/or Moby services. 
    3333 
    34 === Semantic web services === 
     34= Semantic web services = 
    3535The holy grail of web service interoperability is hampered along three axes: syntax, semantics and interface. In terms of core data syntax, bioinformatics tools consume and produce data in many different formats, some of which are loosely defined syntactically (e.g. legacy flat file formats). In addition, the semantics of what we are trying to do with data, and what we mean by encoding data in a certain way, are often loosely defined. Many file formats are abused and overloaded to add semantics to fields that weren't intended for that (e.g. in comments, definition lines, key/value fields). Lastly, there is a proliferation of interfaces, each of which probably make sense on their own (e.g. RESTful APIs) but they all aren't interoperable in a way that a machine can make sense of by itself. By adopting common standards to define syntax, semantics and interface, different service providers will be able to promote interoperability. Hence, this subgroup consists of people discussing the application of such technologies as WSDL, SAWSDL, OWL, RDF/XML (and other XML tools, i.e. XML schema, transforms). 
    3636In addition to these technical arguments, there are also good philosophical arguments for formalizing our conception of the world. For example, as a researcher, this provides a formal way of sharing your knowledge with other people, thereby promoting reproducibility. 
    37 === Contributing technologies === 
    38 ==== RDF ==== 
     37== Contributing technologies == 
     38=== RDF === 
    3939[http://www.w3.org/RDF/ RDF] assumes that anything in the world can be described in triples, i.e. statements consisting of subject, predicate, object. [http://www.w3.org/TR/rdf-syntax-grammar/ RDF/XML] is just one serialization of the concept of triples (other ways are [http://www.w3.org/DesignIssues/Notation3 N3], [http://www.json.org/ JSON], [http://www.w3.org/TR/rdfa-syntax/ RDFa] etc.). An RDF/XML document imports at least two namespaces: rdf and [http://www.w3.org/TR/rdf-schema/ rdfs].  
    40   * Simple example: rdf:Description element defines the subject, rdf:about attribute defines a resource that is the subject. rdfs:label, for example, attaches a human readable label to a subject. 
     40==== Simple example ====  
     41rdf:Description element defines the subject, rdf:about attribute defines a resource that is the subject. rdfs:label, for example, attaches a human readable label to a subject. 
    4142 
    4243XML representation of RDF: 
     
    6566}}} 
    6667 
    67  * Example with more namespaces: subject is now defined on element foaf:Person (again by rdf:about), subject has multiple predicates: foaf:name (his name), foaf:page (which in turn encloses another object: foaf:Document => dc:title => literal) 
     68 ==== Example with more namespaces ====  
     69subject is now defined on element foaf:Person (again by rdf:about), subject has multiple predicates: foaf:name (his name), foaf:page (which in turn encloses another object: foaf:Document => dc:title => literal) 
    6870 
    6971XML representation of RDF: 
     
    9698}}} 
    9799 
    98  * Real example: a set of triples describing Tim Berners-Lee using foaf ([http://www.foaf-project.org/ Friend of a Friend]), dc ([http://dublincore.org/ Dublin core]), rss ([http://en.wikipedia.org/wiki/RSS_(file_format) Really Simple Syndication]), rdfs. 
     100==== Real example ====  
     101a set of triples describing Tim Berners-Lee using foaf ([http://www.foaf-project.org/ Friend of a Friend]), dc ([http://dublincore.org/ Dublin core]), rss ([http://en.wikipedia.org/wiki/RSS_(file_format) Really Simple Syndication]), rdfs. 
    99102 
    100103XML representation of RDF: 
     
    150153}}} 
    151154 
    152  * Biological example: a !UniProt record: [http://www.uniprot.org/uniprot/P47989.rdf http://www.uniprot.org/uniprot/P47989.rdf] 
    153 ==== OWL ==== 
     155==== Biological example ==== 
     156a !UniProt record: [http://www.uniprot.org/uniprot/P47989.rdf http://www.uniprot.org/uniprot/P47989.rdf] 
     157=== OWL === 
    154158While RDF just defines triples, [http://www.w3.org/TR/owl-features/ OWL] (Web Ontology Language) allows for defining classes of things, as opposed to opaque resources, for subjects (class), predicates (property) and objects (class). The previous examples that included things such as foaf:Person were using instances of classes from OWL ontologies. 
    155159 * Simple example: an OWL ontology that describes a single class defined by duck-typing - anything belongs to !CaffeineMetabolismParticipant if its value for isParticipantIn is the KEGG pathway for caffeine metabolism. 
    156 ==== SAWSDL ==== 
     160=== SAWSDL === 
    157161Web services interfaces are described using web service description language ([http://www.w3.org/TR/wsdl WSDL]). In WSDL documents, semantic web services want to define the semantics of their inputs, outputs  and services. This is done using [http://www.w3.org/2002/ws/sawsdl/ SAWSDL], which provides for the attributes modelReference (which defines the OWL class), liftingSchema (which links to an  [http://www.w3.org/TR/xslt xslt] that lifts the  [http://www.w3.org/XML/ xml] syntax into rdf) and loweringSchema (which links to an xslt that converts the rdf back to xml). 
    158 === Implementing a semantic web service === 
     162== Implementing a semantic web service == 
    159163Assuming you have a web service that consumes and produces xml and that is described using a WSDL, here are the steps you would need to take: 
    160164 * create a mapping, conceptually, between your xml and relevant owl classes and properties (this involves searching currently published ontologies) 
     
    163167 * also define how the input and output can be lowered from rdf/xml to your xml by pointing to the rdf=>xml stylesheet file in the loweringSchema attribute 
    164168 * for the simpleTypes and complexTypes in the inputs and outputs, define which owl classes they map onto using the modelReference attribute, which points to a class uri. 
    165 === Resources === 
     169== Resources == 
    166170 * [http://evolutionaryontology.org CDAO] 
    167171 * [http://evoinfo.nescent.org EvoInfo]