Semantik und Web Services: Vokabulare und Ontologien

Wolfgang Dostal, Mario Jeckle und Werner Kriechbaum
Erschienen in der Ausgabe 3/2004, Seiten 51--54, der Zeitschrift Java Spektrum

Bedeutung zu transportieren ist das grundlegende Ziel einer Kommunikation. Dabei hat jeder schon erleben müssen, dass die eigenen gedanklichen Verknüpfungen zwischen den verwendeten Worten und den damit einhergehenden Vorstellungen beim Kommunikationspartner nicht notwendigerweise reproduzierbar sind. In Alltagssituationen wie dem Überqueren einer Kreuzung oder vergleichbar stark reglementierten Vorgängen, besteht kaum Klärungsbedarf über die Bedeutung der Zeichen bzw. Vokabeln. Treffen indes Kommunikationspartner in einem Kontext aufeinander, der weniger stark reglementiert oder unterschiedlich interpretierbar ist, so muss ein erheblicher Kommunikationsanteil dazu aufwendet werden, um die Vokabulare und dahinterstehende Bedeutungen gegeneinander abzugleichen.

Im vorangegangenem zweiten Artikel dieser Serie haben wir beschrieben, wie mit Hilfe des Resource Description Frameworks (RDF) eine maschinenauswertbare Semantikdarstellung erstellt werden kann. Dazu stellt dessen Spezifikation einen überschaubaren abstrakten Satz von Vokabeln zur Verfügung. In der Regel ist dieses jedoch nicht ausreichend, um die Sachverhalte eines Anwendungsgebiets (Domäne) hinreichend aussagekräftig zu beschreiben. Deshalb stellt RDF mit RDF-Schema (RDFS) ein zusätzliches Konzept zur Verfügung, welches es erlaubt eigene Vokabulare zu definieren und diese wiederum mittels RDF auszudrücken.

Allerdings zeigt die Erfahrung, dass es organisatorisch und politisch nahezu aussichtlos ist eine Übereinkunft hinsichtlich eines global gültigen Vokabulars zu etablieren, auf das alle Kommunikationspartner zurückgreifen. Um die Anforderung der losen Kopplung aus der Service-orientierten Architektur (SOA) nicht aufgeben zu müssen, wird daher ein Konzept benötigt, mit dem es möglich ist, eigenständig lokal definierte Vokabulare gegeneinander abgleichen zu können. Im Rahmen dieses Artikels werden wir den W3C-Ansatz der Web-Ontologien (OWL) vorstellen, welche sich zum Ziel setzen einen Beitrag zur Lösung dieser Herausforderung zu leisten. Dabei beschreibt eine Ontologie, vereinfacht formuliert, wie Strukturbestandteile verschiedener Vokabulare aufeinander abzubilden sind.

Beginnend wird aufgezeigt, welche Schwierigkeiten zu Tage treten können, wenn verschiedene Domänen eigene als Vokabulare dienende RDF-Instanzen definieren. Die zentrale Forderung der syntaktischen Uniformität hinsichtlich der Beschreibungssyntax von Identifikatoren auf Basis der IETF RFC 2396 haben wir in diesem Zusammenhang bereits im vorangegangenen Artikel dargestellt.

back to top   Identifikatoren und RDF

 

Die zentrale Aufgabe der Domänenexperten bleibt die Bildung von eindeutigen Identifikatoren innerhalb eines Vokabulars. Unabhängig davon, ob natürlichsprachliche Worte oder syntaktisch formalisierte URIs zum Verweis auf Begriffe --- also Konzepte, die jenseits der lautgestaltlichen Repräsentation existieren -- verwendet werden, müssen diese Idealerweise eineindeutig sein. Erst die Erfüllung dieser Forderung, welche dem Wunsche nach der Verfügbarkeit genau einer Benennung für einen abstrakten Sachverhalt und gleichzeitig dem Angebot genau eines identifizierenden Wortes für jeden Sachverhalt gleichkommt, bildet die Voraussetzung austauschbarer Semantikbeschreibungen.

Angewandt auf die Bereitstellung einer korrekt in eindeutiger Weise durch eine Maschine verwertbaren Beschreibung semantischer Eigenschaften eines Web Service bedeutet dies, daß der jeweilige Anbieter nicht nur dieselbe Syntax (etwa RDF/XML) verwenden muß, sondern die Beschreibung derselben Konzepte auch durch dieselben Worte (bzw. Identifikator) erfolgen muß, die alle anderen Kommunikationspartner wählen. Übertragen auf das alltägliche Leben würde dies bedeuten, dass alle Beteiligten die selbe Sprache verwenden und durch das selbe Alphabet und Grammatik ihre Vorstellungen formulieren. Darüber hinaus müsste gefordert werden, dass alle Kommunizierenden mit einem Wort (Begriff) das selbe Konzept verbinden.

Augenscheinlich kann diese Forderung für mehr als einen einzigen Kommunikationsteilnehmer kaum erfüllt werden. Und auch in Selbstgesprächen entsteht -- wie in [Tol03] mit der Figur des Gollum eindrucksvoll gezeigt -- mitunter der Bedarf nach Klärung der genauen Begriffsbedeutung(1). Daher unternimmt weder RDF, noch die darauf aufbauenden Standards, den Versuch die Beschreibungsmöglichkeiten dergestalt einzuschränken. Vielmehr wird jeder Anwender ausdrücklich dazu ermutigt die Begrifflichkeit seiner Domäne beizubehalten und zur Beschreibung der gewünschten Semantikzusammenhänge zu verwenden. Allerdings ist auf dieser Basis die Eindeutig- und Einheitlichkeit der entstehenden Beschreibungen zwischen den Domänen nicht mehr sichergestellt. So können verschiedene RDF-Instanzen dieselben Sachverhalte in unterschiedlicher Weise, d.h. durch Wahl verschiedener Identifikatoren, ausdrücken.

Listing 1RDF/XML-Beschreibung eines Web-Dienstes
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:sws="urn:example.com/sws#">
   <rdf:Description rdf:about="urn:uddi-org:api_v3#businessService">
      <rdf:type rdf:resource="urn:myServices#Rechnung"/>
         <sws:WSDLRef>http://www.example.com/9437.wsdl</sws:WSDLRef>
         <sws:Addition>...</sws:Addition>
         <sws:Substraktion>...</sws:Substraktion>
         <sws:Multiplikation>...</sws:Multiplikation>
         <sws:Division>...</sws:Division>
   </rdf:Description>
</rdf:RDF>
Listing 2Semantisch äquivalente Beschreibung eines gleichwertigen Web-Dienstes
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:ser="urn:example.org/ser#"
	xmlns:x="urn:myServices#">
	<x:Calculator rdf:about="urn:uddi-org:api_v3#businessService">
		<ser:InterfaceRef rdf:parseType="Resource">
     		<rdf:value>http://www.example.com/9437.wsdl</rdf:value>
	 	</ser:InterfaceRef>
      <ser:ArithGrFkt>...</ser:ArithGrFkt>
   </x:Calculator>
</rdf:RDF>

Die Gegenüberstellung der RDF-Instanzen aus Listing 1 und 2 zeigt drei der auftretenden Problem bei der Semantikbeschreibung anhand eines einfachen Dienstes. Der Dienst unseres Beispiels stellt die vier einfachen arithmetischen Grundrechenoperationen zur Verfügung und expliziert die angebotenen Schnittstellen durch eine WSDL-Beschreibung, die in der RDF-Beschreibung referenziert wird.

Auf den ersten Blick fallen die strukturellen Unterschiede der semantisch äquivalenten RDF-Aussagen ins Auge. So wählen beide Dienste verschiedene Elementnamen für das Element welches das rdf:about-Attribut enthält, referenzieren unterschiedliche WSDL-Schnittstellenbeschreibungen und bieten die Einzeldienste (Addition, Subtraktion, Multiplikation, Division bzw. ArtithGrFkt) an.

Allgemein gefaßt gehören diese Unterschiede drei Klassen an [Sei80]:

Wie die Beispiele in Listing 1 und 2 zeigen, kann RDF alleine nur einen Teil der Herausforderungen, die durch das Bereitstellen maschinen-lesbarer Semantikbeschreibungen auftreten bewältigen. Im Kern weist das zu lösende Problem zwei Aspekte auf:

back to top   RDF-Schema

 

RDF selbst ist, wie im zweiten Teil der Serie vorgestellt, lediglich ein Formalismus zur Repräsentation von Informationsbeschreibungen. Dieser ist -- anders als viele Spezifikationen des W3C -- nicht an eine bestimmte lexikalische Repräsentation gebunden, sondern kann durch verschiedene Serialisierungsmechanismen ausgedrückt werden. In Listing 1 und 2 wurde das RDF/XML-Format (d.h. die Darstellung von RDF als XML) gewählt, da diese Darstellung sich vergleichsweise harmonisch in die ebenfalls XML-basierten Web Services einfügen lässt.

Aufgrund der durch RDF bewusst nicht festgelegten syntaktischen Darstellung können im WWW eingeführte Grammatiksprachen zur Struktur- und Inhaltsbeschreibung wie die dem klassischen HTML zugrunde liegenden Dokumenttypdefinitionen (DTD) oder die im XML-Umfeld gebräuchlichen XML-Schemata nicht eingesetzt werden, da diese jeweils genau eine festgelegte Syntax zur Darstellung der Grammatikinstanzen vorsehen. Überdies sind sowohl DTDs als auch XML-Schemata einerseits zu restriktiv, andererseits in den formulierbaren Aussagen zu schwach, um RDF-Strukturen ausdrücken zu können.

So benötigen RDF-Beschreibungen, anders als Datenbeschreibungen, kein Typsystem und sehen daher keine Möglichkeit zur Restriktion eines auftretenden Inhalts vor. Zwar können Interpretationshinweise innerhalb des RDF/XML-Formates hinterlegt werden, die sich dem Typsystem aus XML-Schema Teil 2 bedienen, diese sind jedoch nur dokumentarisch und werden nicht zur Validierung des Dokuments herangezogen. Ebenso verhält es sich mit dem in den XML-Grammatiksprachen anzutreffenden Zwang zur Ausdetaillierung der syntaktischen Strukturrepräsentation, etwa durch Festlegung der Auftretensreihenfolge und Häufigkeit von Elementen sowie die Entscheidung für die Darstellung eines gegebenen Datums als Attribut oder Element. Für die Repräsentation ist diese Konkretisierung zwar essentiell, für die dargestellte Bedeutung ist dies jedoch unerheblich.

Gleichzeitig reicht der durch die angebotenen XML-Grammatiksprachen vorgesehene Umfang zur Beschreibung von RDF an vielen Stellen nicht aus. Während DTD und XML-Schema lediglich (semantikfreie) Attributeinbettungen und Kindelementbeziehungen vorsieht, verfügt RDF über eine Reihe spezialisierter Beziehungen zwischen den einzelnen Sprachelementen. In diesem Sinne bezeichnet das rdf:about-Attribut immer das Subjekt einer Aussage, bzw. deren Identifikator. Hierbei handelt es sich nicht nur um ein Attribut des Namens about im RDF-Namensraum, sondern um ein Sprachelement der Metaebene, dessen Bedeutung und lexikalische Benennung außerhalb der verwendenden RDF-Sprache und ebenso unabhängig von deren syntaktischer Repräsentation festgelegt ist.

Aus den geschilderten Gründen existiert für RDF keine normative DTD oder eine XML-Schemabeschreibung -- da diese beiden Grammatikmechanismen andere Ziele (konkret: strukturelle und inhaltliche Validierung) verfolgen. Vielmehr wird zur Beschreibung der Bedeutungsstrukturen von RDF auf RDF selbst zurückgegriffen. Die so unter der Bezeichnung RDF-Schema standardisierte RDF-basierte Beschreibungssprache für RDF-Strukturen gestattet es, die erwarteten Inhalte einer RDF-Beschreibung semantisch zu spezifizieren, ohne Aussagen über deren lexikalische Darstellung treffen zu müssen.

Listing 3 zeigt einen Ausschnitt der RDF-Schemabeschreibung des in Listing 2 verwendeten RDF-Vokabulars.

Listing 3RDF-Schema zur Beschreibung des Vokabulars für unser Beispiel aus Listing 2
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
	<rdf:Description rdf:about="urn:uddi-org:api_v3#">
		<rdfs:comment>Namensraum zur Beschreibung von Web-Diensten</rdfs:comment>
		<rdfs:seeAlso rdf:resource="http://www.jeckle.de/semanticWebServices/"/>
	</rdf:Description>
	<rdfs:Class rdf:about="urn:uddi-org:api_v3#businessService">
		<rdfs:isDefinedBy rdf:resource="urn:uddi-org:api_v3#"/>
		<rdfs:comment>Der Service</rdfs:comment>
	</rdfs:Class>
	<rdf:Property rdf:about="urn:example.org/ser#InterfaceRef">
		<rdfs:isDefinedBy rdf:resource="urn:example.org/ser#"/>
		<rdfs:label>InterfaceRef</rdfs:label>
		<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#anyURI"/>
		<rdfs:domain rdf:resource="urn:uddi-org:api_v3#businessService"/>
	</rdf:Property>
	<rdf:Property rdf:about="urn:example.org/ser#ArithGrFkt">
		<rdfs:isDefinedBy rdf:resource="urn:example.org/ser#"/>
		<rdfs:label>ArithGrFkt</rdfs:label>
		<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
		<rdfs:domain rdf:resource="urn:uddi-org:api_v3#businessService"/>
	</rdf:Property>
</rdf:RDF>

Das Schema definiert zunächst den Namensraum (urn:uddi-org:api_v3#) in dem sich alle selbsterstellten (d.h. nicht im RDF-Standard vorgesehenen) Aussagen befinden. Daran schließt sich mit Class die Definition einer Ressource an, die durch eine URI identifiziert wird. Zusätzlich sollte für jedes als Ressource dargestellte Subjekt die Zuordnung zum beherbergenden Namensraum durch das isDefinedBy-Prädikat angegeben werden.
Die in der RDF-Serialisierung zu einer Ressource zuordenbaren Prädikate werden als Property-Elemente dargestellt. Auch sie werden (durch das rdf:about-Attribut) durch eine URI identifiziert, und durch den im label-Element angegebenen Namen benannt. Dieser wird in der späteren Verwendung in einer RDF/XML-Instanz als Element- oder Attributnamen innerhalb desjenigen Namensraumes erwartet, der durch das isDefinedBy-Attribut festgelegt wird. Die Bindung eines Prädikats an ein definiertes Objekt erfolgt durch das rdfs:domain-Element, konkret die URI-Referenz in dessen rdf:ressource-Attribut.

Zusätzlich kann für jedes Prädikat ein Hinweis auf den in der RDF-Instanz erwarteten Datentyp gegeben werden. Dieser wird als URI im range-Attribut abgelegt. Hierbei illustriert Listing 3 eine Besonderheit RDF-Schemas: Es gestattet die Verwendung (durch URI-basierte Referenzierung) beliebiger Typsysteme neben den in RDFS vorgesehenen basalen Typen. So wird den später durch das Prädikat InterfaceRef zugänglichen Werten der Typ anyURI aus XML-Schema Teil 2 zugewiesen, während die ArithGrFkt als Literal typisiert beliebige Kombinationen aus Freitexten und/oder Zahlen aufnehmen kann.

Zusammenfassend gilt folgende Gegenüberstellung zwischen RDF-Grundprimtitve und RDFS-Beschreibung:

Auf diesem Wege schafft RDFS die Voraussetzung zur syntax- und serialisierungsneutralen Beschreibung der Struktur- und Inhaltscharakteristika eines RDF-basierten Vokabulars und ermöglicht es so Beschreibungstypen zu erstellen, welche gleichartige Aussagen über Ressourcen repräsentieren.

Allerdings löst RDF-Schema nur den strukturellen Teil der Herausforderung. Steht dem Beschreibenden eines Web-Dienstes ein bestehendes RDF-Schema nicht zur Verfügung oder besitzt er schlichtweg keine Kenntnis von dessen Existenz, so erzeugt er möglicherweise ein neues, welches eine vom bestehenden abweichende Terminologie einführt. So wird der in Listing 1 als WSDLRef benannte Verweis auf eine in WSDL formulierte Schnittstellenbeschreibung in Listing 2 als InterfaceRef bezeichnet.

back to top   Ontologien

 

Da die dezentrale Natur des WWW keinerlei Einschränkungen hinsichtlich der Formulierung von Vokabularen (RDF-Instanzen) und der zugehörigen Schemata (mit RDFS) trifft, ist das Entstehen heterogener „Beschreibungsinseln“ abzusehen und inhärent unvermeidlich. Dies stellt ein prinzipielles Problem bei der Kommunikation dar wie es bereits in [Hes72] beschrieben wurde.

Auch ein Lösungsansatz des sich abzeichnenden Dilemmas zwischen Freiheit der Formulierung einerseits und Verfügbarkeit für alle Kommunikationspartner andererseits wurde bereits in [Hes72] angedeutet. Der mehr formale Ansatz der Lösungsidee wird durch den W3C-Standard Web Ontologien (OWL) angestrebt.

Ein zentraler Schritt auf dem Weg zu maschinenverwertbarer Semantikbeschreibung ist die Verwendung von Vokabularen, wie sie durch RDFS formuliert werden können. Werden im Vokabular zur Beschreibung der Grundrechenarten ausschließlich die Begriffe Addition, Subtraktion, Multiplikation und Division, so sind einerseits Synonyme wie Zusammenzählen, Abziehen etc. von der maschinellen Verarbeitung ausgeschlossen. Andererseits können Vokabulare zusätzlich sicherstellen, dass alle Beschreibungen die gleiche Abstraktionsebene verwenden und ein Begriff auf einer höheren Abstraktionsebene -- wie im Beispiel ArithGrFkt (als Kurzform für arithmethische Grundfunktion) -- nicht zusammen mit Begriffen einer weniger abstrahierten Beschreibungsebene (Addition) verwendet werden.

Kombiniert man ein solches domänenspezifisches Vokabular von Begriffen mit einem Zusätzlichen von formalisierten Beziehungen zwischen den Begriffen, so entsteht eine Ontologie. Im Kern ist diese lediglich eine formale, maschinell auswertbare Definition der grundlegenden Konzepte eines Wissensgebietes sowie von Beziehungen zwischen diesen Konzepten [NM].

Damit können folgende Herausforderungen bei der Automatisierung von Diensten aus verschiedenen Domänen gelöst werden:

Listing 4 zeigt eine Ontologie, die mit Hilfe des W3C-Standards Web Ontology beschrieben wurde. Zusätzlich illustriert das Beispiel das Ineinandergreifen mit der RDF-Beschreibung. Das Dokument liefert die URI-basierten Identifikatoren, mit den ontologischen Beziehungsdefinition, welche anhand des Namensraumpräfixes owl kenntlich sind.

Listing 4Ontologie-basierte Definition der Potenzierung als mehrfache Multiplikation
<?xml version="1.0"?>
<!ENTITY ser  urn:example.org/ser#>
<!ENTITY sws  urn:example.com/sws#>

<rdf:RDF xmlns="urn:someOntology#"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
	xmlns:owl="http://www.w3.org/2002/07/owl#"
	xml:base="urn:someOntology#">
	<owl:Class rdf:ID="InterfaceRef">
		<owl:equivalentClass rdf:resource="WSDLRef"/>
		<rdfs:subClassOf>
		<owl:Class rdf:ID="WS-Artifact"/>
	</rdfs:subClassOf>
	</owl:Class>
	<owl:Class rdf:ID="WSDLRef">
		<owl:equivalentClass rdf:resource="&sws;WSDLRef"/>
		<rdfs:subClassOf rdf:resource="WS-Artifact"/>
	</owl:Class>

	<owl:Class rdf:ID="&ser;Potenzierung">
		<rdfs:subClassOf>
			<owl:Restriction>
				<owl:minCardinality
					rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality>
			<owl:onProperty>
				<owl:ObjectProperty rdf:about="&sws;isMultiplication"/>
				</owl:onProperty>
			</owl:Restriction>
		</rdfs:subClassOf>
	<rdfs:subClassOf>

	<owl:Class rdf:ID="&ser;höhereRechenarten"/>
		</rdfs:subClassOf>
	</owl:Class>

	<owl:Class rdf:ID="&sws;Addition">
		<rdfs:subClassOf rdf:resource="&sws;ArithGrFkt"/>
	</owl:Class>
	<owl:Class rdf:ID="&sws;Subtraktion">
		<rdfs:subClassOf rdf:resource="&sws;ArithGrFkt"/>
	</owl:Class>
	<owl:Class rdf:ID="&sws;Multiplikation">
		<rdfs:subClassOf rdf:resource="&sws;ArithGrFkt"/>
	</owl:Class>
	<owl:Class rdf:ID="&sws;Division">
		<rdfs:subClassOf rdf:resource="&sws;ArithGrFkt"/>
	</owl:Class>

	<owl:ObjectProperty rdf:ID="&ser;isMultiplication">
		<rdfs:domain rdf:resource="&ser;Potenzierung"/>
	<rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
	</owl:ObjectProperty>
</rdf:RDF>

Das Beispiel versieht das RDF-Prädikat isMultiplication des Subjekts Potenzierung mit der anwenderdefinierten Einschränkungsbeziehung (Restriction), dass jede Potenzierung durch mindestens eine Multiplikation dargestellt werden kann. Der Sonderfall x0 wurde hier aus Gründen der Übersichtlichkeit weggelassen.

Durch diesen Brückenschlag zwischen RDF-basierter Identifikation mittels URIs und der dezentralen Herstellung von Bedeutungszusammenhängen zwischen diesen können die zuvor isolierten Bedeutungsinseln verknüpft werden.

back to top   Zusammenfassung

 

Im zweiten und dritten Artikel unserer Serie wurden die Konzepte aus der Welt des Semantic Web vorgestellt, die zukünftig eine entscheidende Rolle in Service-orientierten Architekturen spielen können. Bedeutung kann eindeutig mit Hilfe von RDF beschrieben werden. Die Einführung eines Domänen-spezifischen Vokabulars erfolgt mittels von RDF-Schema. Der Abgleich von Aussagen verschiedner Domänen kann über Ontologien (OWL) erfolgen.

Jedoch ist es wichtig im Auge zu behalten, dass es sich bei der Einführung von Semantik nicht um die bloße Einführung einer neuen Technik handelt. Die eigentliche Herausforderung liegt in der „sinnvollen“ Definition von Vokabularen und Ontologien. Diese müssen einschränkend genug sein, um ein eindeutiges Ergebnis liefern zu können. Andererseits sollten Vokabulare hinreichend flexibel sein, um erweiterbar und nicht unvereinbar mit anderen Vokabularen sind.

Noch zu klären ist, wie Semantik in eine Service-orientierte Architektur eingebettet werden kann. Diese Diskussion werden wir im nächsten und abschließenden Artikel wiederum am Beispiel der Web Services führen.

back to top   Literatur und Links

 

back to top   Anmerkungen

 

(1) In diesem Fall hat die von Gollum mit Gollum vereinbarte Bedeutung des Eigentums-Begriffs erhebliche Auswirkungen für Sam und Frodo.

(2) Enthält eine Ontologie nur Beziehungen der Art isSubclassOf dann spricht man i. d. R. von einer Taxonomie.




separator line
Service provided by Mario Jeckle
Generated: 2004-06-11T07:11:40+01:00
Feedback Feedback       SiteMap SiteMap
This page's original location This page's original location: http://www.jeckle.de/semanticWebServices/vokont.html
RDF metadata describing this page RDF description for this page