Willkommen

Das ist mein Blog für die Zeit in Pittsburgh. Hier halt ich euch auf dem Laufenden was ich da drüben so treibe. Am besten ihr abonniert den Feed dann erhaltet ihr autmatische Benachrichtungen wenn es etwas neues gibt...

September 24, 2007

Improving the internet - oder was macht er eigentlich die ganze Zeit?

Nachdem sich so langsam abzeichnet was ich hier wirklich machen werde, mal eine kurze Einfuehrung...

Also ingesamt werde ich mich mit "Semantic Web Services" beschaeftigen. Ein normaler Web Service ist eine Anwendung/Methode die ueber das Internet aufgerufen werden kann. Momentan stellen viele Firmen ihre Dienste schon als Web Service bereit, und diese koennen dann z.B. von Software-Entwicklern in ihre Programme integriert werden... Semantic Web Services enthalten noch zusaetzliche semantische Informationen, wie z.B. welche Inputs benoetigt werden, was als Ergebnis raus kommt, welche Effekte der Service hat, etc, die in maschinenverstaendlicher Form ausgedrueckt werden. So ist es dann moeglich verschieden Web Services automatisch zu kombinieren um das angestrebte Ziel zu erreichen... Wikipedia sagt auch nicht viel mehr:

Unter Semantic Web Services (SWS) versteht man Web Services, die über ihre rein syntaktische Schnittstellenbeschreibung hinaus mit semantischen Inhalten angereichert werden, um ihr Auffinden (Discovery) , Auswählen (Selection), Ausführen (Invocation) und Komposition mit anderen sowie diverse andere Aspekte zu erleichtern.
Bisschen technischer (aus der Einleitung von OWL-S: Semantic Markup for Web Services):
The Semantic Web should enable greater access not only to content but also to services on the Web. Users and software agents should be able to discover, invoke, compose, and monitor Web resources offering particular services and having particular properties, and should be able to do so with a high degree of automation if desired. Powerful tools should be enabled by service descriptions, across the Web service lifecycle.
[...]
Efforts toward the creation of the Semantic Web are gaining momentum [1]. Soon it will be possible to access Web resources by content rather than just by keywords. A significant force in this movement is the development of a new generation of Web markup languages such as OWL[16] and its predecessor DAML+OIL [7,9]. These languages enable the creation of ontologies for any domain and the instantiation of these ontologies in the description of specific Web sites. These languages are also amenable to efficient reasoning procedures and thus reasoning applications can be built to automatically determine the logical consequences of the ontological statements.

Among the most important Web resources are those that provide services. By "service" we mean Web sites that do not merely provide static information but allow one to effect some action or change in the world, such as the sale of a product or the control of a physical device. The Semantic Web should enable users to locate, select, employ, compose, and monitor Web-based services automatically.

To make use of a Web service, a software agent needs a computer-interpretable description of the service, and the means by which it is accessed. An important goal for Semantic Web markup languages, then, is to establish a framework within which these descriptions are made and shared. Web sites should be able to employ a standard ontology, consisting of a set of basic classes and properties, for declaring and describing services, and the ontology structuring mechanisms of OWL provide an appropriate, Web-compatible representation language framework within which to do this.

Naja, das funktioniert auch soweit auch schon ganz gut. Was allerdings bisher fehlt ist die Fehlerbehandlung und -behebung... Und da komme ich bzw. wir (Roman und ich) ins Spiel. Wir ueberlegen uns momentan noch ein Konzept fuer eine robuste Lösung. Das interessante daran ist, dass wir durch die semantischen Informationen ganz neue Moeglichkeiten haben die Fehler zu behandeln und beheben. Normalerweise wenn nicht genau festgelegt ist was im Fehlerfall getan werden soll, bricht der Service fehlerhaft ab. Da in unserem Fall der ausführende Rechner weiß was für einen Service grad fehlgeschlagen ist, kann er nach Alternativen suchen oder schon getätigte Operationen rückgängig machen indem Services gesucht werden die Effekte umkehren. Das ist vorallem (oder eigentlich nur) bei zusammengesetzten Services interessant...

Unser (etwas langweiliges) Standard-Beispiel ist das Reise-Szenario. Man nehme an jemand will eine Reise planen und dafür einen Flug, ein Hotel und ein Mietwagen buchen. Schlägt die Reservierung für einen Mietwagen fehl, soll ja nicht die ganze Reise gecancelt werden, sondern in dem Fall wäre es am Besten einfach eine andere Autovermietung zu suchen (und falls das auch nicht klappt, vielleicht ganz auf den Wagen zu verzichten und ein Bus-Ticket für die Zeit zu kaufen). Anders verhält es sich jedoch mit dem Flug und dem Hotel. Bekomme ich keinen Flug zu meinem Zielort, brauche ich auch kein Hotel. Falls ich also schon ein Hotel gebucht habe, muss ich versuchen das ganze wieder rückgängig zu machen. Das wäre einfach wenn der Service Provider einfach eine solche Funktion zu Verfügung stellen würde, was aber bei den meisten Web Services nicht der Fall ist. Somit muss ein (oder mehrere) ander Services gefunden werden die die Effekte wieder rückgängig machen. Naja das sind zwei Beispiele wie wir versuchen die Fehler zu behandeln. Ziel ist es halt dass das alles automatisch passiert und möglichst robust ist... Bis jetzt wie gesagt ist es nur in unseren Köpfen drin, mal schaun ob wir es auch so hinbekommen.

Hoffe das macht Sinn für euch. Wenn ihr nicht so ganz schlau aus meinem Geschwafel geworden seid, hier noch paar Links die das ganze vielleicht verständlicher erklären:
Beschreibt die Idee vom Semantic Web generell ganz gut:
The web: some antics


Ausführliche Beschreibung des Semantic Web

1 Kommentar:

Anonym hat gesagt…

????:-)))))))