Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Kerstin Schlangen Geändert vor über 10 Jahren
1
Beschreibung von Web Services Seminar Parallele und Verteilte Systeme
im Semantic Web Armin Stein Seminar Parallele und Verteilte Systeme Services Computing und Service-Oriented Architectures
2
Vorgehen Motivation Beschreibung von Elementen (RDF/S)
Ontologien (OWL) Topic Maps (XTM) Umfassender Ansatz (OWL-S) Fazit Fragen Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit
3
Motivation Ziel des Semantic Web: Maschinenlesbarkeit der Inhalte
Daraus „Implizite Information“ Vision der Nutzung von Web Services: Automatisches Auffinden Automatischer Aufruf Automatische Anordnung und Automatische Kommunikation Voraussetzung: Maschinenlesbarkeit und vor allem Maschinenverständlichkeit Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit
4
Beschreibung (RDF) RDF Verwendung: RSS (Nachrichten etc.)
Einfache Beziehung zwischen Objekten Tripel der Art Subjekt – Prädikat – Objekt <rdf:RDF xmlns:rdf=" xmlns:dc=" <rdf:Description rdf:about=" <dc:title>Resource Description Framework (RDF)</dc:title> </rdf:Description> Verwendung: RSS (Nachrichten etc.) Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit RDF – RDF/S
5
Beschreibung (RDF/S) RDF/S Erweitertes Vokabular Klassenbildung
Hierarchisierung <rdfs:Class rdf:ID="Person"> <rdfs:comment>Personenklasse</rdfs:comment> <rdfs:subClassOf rdf:resource=" </rdfs:Class> <rdfs:Class rdf:ID="Student"> <rdfs:comment>Studentenklasse</rdfs:comment> <rdfs:subClassOf rdf:resource="#Person"/> Abfrage durch Parsen, Graphen-Erstellung… Schön, aber: Was ist ein „Student“? Eine „Person“!… Was ist eine „Person“…? (vielleicht juristisch?) Bereich der Wort-Domäne Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit RDF – RDF/S
6
Ontologien (OWL) Aus der Philosophie: „Sein“ als Gesprächsgegenstand
Definition von Gegenständen und Beziehungen Datei auf dem Server, die interpretiert werden kann OWL = Web Ontology Language. Bildung einer Ontologie: Aus der Ontologie <owl:Class rdf:ID="PastaWithWhiteSauce"> <rdfs:subClassOf rdf:resource="#Pasta" /> <owl:disjointWith rdf:resource="#PastaWithRedSauce" /> </owl:Class> Verknüpfbarkeit! Konkrete Realisierung als Expertensystem vorhanden Durch Verknüpfungen Verständnis über das „Sein“ Umsetzung beispielsweise als Topic Map Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit
7
Topic Maps (XTM) Anlehnung an Back-of-Book-Index, XmlTopicMaps Topics
„Dinge“, die mit einem Namen belegt werden Aufnahme in die Map abhängig von der Präferenz des Betrachters Können durch Klassen hierarchisiert werden „Münster“ Occurrences Realisierung eines Topics „ „ Auch Daten: „Einwohner: “ Associations Verbinden Topics untereinander oder Topics und Occurrences Müssen nicht hierarchisch sein (Busverbindung) Rath (2003), S. 9. Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit TAO – Beispiel
8
Topic Maps (XTM) Warum Topic Map? Web Services?
In Anlehnung an Rath (2003), S. 16. Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit TAO – Beispiel
9
Topic Maps (XTM) Substitut für UDDI?
Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit TAO – Beispiel
10
Konzept (OWL-S) - Übersicht
Umfassender Ansatz W3C Member Submission 22. November 2004 Abgesehen vom Namen wohlwollend aufgenommen Nutzung von RDF/S, OWL und WSDL Aufteilung in vier (fünf) Dateien Instanziierbare Hauptklasse, verweist auf: Service Profile Service Process Model Service Grounding WSDL – Beschreibung Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit Übersicht – Hauptklasse – Profile – Process Model – Grounding
11
Konzept (OWL-S) - Hauptklasse
Wird instanziiert für jeden Service-Aufruf Beispiel Fluggesellschaft „Bravo Air“ <owl:Ontology rdf:about=""> <!-- Versionsinformation und Kommentar -->... <owl:imports rdf:resource="&service;" /> <owl:imports rdf:resource="&ba_profile;" /> <owl:imports rdf:resource="&ba_process;" /> </owl:Ontology> Profile, Process und Grounding <service:Service rdf:ID="BravoAir_ReservationAgent"> <service:presents rdf:resource="&ba_profile;#Profile_BravoAir_ReservationAgent"/> <service:describedBy rdf:resource="&ba_process;#BravoAir_ReservationAgent_ProcessModel"/> <service:supports rdf:resource="&ba_grounding;#Grounding_BravoAir_ReservationAgent"/> </service:Service> </rdf:RDF> Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit Übersicht – Hauptklasse – Profile – Process Model – Grounding
12
Konzept (OWL-S) – Profile
Informationen über das anbietende Unternehmen Allgemeine (textuelle) Informationen über den Service (Wie geschaffen für UDDI!) <profileHierarchy:AirlineTicketing rdf:ID="Profile_BravoAir_ReservationAgent"> <service:presentedBy rdf:resource="&ba_service;#BravoAir_ReservationAgent"/> <profile:has_process rdf:resource="&ba_process;#BravoAir_Process"/> <profile:serviceName>BravoAir_ReservationAgent</profile:serviceName> <profile:textDescription>…</profile:textDescription> … Hier auch Qualitätseinschätzung des Services (durch den Provider) Einordnung in Standards (bspw. NAICS) <profile:hasInput rdf:resource="&ba_process;#DepartureAirport_In"/> <profile:hasOutput rdf:resource="&ba_process;#AvailableFlightItineraryList_Out"/> <profile:hasEffect rdf:resource="&ba_process;#HaveSeat"/> </profileHierarchy:AirlineTicketing> Sorgfältige Auswahl der Informationen! Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit Übersicht – Hauptklasse – Profile – Process Model – Grounding
13
Konzept (OWL-S) – Process Model
Losgelöst vom Programmcode des Web Services Eher zu betrachten als „Business Process“ atomic-, composite- und simple-Prozesse <process:CompositeProcess rdf:ID="BravoAir_Process"> <rdfs:label>This is the top level process for BravoAir</rdfs:label> <process:composedOf> <process:Sequence> <process:components rdf:parseType="Collection"> <process:AtomicProcess rdf:about="#GetDesiredFlightDetails"/> <process:AtomicProcess rdf:about="#SelectAvailableFlight"/> <process:CompositeProcess rdf:about="#BookFlight"/> </process:components> </process:Sequence> </process:composedOf> </process:CompositeProcess> Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit Übersicht – Hauptklasse – Profile – Process Model – Grounding
14
Konzept (OWL-S) – Process Model
Definition der Ein- und Ausgaben <process:AtomicProcess rdf:ID="SelectAvailableFlight"> <process:hasInput rdf:resource="#PreferredFlightItinerary_In"/> <process:hasOutput rdf:resource="#AvailableFlightItineraryList_Out"/> </process:AtomicProcess> <process:Input rdf:ID="PreferredFlightItinerary_In"> <process:parameterType rdf:resource="&concepts;#FlightItinerary"/> </process:Input> <process:UnConditionalOutput rdf:ID="AvailableFlightItineraryList_Out"> <process:parameterType rdf:resource="&concepts;#FlightItineraryList"/> </process:UnConditionalOutput> Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit Übersicht – Hauptklasse – Profile – Process Model – Grounding
15
Konzept (OWL-S) – Grounding
Konkrete Realisierung Verknüpfung mit WSDL Grounding von OWL vergleichbar mit Binding von WSDL Benötigt WSDL-Binding Entnommen aus Abrufdatum: Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit Übersicht – Hauptklasse – Profile – Process Model – Grounding
16
Konzept (OWL-S) – Grounding
Beispiel: <message name="SelectAvailableFlight_Input"> <part name="preferredFlightItinerary" owl-s parameter="BravoAir:#preferredFlightItinerary_In"/> </message> <portType name="SelectAvailableFlight_PortType"> <operation name="SelectAvailableFlight_operation" owl-s process="BravoAir:#SelectAvailableFlight"> <input message="tns:SelectAvailableFlight_Input"/> <output message="tns:SelectAvailableFlight_Output"/> </operation> </portType> <grounding:WsdlGrounding rdf:ID="Grounding_BravoAir_ReservationAgent"> <service:supportedBy rdf:resource="&ba_service;#BravoAir_ReservationAgent"/> <!-- Mehrere Groundings für atomare Prozesse, im Speziellen: --> <grounding:hasAtomicProcessGrounding rdf:resource="#WsdlGrounding_SelectAvailableFlight"/> </grounding:WsdlGrounding> Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit Übersicht – Hauptklasse – Profile – Process Model – Grounding
17
Fazit Semantic Web durch Idee der Beschreibung geradezu geschaffen für die Unterstützung von Web Services OWL-S in Verbindung mit WSDL guter Ansatz zur vollständigen Beschreibung eines Web Services Nutzt vorhandene (vom W3C unterstützte) Sprachen wie RDF, OWL und WSDL Service Profile „UDDI-Enabled“, aber noch immer Eintragung „von Hand“ notwendig (nicht OWL-S-Problem!) Idee: „Web-Service-Suchmaschine“, Realisierung als Topic Map; Vorteil: Erweiterbarkeit, Durchsuchbarkeit Architektur eines Web Service und alternative Beschreibung: WSMO, WSML Jan Motivation – Beschreibung – Ontologien – Topic Maps – Umfassender Ansatz – Fazit
18
Literaturverzeichnis
Rath, Holger: The Topic Maps Handbook – White Paper. URL: – Abrufdatum: Martin, David; Burstein, Mark; Hobbs, Jerry; Lassila, Ora; McDermott, Drew; McIlraith,Sheila; Narayanan, Srini; Paolucci, Massimo; Parsia, Bijan; Payne, Terry; Sirin, Evren; Srinivasan, Naveen; Sycara, Katia: OWL-S: Semantic Markup for Web Services. URL: – Abrufdatum:
19
Fragen? ?
20
Beschreibung von Web Services Vielen Dank für die Aufmerksamkeit!
Das war… Beschreibung von Web Services im Semantic Web Armin Stein Vielen Dank für die Aufmerksamkeit!
21
Beispiel OWL 1/3 Gerüst <!DOCTYPE rdf:RDF [
<!ENTITY vin " > <!ENTITY food " > ]> <rdf:RDF xmlns ="&vin;" xmlns:vin ="&vin;" xml:base ="&vin;" xmlns:food="&food;" xmlns:owl =" xmlns:rdf =" xmlns:rdfs=" xmlns:xsd =" ... <owl:Ontology rdf:about=""> <rdfs:comment>An example OWL ontology</rdfs:comment> <owl:imports rdf:resource=" /food"/> <rdfs:label>Wine Ontology</rdfs:label> </owl:Ontology> </rdf:RDF> Gerüst
22
Beispiel OWL 2/3 Klassen- definition Werte- bereiche Restrik- tionen
<owl:Class rdf:ID="Person" /> <owl:Class rdf:ID="Mann"> <rdfs:subClassOf rdf:resource="Person" /> ... </owl:Class> <owl:Class rdf:ID="Alter" /> <owl:DatatypeProperty rdf:ID="wertAlter"> <rdfs:domain rdf:resource="#Alter" /> <rdfs:range rdf:resource="&xsd;positiveInteger"/> </owl:DatatypeProperty> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="&food;PotableLiquid" /> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasMaker" /> <owl:allValuesFrom rdf:resource="#Winery" /> </owl:Restriction> </rdfs:subClassOf> Klassen- definition Werte- bereiche Restrik- tionen
23
Beispiel OWL 3/3 Einbindung <owl:Class rdf:ID="Wine">
<owl:equivalentClass rdf:resource="&vin;Wine"/> </owl:Class>
24
Beispiel XTM Basename, Scope <?xml version="1.0"?>
<!DOCTYPE topicMap PUBLIC "-//TopicMaps.Org//DTD XML Topic Map (XTM) V1.0//EN" " <topicMap id="stadtfuehrer-deutschland“ xmlns:xlink=" <topic id="muenster"> <instanceOf> <topicRef xlink:href="#stadt"/> </instanceOf> <baseName> <scope><topicRef xlink:href="#german"/></scope> <baseNameString>Münster</baseNameString> </baseName> <scope><topicRef xlink:href="#latin"/></scope> <baseNameString>Monasterium</baseNameString> </topic> <topic id="stadt">...</topic> </topicMap>
25
Beispiel XTM Occurrence <topic id="muenster">
<baseName>...</baseName> <occurrence> <instanceOf> <topicRef xlink:href="#artikel"/> </instanceOf> <resourceRef xlink:href=" </occurrence> <topicRef xlink:href="#einwohner"/> <resourceData> </resourceData> </topic>
26
Beispiel XTM Association <association> <instanceOf>
<topicRef xlink:href="#busverbindung"/> </instanceOf> <member> <roleSpec><topicRef xlink:href="#linie"/></roleSpec> <topicRef xlink:href="#8"/> </member> <roleSpec><topicRef xlink:href="#haltestelle"/></roleSpec> <topicRef xlink:href="\#wolbeck"/> <topicRef xlink:href="#gremmendorf"/> </association>
27
Beispiel XTM Klassenbildung <association> <instanceOf>
<subjectIndicatorRef xlink:href= " </instanceOf> <member> <roleSpec><topicRef xlink:href="...#superclass"/></roleSpec> <topicRef xlink:href="#ortsteil"/> </member> <roleSpec><topicRef xlink:href="...#subclass"/></roleSpec> <topicRef xlink:href="#wolbeck"/> </association>
28
Beispiel WSDL 1/3 Elemente-Definition
<definitions name="StockQuote" ... <types> <schema targetNamespace=" xmlns=" <element name="TradePriceRequest"> <complexType> <all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <!-- element price entsprechend als Float --> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/>
29
Beispiel WSDL 2/3 Binding von Input/Output an soap
<portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document„ transport=" <soap:operation soapAction=" <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </binding>
30
Beispiel WSDL 3/3 <service name="StockQuoteService">
<documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location=" </port> </service> </definitions>
31
Beispiel OWL-S (Hauptdatei)
Service-Beschreibung <?xml version='1.0' encoding='ISO '?> <!DOCTYPE uridef[ <!-- Definition des Vokabulars (RDF, RDFS, XML, XMS, OWL) --> ]> <rdf:RDF...<!-- Definition der Namespaces -->...> <owl:Ontology rdf:about=""> ...<!-- Versionsinformation und Kommentar -->... <owl:imports rdf:resource="&service;" /> <owl:imports rdf:resource="&ba_profile;" /> <owl:imports rdf:resource="&ba_process;" /> </owl:Ontology> <service:Service rdf:ID="BravoAir_ReservationAgent"> <service:presents rdf:resource="&ba_profile;#Profile_BravoAir_ReservationAgent"/> <service:describedBy rdf:resource="&ba_process;#BravoAir_ReservationAgent_ProcessModel"/> <service:supports rdf:resource="&ba_grounding;#Grounding_BravoAir_ReservationAgent"/> </service:Service> </rdf:RDF>
32
Beispiel OWL-S (Profile 1/2)
Profil-Beschreibung <profileHierarchy:AirlineTicketing rdf:ID="Profile_BravoAir_ReservationAgent"> <service:presentedBy rdf:resource="&ba_service;#BravoAir_ReservationAgent"/> <profile:has_process rdf:resource="&ba_process;#BravoAir_Process"/> <profile:serviceName>BravoAir_ReservationAgent</profile:serviceName> <profile:textDescription> This service provides flight reservations based on the specification... </profile:textDescription> <profile:contactInformation> <actor:Actor rdf:ID="BravoAir-reservation"> <actor:name>BravoAir Reservation department</actor:name> <!--...actor,phone,fax, ,physicalAddress,webURL etc. --> </actor:Actor> </profile:contactInformation> <actor:Actor rdf:ID="BravoAir-information"> <!--möglicher weiterer Kontakt -->
33
Beispiel OWL-S (Profile 2/2)
Parameter-Definition <profile:serviceParameter> <addParam:GeographicRadius rdf:ID="BravoAir-geographicRadius"> <profile:serviceParameterName> BravoAir Geographic Radius </profile:serviceParameterName> <profile:sParameter rdf:resource="&country;#UnitedStates"/> </addParam:GeographicRadius> </profile:serviceParameter> <!-- Weitere Spezifikationen wie Qualitäts-Einschätzung oder --> <!-- Einordnung in unterschiedliche Kategorien wie NAICS oder UNSPSC --> <!-- Beschreibung von Input/Output/Prä-/Posteffekten --> <profile:hasInput rdf:resource="&ba_process;#DepartureAirport_In"/> <profile:hasOutput rdf:resource="&ba_process;#AvailableFlightItineraryList_Out"/> <profile:hasEffect rdf:resource="&ba_process;#HaveSeat"/> </profileHierarchy:AirlineTicketing>
34
Beispiel OWL-S (Process Model 1/2)
Prozess-Definition <process:CompositeProcess rdf:ID="BravoAir_Process"> <rdfs:label>This is the top level process for BravoAir</rdfs:label> <process:composedOf> <process:Sequence> <process:components rdf:parseType="Collection"> <process:AtomicProcess rdf:about="#GetDesiredFlightDetails"/> <process:AtomicProcess rdf:about="#SelectAvailableFlight"/> <process:CompositeProcess rdf:about="#BookFlight"/> </process:components> </process:Sequence> </process:composedOf> </process:CompositeProcess>
35
Beispiel OWL-S (Process Model 2/2)
Prozess-Eingabe/Ausgabe <process:AtomicProcess rdf:ID="SelectAvailableFlight"> <process:hasInput rdf:resource="#PreferredFlightItinerary_In"/> <process:hasOutput rdf:resource="#AvailableFlightItineraryList_Out"/> </process:AtomicProcess> <process:Input rdf:ID="PreferredFlightItinerary_In"> <process:parameterType rdf:resource="&concepts;#FlightItinerary"/> </process:Input> <process:UnConditionalOutput rdf:ID="AvailableFlightItineraryList_Out"> <process:parameterType rdf:resource="&concepts;#FlightItineraryList"/> </process:UnConditionalOutput>
36
Beispiel OWL-S (Grounding 1/4)
Parameter <-> Message: <message name="SelectAvailableFlight_Input"> <part name="preferredFlightItinerary" owl-s parameter="BravoAir:#preferredFlightItinerary_In"/> </message> <portType name="SelectAvailableFlight_PortType"> <operation name="SelectAvailableFlight_operation" owl-s- process="BravoAir:#SelectAvailableFlight"> <input message="tns:SelectAvailableFlight_Input"/> <output message="tns:SelectAvailableFlight_Output"/> </operation> </portType>
37
Beispiel OWL-S (Grounding 2/4)
Prozesse: OWL-S <-> WSDL <grounding:WsdlGrounding rdf:ID="Grounding_BravoAir_ReservationAgent"> <service:supportedBy rdf:resource="&ba_service;#BravoAir_ReservationAgent"/> <!-- Mehrere Groundings für atomare Prozesse, im Speziellen: --> <grounding:hasAtomicProcessGrounding rdf:resource="#WsdlGrounding_SelectAvailableFlight"/> </grounding:WsdlGrounding>
38
Beispiel OWL-S (Grounding 3/4)
Prozess <-> Operation Input <-> Message <grounding:WsdlAtomicProcessGrounding rdf:ID="WsdlGrounding_SelectAvailableFlight"> <grounding:owlsProcess rdf:resource="&ba_process;#SelectAvailableFlight"/> <grounding:wsdlOperation rdf:resource="#SelectAvailableFlight_operation"/> <grounding:wsdlInputMessage> <xsd:anyURI rdf:value= "&BravoAirGroundingWSDL;#SelectAvailableFlight_Input"/> </grounding:wsdlInputMessage> <grounding:wsdlInputs rdf:parseType="Collection"> <grounding:WsdlInputMessageMap> <grounding:owlsParameter rdf:resource= "&ba_process;#preferredFlightItinerary_In"/> <grounding:wsdlMessagePart> <xsd:anyURI rdf:value="&BravoAirGroundingWSDL; #preferredFlightItinerary"/> </grounding:wsdlMessagePart> </grounding:WsdlInputMessageMap> </grounding:wsdlInputs>
39
Beispiel OWL-S (Grounding 4/4)
Output <-> Message <grounding:wsdlOutputs rdf:parseType="Collection"> <grounding:WsdlOutputMessageMap> <grounding:owlsParameter rdf:resource="&ba_process; #availableFlightItineraryList_Out"/> <grounding:wsdlMessagePart> <xsd:anyURI rdf:value="&BravoAirGroundingWSDL; #availableFlightItineraryList"/> </grounding:wsdlMessagePart> </grounding:WsdlOutputMessageMap> </grounding:wsdlOutputs> <grounding:wsdlReference> <xsd:anyURI rdf:value= " </grounding:wsdlReference> </grounding:WsdlAtomicProcessGrounding>
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.