Entwicklung von Semantic Web Anwendungen - Komponenten und Entwicklungsschritte
Aus Winfwiki
Inhaltsverzeichnis |
1 Titel
| Name der Autoren: | Martin Ridder, Igor Korenberg |
| Titel der Arbeit: | "Entwicklung von Semantic Web Anwendungen - Komponenten und Entwicklungsschritte" |
| Hochschule und Studienort: | FOM Essen |
2 Abkürzungsverzeichnis
| Abkürzung | Bedeutung |
|---|---|
| DB | Datenbank |
| HTML | Hypertext Markup Language |
| OWL | Web Ontology Language |
| OWL-DL | Web Ontology Language - Description Logics |
| RDF | Resource Description Framework |
| RDFS | RDF Schema |
| SPARQL | SPARQL Protocol and RDF Query Language |
| SQL | Structured Query Language |
| W3C | The World Wide Web Consortium |
| XML | Extensible Markup Language |
3 Abbildungsverzeichnis
| Abb.-Nr. | Abbildung |
|---|---|
| 1 | Repräsentation der realen Welt |
| 2 | Zerlegung des Satzes in seine Bestandteile |
| 3 | Wissenpyramide nach Bodendorf |
| 4 | Architektur des semantischen Webs |
| 5 | Beispiel eines RDF-Triples |
| 6 | Abgrenzung RDF zu RDFS |
| 7 | Ausdrucksfähigkeit der Sprachen |
| 8 | Anwendungsarchitektur |
| 9 | RDF Graph der FOM Applikation |
| 10 | Modellierung mit Protégé |
4 Einleitung
Das Internet ist das größte Informationsmedium unserer Zeit mit ca. 2,5 Milliarden Webseiten. Täglich wächst dieses weltweite Netzwerk um eine unüberschaubare Menge an Informationenen. Diese sind häufig in HTML-Dokumenten hinterlegt, welche im Grunde nur Layoutinformationen im textuellen Format beinhalten. Die Verarbeitung wird beim Aufruf der Internetressource automatisiert von Maschinen übernommen und ermöglicht die Darstellung der Inhalte. Dabei spielt die Bedeutung der Inhalte für den Computer eine untergeordnete Rolle. Während es für die menschlichen Nutzer des WWW keinerlei Probleme bereitet die Semantik der darstellten Webinhalte zu erkennen, ist es für den Rechner prinzipiell nur eine Zeichenkette. Wenn es möglich wäre, die Bedeutung von Informationen durch Maschinen effizient zu erfassen und weiterzuverarbeiten, wären ungeahnt hochwertige Ergebnisse möglich. Diese Vision ist durch das Semantic Web möglich. Die Inhalte von Webseiten werden mit semantischen Metadaten versehen. Nutzer können Anfragen an spezielle Agenten stellen, welche selbstständig semantisch verknüpfte Informationen anzeigen und darüber hinaus nicht explizit enthaltene Informationen ableiten. Das Potential dieser Weiterentwicklung des World Wide Webs ist enorm. Nun stellt sich die Frage: Wie realisiert man eine Semantic Web-Anwendung?
Diese Fallstudie beleuchtet die Entwicklung einer Semantic Web-Anwendung. Die obengenannte Frage wird durch die Betrachtung der wichtigen Komponenten und der beispielhaften Erläuterung der Entwicklungsschritte beantwortet. Eine eigens erstellte Anwendung rundet die Fallstudie ab. Der Schritt von der Vision wird im Rahmen dieser wissenschaftlichen Arbeit Wirklichkeit.
5 Grundlagen
In diesem Kapitel wird der Unterschied zwischen einer Web-Anwendung und Semantic Web veranschaulicht. Weiterhin wird zwischen den Daten und dem Inhalt der Daten differenziert, womit das Grundverständnis für das semantische Web gelegt wird. Das Begreifen von Informationen ist für einen Computer nicht einfach, weshalb die Begriffe Syntax und Semantik näher betrachtet werden sollten. Zum Schluss des Kapitels werden technologische und kulturelle Grenzen des semantischen Webs aufgezeigt.
5.1 Web-Anwendung
Der Begriff Webanwendung bedeutet im Allgemeinen nichts anderes als eine Anwendung, die im Web lauffähig ist. Die Webanwendung läuft auf einem Webserver und der Benutzer kann mit einem Browser mit der Anwendung interagieren. Diese Bezeichnung entstammt der Zeit, als die Abwicklung von komplexen Applikationen noch nicht über das Internet stattfand. In dieser Zeit liefen typische Client-/Server-Anwendungen ausschließlich auf einem Client-PC sowie auf einem oder mehreren zentralen Servern. Die Client-Software musste speziell entwickelt und auf einem Computer installiert werden, damit dieser in der Lage war, mit der Hauptanwendung auf den Servern zu kommunizieren. Als dann erste Anwendungen im Internet bereitgestellt wurden, die über das Web mit einem Browser und ohne Installation von spezieller Software bedienbar waren, wurde der Begriff der Webanwendung geprägt. Somit bezeichnet eine Webanwendung einen Typ von Applikationen, der über eine Web-Oberfläche, oftmals in HTML, dem Benutzer zur Verfügung gestellt wird. Ein typisches Beispiel für eine aktuelle Webanwendung ist das so genannte Online-Banking[1]. Eine der wesentlichen Aufgaben von Webanwendungen besteht darin, bestimmte Inhalte und Informationen, für die sich der Benutzer interessiert, bereit zu stellen. Diese Inhalte können sowohl von der Webanwendung und den darunter liegenden Datenbanken selbst als auch von anderen Webanwendungen, mit denen die Webanwendung interagiert, angeboten werden. So ist eine riesige Menge von Informationen entstanden, die mittlerweile kaum zu bewältigen ist. In diesem Zusammenhang werden zwei Arten von Web-Inhalten unterschieden. Die erste Gruppe kann als „Surface-Web“ bzw. Oberflächenweb definiert werden, das jeder Internetuser als das öffentlich zugängliche und sichtbare Web mit den typisch statischen Webseiten kennt und das nur einen relativ kleinen Anteil des gesamten Webinhalts ausmacht. Anders ausgedrückt umfasst das Surface-Web alle Internetseiten, die als Ergebnisse einer Suchmaschinenanfrage angezeigt werden können. Das Deep-Web bzw. das Versteckte Web kennzeichnet die zweite Gruppe der Webarten und beinhaltet themenspezifische, webzugängliche Datenbanken und dynamisch generierte Webseiten. Das Deep-Web lässt sich in solche Inhalte, die nicht frei zugänglich sind und solche Inhalte, die von Suchmaschinen nicht gefunden werden, differenzieren. Ein sich daraus ergebendes Problem besteht darin, dass bestimmte Informationen zwar prinzipiell verfügbar wären, jedoch in der Fülle der vorhandenen Informationen nur sehr schwer gefunden werden können. Es wird geschätzt, dass die Informationen und Inhalte des Versteckten Webs 400 bis 550 Mal so groß wie des Oberflächen-Webs sind. Dabei ist die Größe des Surface-Webs nicht zu unterschätzen, es enthält 2,5 Milliarden HTML-Dokumente und wächst täglich um 7,3 Millionen neuer Seiten[2].
5.2 Semantic Web
Unter Semantic Web versteht man eine Erweiterung des World Wide Webs, die es ermöglichen soll, Informationen und Inhalte automatisch mittels Maschinen zu interpretieren und zu verknüpfen. So soll ein Computer nicht nur eine Reihenfolge von Buchstaben vergleichen, sondern „verstehen“, ob es sich bei dem Wort „Kohl“ um ein Gemüse oder den Ex-Bundeskanzler handelt. Das Ziel des Semantic Webs ist es, ein universales Medium für den Austausch von Datenmengen und Inhalten bereitzustellen. Die Vision des semantischen Webs äußert sich darin, die Bedeutung von Informationen für den Computer dienlich zu machen, so dass diese Informationen nicht nur von Menschen verstanden, sondern auch von Computern verarbeitet werden können [3]. Für eine funktionsfähige Umsetzung des Semantic Webs sind mehrere Voraussetzungen notwendig. Zum einen ist es nötig, einheitliche, offene Standards zur Beschreibung von Informationen zu verwenden, damit die Maschinen diese Informationen auswerten und verknüpfen können. Diese Standards müssen neben der klaren formalen Definition, Flexibilität und Erweiterbarkeit aufweisen, um unvorhergesehene Anwendungsfälle später noch integrieren zu können. Zudem werden Methoden und Funktionen gebraucht, die aus vorhandenen Inhalten neue Schlussfolgerungen entstehen lassen, womit der Nutzen des Semantic Webs enorm gesteigert werden würde[4].
5.3 Semantik vs. Syntax
Als Menschen sind wir es gewohnt, sprachliche Ausdrücke, Wortzusammensetzungen sowie ganze Sätze zu interpretieren und die Bedeutung der Aussagen zu verstehen, um danach zu handeln. Wir lernen schon mit der Muttersprache gewissen Gegebenheiten und Bedeutungen Worte zuzuweisen. In einem mechanischen System ist dies natürlich nicht so, Inhalte und Informationen lassen sich zwar formal darstellen, ihre Bedeutung lässt sich von einem Computer jedoch nicht erfassen. Man unterscheidet demnach zwischen der korrekten, grammatikalischen Zuordnung, um sprachliche Elemente zusammenzufügen – der Syntax – und der Interpretation der sprachlichen Zeichen – der Semantik[5]. Der Begriff Syntax stammt aus dem Griechischen und ist als Lehre vom Satzaufbau definiert. Gemeint ist die Sprachregelung bzw. die eindeutige Verständigungsweise, die aus Folge von Zeichen resultiert. Syntaktische Regeln umfassen beispielsweise die Interpunktion, die Schreibweise am Satzbeginn und das Zeichen am Satzende sowie Groß- und Kleinschreibungen. In Bezug auf Informatik beschreibt die Syntax Befehle, Zeichen und Zeichenreihen für Programmformulierungen. Unter Semantik versteht man die Lehre von der Wortbedeutung. In der Informationstechnologie bedeutet dies, dass die Programmzeilen eines Programms eine eindeutige Syntax und eine exakte Semantik aufweisen müssen, da Computer über keine Möglichkeiten zu Interpretationen verfügen. Aus diesem Grund werden die semantischen Sprachelemente anhand von Ziffern, Zeichen, und Befehlen abgebildet. In der Informatik besitzt die Semantik formalen Charakter und beinhaltet logische und algebraische Elemente, daher wird sie auch formale Semantik genannt[6]. Um das semantische Web zu realisieren, müssen zu den eigentlichen Informationsquellen semantische Metadaten, also die Daten zur Beschreibung der Quelle, hinzugefügt werden, so dass die Computer die Daten mit Hilfe der vorhandenen, semantischen Informationen sinnvoll verwerten können. Sobald genügend semantische Informationen mit den Daten verknüpft wurden, sind Maschinen in der Lage, inhaltliche Rückschlüsse über die Daten zu bilden. Mit anderen Worten: Die Computer können verstehen, worum es sich bei den Datenressourcen handelt und in welchem Zusammenhang sie mit anderen Daten stehen[7].
5.4 Problematik des semantischen Verständnisses von Maschinen
Informationen oder Nachrichten sind nicht nur Daten, die durch syntaktisch korrekte Anordnung von Wörtern oder Zeichen interpretiert werden können. Sie haben als Ursprung die Beziehung zu der realen Welt. Die Inhalte von Nachrichten bilden einen kleinen Ausschnitt davon ab. Zu Informationen werden Nachrichten dadurch, dass sie eine Bedeutung für den Empfänger, egal, ob es sich dabei um einen Menschen oder eine Maschine handelt, haben. Man versucht also die reale Welt, bzw. die Ausschnitte davon mit Hilfe von Aussagen zu beschreiben. Da eine vollständige Beschreibung jedoch nicht möglich ist, muss man abstrahieren, sich auf Wesentliches konzentrieren und unwichtige Aspekte vernachlässigen. Nach einer erfolgreichen Durchführung ist es möglich, auf der Metaebene Schlussfolgerungen zu ziehen, die sich infolge einer Verifikation in der realen Welt bestätigen lassen, wie in Abbildung 1 dargestellt.
Für die Verarbeitung in der Metaebene benötigt man formalisierte Mechanismen, insbesondere, wenn die Datenverarbeitung mit Hilfe eines Computers durchgeführt werden soll. Je ordentlicher die Daten strukturiert und mit semantischen Zusatzinformationen versehen sind, desto besser lassen sie sich von einem Computer verarbeiten[8]. Wenn wir einen einfachen Satz wie „Essen ist Europas Kulturhauptstadt 2010“ lesen, dann ist es für einen Menschen verständlich, weil er weiß, dass Essen in diesem Zusammenhang eine Stadt, Europa ein Staatenverbund und 2010 eine Jahresangabe ist. Für einen Computer ist es aber zunächst nur eine unstrukturierte Aneinanderreihung von Wörtern und Zahlen. Um die Aussage des Satzes maschinell zu erfassen, muss der Satz in seine Bestandteile zerlegt und mit Beziehungen zwischen den Bestandteilen versehen werden[9].
Die gewünschte Aussage lässt sich noch relativ einfach in maschinenverständlicher Weise darstellen, wogegen man dem Computer noch beibringen muss, was er unter Kulturhauptstadt und Europa zu verstehen hat. Das ist eigentlich der semantische Gehalt dieser Repräsentation.
5.5 Horizont von Semantik Web-Anwendungen
Das letzte Beispiel veranschaulicht explizit, wie schwierig und aufwändig es ist, dem Computer das Interpretieren von Texten beizubringen, um den Inhalt der Aussage zu begreifen. Dabei beschränkt sich das WWW nicht nur auf Texte: Bilder, Audio- und Videoinhalte bekommen eine immer höher werdende Bedeutung und Verbreitung im Internet. Das Verstehen von multimedialen Dateien ist weitaus schwieriger und derzeit von Maschinen nicht realisierbar. Es gibt zwar Programme, die Bilder oder Videos nach bestimmten Mustern analysieren, das reicht allerdings bei Weitem nicht aus, um die die Aussagekraft der Daten zu begreifen. Neben der technischen Grenze des Semantic Webs existieren außerdem soziale Aspekte, die eine Rolle spielen. Wieviel Macht und Selbstständigkeit möchten wir einer Maschine überlassen? Es gibt eine Reihe von Kritikern, die die Entwicklung des semantischen Webs als Basis dafür sehen, dass Maschinen Eigenschaften besitzen könnten, die bislang der menschlichen Spezies vorbehalten sind. Eine weitere Problematik besteht darin, dass die Aussagen, die ein Mensch trifft, auf seine Erfahrung und subjektive Einschätzung beruhen. Interpretationen sind somit subjektiv und kontextabhängig, was für eine Maschine jedoch nur schwer nachvollziehbar ist. Zusätzlich gilt es, die kulturelle Komponente zu berücksichtigen. Inwieweit vertraue ich den Aussagen und Schlussfolgerungen einer Maschine?
6 Entwicklung einer Semantic Web-Anwendung
In diesem Kapitel wird der Prozess der Entwicklung einer Semantic Web-Anwendung erläutert. Die erforderlichen Komponenten und die Entwicklungschritte zur Programmierung werden fokussiert.
6.1 Systemkomponenten
Eine Anwendung im Sinne des Semantic Web lässt in verschiedene Komponenten einteilen. Diese bilden die Grundvoraussetzung und Basis für die Entwicklung.
6.1.1 Semantische Annotation
Der Kerngedanke des semantischen Webs erfordert eine Anreicherung von Web-Inhalten mit Informationen über deren Bedeutung, die Maschinen interpretieren können. Das Erzeugen von semantischen Annotationen, welche global verstanden und genutzt werden können, bildet eine wichtige Komponente eines Semantic Web-Systems. Es besteht ein hohes Potenzial von neuen Auswertungsmöglichkeiten und Erkenntnissen durch die Vernetzung der semantischen Inhalte von Millionen von Web-Seiten. Weitergehend können neue Information durch den maschinellen Automatismus abgeleitet werden. Anwendungen im Sinne des Semantic Webs wissen um deren Inhalte, die sie repräsentieren. Die Wissenpyramide von Bodendorf (siehe Abbildung 3) beschreibt, wie Wissen entsteht.
Daten werden mit syntaktischen Regeln aus Zeichen gebildet. Informationen werden aus einer bestimmten Semantik gewonnen, welche von dem verwendeten Kontext abhängig ist. Das Wissen entsteht durch die Verknüpfung und Interpretation von Informationen. Dieses Prinzip verwendet Berner-Lee[11] in seinem Schichtenmodell zur Entwicklung von Semantic Web, welches im Kapitel 6.2 differenziert wird.
6.1.2 Ontology Engineering
Bevor Techniken für die informationstechnische Beschreibung der Bedeutung von Daten vorgestellt werden können, ist die Frage zu klären, wie Bedeutung generell beschrieben werden.
Es bestehen drei wesentliche Anforderungen an die Wissensbeschreibung zur Auflösung semantischer Konflikte und Sicherung von Wiederverwendbarkeit des Wissens[12]:
Symbole -->Terminologien
Symbole definieren eine syntaktische Norm. Die daraus resultierenden eindeutigen Einheiten auf elementarer Ebene können konkrete Objekteigenschaften annehmen.
Zuordnungen -->Semantische Schemata
Semantische Schemata werden für die Zuordnung von Begriffen zu Konzepten benötigt. Es entsteht der Bedarf unterschiedliche Bezeichnungen, die das gleiche Objekt repräsentieren, in das gleiche Konzept einzuordnen und verknüpft zu werden. In der Praxis wird es dadurch möglich dem Konzept Sprachen die Symbole „Deutsch“,“Englisch“,“Französisch“,“ger“ oder „en“ zuzuordnen. Erst wenn allgemeine Zuordnungsnormen, wie es in dem Beispiel gezeigt ist, definiert werden, erhält man die Fähigkeiten zur Zusammenarbeit von verteilten Systemen. Also ist die Eindeutigkeit und Wiederverwendbarkeit in semantischen Schemata entscheidend für die Entwicklung von Ontologien. Denn wenn das obengenannte Konzept statt Sprachen ebenso language oder lang heißen könnte, wäre kein Informationsgewinn und keine Konsistenz der Begriffe im Sinne des Semantic Webs gegeben.
Konzepte -->Ontologien
Damit auf der oberste Abstraktionsebene der Wissensbeschreibung eine Aussage über die Bedeutung der Konzepte getroffen werden kann, werden Ontologien[13] verwendet. Im Prinzip bedeutet dies die Klassifizierung von Objekten, sowie deren Bedeutung zueinander. Eine Ontologie erfüllt somit zwei Dinge: Zum Einen wird ein Vokabular bereitgestellt, welches systemübergreifend verstanden und genutzt werden kann. Die wichtige Eigenschaft einer Kommunikation ohne Mehrdeutigkeiten ist gewährleistet. Zum Anderen wird die Idee realisiert, bereits vorhandene Ontologien wiederverwenden zu können, da die Bedeutung eines Konzepts eingegrenzt wird.
6.1.3 Agenten / Filter
Eine weitere Komponente zur Entwicklung einer Semantic Web-Anwendung ist es semantisch zusammenhängende Webinhalte automatisiert und korrekt anzuzeigen und zu filtern. Es besteht die Herausforderung syntaktisch korrekte Daten, die mit semantischen Informationen angereichert sind, rechnergestützt auszuwerten und daraus abgeleitete Informationen darzustellen. Sogenannte Agenten als Benutzerschnittstellen[14] brauchen nicht zu wissen, was z.B. ein Apfel in der Realwelt ist, sondern müssen in die Fähigkeit besitzen Beziehungen zu anderen Konzepten herstellen zu können[15]. Semantische Widersprüche können verhindert werden. Es erfolgt ausschließlich die Anzeige von relevanten Daten, die eine konkrete Fragestellung beantwortet. Bei Erfolg hätte man die Ebene des Wissens erreicht.
6.1.4 Personalisierung
Die Funktionsweise eines wie in Kapitel 6.1.3 beschriebenen Agenten kann natürlich sehr unterschiedlich sein. Die eigens programmierten Agenten werden in Anlehnung an den Wissensbedürfnissen des Menschen aufgebaut. Diese können sehr individuell sein, da die Komplexität der ausgewerteten Daten bekannt sein muss. Eine Personalisierung der Agent ist somit die letzte Komponente einer Semantic Web-Anwendung.
6.2 Entwicklungsschritte
Die Entwicklungsschritte sind eng miteinander verzahnt und werden mit Standards der Semantic Web-Technologien realisiert. In diesem Kapitel werden die Funktionalitäten und Verwendungszwecke dieser Frameworks beispielhaft erläutert.
6.2.1 Implementierung mittels Technologiestandards
In diesem Kapitel werden die Technologien vorgestellt und beispielhaft erläutert, die für die Realisierung einer Semantic Web-Anwendung benötigt werden. Es wird deutlich mit welchen Mitteln semantische Information einfach und wirksam implementiert werden können. Die siebenstufige Schichten-Architektur von Berner-Lee erweist sich als Standard des Semantischen Webs (siehe Abbildung 4).
Der Aufbau beschreibt die Reihenfolge der Entwicklungsschritte, da die Funktionen der oberen Schichten jeweils von der unteren Gebrauch machen. Die Komplexität der Entwicklung steigt mit jeder Stufe . Das Fundament des Semantischen Webs bilden Unicode und Unified Resource Identifier (URI), das Datenaustauschformat XML, das Resource Description Framework (RDF) und RDF-Schema (RDFS). Unicode und URIs stellen sicher, dass internationale Zeichensätze verwendet werden und Objekte im semantischen Web einheitlich und eindeutig identifiziert werden[18]. XML und deren Namensräume ermöglichen den Austausch der semantischen Web-Definitionen mit anderen XML-basierten Standards. RDF und RDFS bilden die Möglichkeiten Aussagen über Objekte mit Hilfe der URIs zu treffen und einfache semantische Beziehungen durch selbstdefinierte Vokabularien auszudrücken[19]. Um komplexere Ontologien implementieren zu können, beinhaltet das Framework Web Ontology Language (OWL) ein weiterentwickeltes und einheitliches Vokabular (Schicht 4).
6.2.1.1 Struktur mit XML
XML steht für „extensible Markup Language“[20] und ist syntaktische Grundlage für das Semantic Web[21]. Das W3C empfehlt XML als eine Art zur Erzeugung maschinenlesbarer Dokumente, welche ein grundsätzliches Ziel verfolgen: Textteile mit zusätzlichen Informationen zu versehen. Das sogenannte „auszeichnen“[22] von Daten bewirkt die Möglichkeit Meta-Daten, also übergeordnete und beschreibene Daten, zu definieren. Dies erfolg auf eine einfache und sehr universelle Art. Die Daten von XML-Dokumenten können automatisiert verarbeitet und verbreitet werden, was XML zu dem bekanntesten Daten-Austauschformat macht. Im Hinblick, dass Web-Inhalte mit semantischen Inhalten „ausgezeichnet“ werden sollen, bietet XML die grundlegende Technologie. Im folgenden Beispiel wird die Syntax verdeutlicht, auf welcher die weiteren Beschreibungssprachen in den nächsten Kapiteln beruhen.
<Fallstudie>
<Titel>Entwicklung von Semantic Web-Anwendungen</Titel>
<Dozent>
<Name>Uwe Kern</Name>
<Titel>Prof. Dr.</Titel>
</Dozent>
<Autor>
<Name> Igor Korenberg </Name>
</Autor>
<Autor>
<Name> Martin Ridder </Name>
</Autor>
</Fallstudie>
In diesem XML-Dokument[23] geben die „Tags“ (z.B. <Name>…</Name>) eine zusätzliche Information über den Textteil, welcher von ihnen eingeschlossen ist. Für den Menschen sind die Aussagen intuitiv erkennbar. Im Sinne des Semantic Web reicht diese Notation nicht aus eine allgemeingültige und weltweit eindeutige Aussage über den Textteil zu definieren, die maschinell interpretierbar ist. Das wird dadurch begründet, dass die unabhängig definierten Tags im Konflikt zu der Wieder- und Weiterverwendung von XML-Namen stehen. Es kommt zu Namenkonflikten[24], wie es bei dem „Titel“ der Fallstudie und dem „Titel“ von dem Dozenten der Fall ist.
6.2.1.2 URI
Der Zusammenhang zwischen einer Informationsgewinnung und der domainübergreifenden Nutzung von Informationen lässt den Anspruch auf Kompatibilität und Flexibilität der Daten aufkommen. Dem wird jedoch vorausgesetzt, dass den Daten die richtige Bedeutung zugewiesen wird und folgend von Maschinen interpretiert werden können . Der „Uniform Resource Identifier“ (kurz URI) löst das Problem von Namenskonflikten und Mehrdeutigkeiten. Eine URI ist ein Zeichenfolge, die abstrakte und physikalische Ressourcen bezeichnen kann. Ein globaler Namensgeber[25], welcher in der Form der bekannten URLs z.B. Webseiten physikalisch adressieren kann. Die abstrakte Komponente wird durch die Definition von RDF-Vokabeln erzeugt. URIs werden in RDF häufig zur eindeutigen Referenzierung von Ressourcen verwendet[26] und bilden mit dem XML-Standard die ersten zwei Schichten zur erfolgreichen Implementierung einer Semantic Web-Anwendung.
6.2.1.3 RDF
Das Konzept Daten mit den oben benannten Meta-Daten anzureichern zur Beschreibung und zum Auffinden von Inhalten wird im Alltag (z.B. in Bibliotheken) schon seit längerer Zeit genutzt. Da dies in der Regel im Stil von XML-Strukturen realisiert ist, fehlt es einer weiterreichenden Technologie um semantische Aussagen treffen zu können. Auf der Suche der W3C nach Lösungen zu dieser Technologie, ist das „Resource Description Framework“ (RDF)[27] entstanden. RDF definiert eine weltweit einheitliche formale Syntax, welche eine automatische Informations-und Datenverarbeitung ermöglicht .Der Grundgedanke ist, dass sich jede Aussage mit Hilfe der URIs (siehe Kapitel 6.2.1.2) darstellen lässt. Dabei beschränkt sich RDF auf die Möglichkeit die einfachsten Sätze, bestehend aus Subjekt, Prädikat, Objekt, miteinander in Beziehung zu setzen.
Diese Aussage lässt sich maschinell verarbeiten, da sie auf Grundlage der Markup-Sprache XML basiert. Jedes mögliche Wissen lässt sich in kleinen Stücken (Tribles) zerlegen und sich weiter miteinander verknüpfen, sodass eine gerichtete Graphstruktur[28] beliebiger Komplexität entsteht. Das Ziel der Erzeugung von Ontologien im des Kapitels 6.1.2 gerecht zu werden, ist RDF nur einfache Art der Beschreibung von semantischen Inhalten. Der Klassenbegriff eines Konzepts ist nicht realisierbar, sodass die Weiterentwicklung von RDF-Schema (RDFS) folgt.
6.2.1.4 RDFS
Mit dem RDFS-Framework wird die 3.Schicht nach Berner-Lees Architektur des semantischen Webs realisiert. Ähnlich zu objektorientieren Programmiersprachen können hierarchisch angeordnete Klassen frei definiert werden und eröffnen Möglichkeiten der Erweiterung und Verfeinerung der Beziehungsbeschreibung in Unterklassen. Somit wird mit RDFS Aussagen, die mittels RDF formuliert wurden, hierarchisch in Klassen und Instanzen organisiert bzw. die Beziehungen den Ressourcen, Eigenschaften und Werten näher spezifiziert[29]. Damit lässt sich das einfache Faktenwissen aus den RDF-Triples abstrahiert darstellen und erweitert somit das Wissen über diese Aussage. Eine Interpretation über z.B. das Subjekt des Tribles wird ermöglicht eine komplexere Beschreibung von semantischen Zusammenhängen. Das folgende Beispiel zeigt dies:
Das W3C standardisiert für RDFS Basis-Schemata (vgl. Abbildung 6 mit rdfs: subClassOf) und schafft dadurch ein Vokabular zur Erzeugung einer Semantic Web-Anwendung. Jedoch kann RDFS höhere Anforderungen der Beschreibung der Semantik nicht erfüllen, aufgrund der Unmöglichkeit negativer Aussagen.
Die beiden Aussagen
ex: Martin Ridder rdf: type ex: Raucher ex: Martin Ridder rdf: type ex: Nichtraucher
führen zu keinem Widerspruch, obwohl es die Logik erzwingt. Diese Spezifikation lässt sich mit RDFS nicht darstellen. Somit besteht der Bedarf einer Weiterentwicklung von RDFS. Dies erfolgt im Februar 2004 vom W3C in Form der Ontologiesprache OWL (Web Ontology Language).
6.2.1.5 Ontologien mit OWL
OWL besitzt mehrere Ausdrucksmöglichkeiten zu RDFS und löst damit die Problematik des Widerspruchs aus Kapitel 6.2.1.4 und erreicht damit eine komplexere Ebene (Schicht 4). Die Syntax zur Implementierung mit OWL lehnt sich dabei stark an RDFS an. Zusätzliches Vokabular wie z.B. owl: disjointWith[30] definiert die Abgrenzung zu anderen Konzepten und erreicht damit einen hohen Grad der semantischen Annotation im Sinne des Semantic Webs. Zusätzliche Eigenschaften oder Kardinalitäten erreichen eine feinere Beschreibung von den Objekten und Klassen. OWL stellt für verschiedene Zielgruppen drei verschiedene Ontologiesprachen zur Verfügung, die sich in deren Ausdrucksfähigkeit und Komplexität unterscheiden.
Die Versionen OWL-Lite, -DL und –Full halten für den Entwickler unterschiedliche zu verwendbare Vokabularien bereit, je nachdem wie komplex die semantischen Beziehungen beschrieben werden müssen. Nicht nur die Anzahl der Vokabeln steigt mit jeder Version, sondern auch der Aufwand der Implementierung[32].
6.2.2 Auswertungsmöglichkeiten
Die Realisierung der Schichten 5-7 ist sehr aufwändig und komplex. Um die verknüpften Daten der Semantic Web-Anwendung unter Regeln der Logik (Schicht 5), wahrheitsgemäß (Schicht 6) und für den Endbenutzer glaubwürdig (Schicht 7) auswerten zu können, sind semantisch korrekte Ontologien Voraussetzung für eine domainübergreifende Auswertung. Die in Kapitel 4.1.3 beschriebenen Agenten können nur dann wahrheitsgemäß relevante Informationen auffinden, wenn die Regeln des Semantic Webs und deren korrekte Implementierung (siehe Kapitel 6.2.1) eingehalten werden. Die Anfragesprache SPARQL kann in Form einer SQL-ähnlichen Syntax die Daten eines RDF-Graphen auswerten. Ein konkretes Beispiel wird im nächsten Kapitel skizziert.
7 Anwendungsexempel
Ziel dieses Kapitels ist es eine sinnvolle Semantic Web Anwendung zu skizzieren und zu demonstrieren, wie diese mit den im Kapitel 6 erläuterten Methoden umgesetzt werden kann. Der Fokus liegt dabei nicht auf der Vollständigkeit der Anwendung, sondern auf der Systematik und der beispielhaften Entwicklung.
7.1 Beispiel-Szenario
Als Voraussetzung für das Studium an der FOM ist eine berufliche Praxis oder ein Ausbildungsverhältnis erforderlich, womit jeder Student Erfahrung über mindestens ein Unternehmen, eine Branche und ein Tätigkeitsfeld mitbringt. Im Rahmen des Studiums bildet man sich fort und erweitert so seinen beruflichen Horizont, was bei vielen Studenten zu einer Neuorientierung auf dem Arbeitsmarkt oder zu einem Aufstieg innerhalb des Unternehmens führt. Es wäre sicherlich für viele Studenten sehr nützlich, wenn sie dabei auf Erfahrungen und Informationen von anderen Studenten zurückgreifen könnten. Es würde ein Wissens- und Erfahrungsaustausch-Netzwerk entstehen, das Informationen über Studenten vermittelt. Folgende Anwendungsfälle wären dabei denkbar:
- Ein Student zieht in Betracht nach dem Studium an der FOM in der Gesundheitsbranche zu arbeiten und sucht jemanden, der dahingehend schon in einem mittelständischen Unternehmen Erfahrungen gesammelt hat.
- Ein Student, der sein Wirtschaftsinformatiker Studium an der FOM Essen abschließt, möchte nach Hamburg umziehen und sucht dort Erfahrungen in Unternehmen, die SAP Beratungsleistungen anbieten.
- Jemand, der in der Personalabteilung arbeitet und dort für das Recruiting von neuen Mitarbeitern zuständig ist, sucht für eine neue Stelle einen FOM Absolventen, der bestimmte Schwerpunktfächer belegt und einen Abschluss mit der Mindestnote 2.5 hat.
- Durch Zusatzangaben von Fertigkeiten und Kenntnissen, die die Studenten für besonders wichtig und interessant erachten, könnten die Lehrenden anhand von Auswertungen ihre Seminare dahingehend anpassen und optimieren.
7.2 Technische Infrastruktur
Technologisch gesehen handelt es sich bei einer Semantic Web Anwendung nicht um eine Revolution, sondern um eine Weiterentwicklung vorhandener Methoden und Praktiken. Aus diesem Grund wird in dieser Fallstudie zu einer bewährten Drei-Schichten-Architektur tendiert, die um eine Interpretationskomponente der semantischen Zusatzinformationen erweitert wird. Da es sich um eine nicht kommerzielle Anwendung handelt, werden Open-Source Lösungen bevorzugt. Demzufolge wurden folgende Designentscheidungen getroffen: die Präsentationschicht kann mittels Java Server Faces realisiert werden, für die Anwendungslogik können die gängigen Java Konstrukte verwendet werden und die relational Datenbank MySQL kann die Persistenzschicht der Anwendung abbilden. Als semantische Erweiterung wurde das Framework JENA ausgewählt, weil es ebenfalls frei verfügbar ist und die notwendigen Bibliotheken bereitstellt. Die Applikation könnte auf dem Webserver Apache Tomcat laufen.
7.3 Konzeption des semantischen Modells
Es existiert eine Superklasse Personen, die durch die Unterklassen Studenten und Dozenten repräsentiert werden kann. Jede Person ist über die Beziehung „beschäftigt bei“ mit der Klasse Betrieb verbunden, die wiederum in Unterklassen klein, mittel und groß gegliedert ist. Außerdem können Personen in den Klassen Kenntnisse und Interessen optionale Angaben hinterlegen. Die Klasse Fachhochschule kann sowohl von Studenten als auch von Dozenten referenziert werden und hat Attribute wie Standort, mögliche Abschlüsse usw. gekapselt. Die Superklasse Branche beinhaltet als Unterklassen alle möglichen Branchen wie IT, Gesundheitswesen, Textilbranche etc. und steht sowohl mit Personen über die Referenz „hat Erfahrung mit“ als auch mit Betrieben in Verbindung. Die nachfolgende Abbildung 9 stellt beispielhaft grafisch einige Klassen und Relationen dar, das komplette, semantische Modell der Anwendung kann nach Belieben in der Komplexität erweitert werden.
7.4 Realisierung des Entwurfs
In diesem Abschnitt wird lediglich auf die Umsetzung des semantischen Modells eingegangen, da die Realisierung der kompletten Anwendung den Rahmen der Fallstudie sprengen würde. Zum Modellieren der Ontologien kann der am weitesten verbreitete Open-Source-Editor Protégé , der an der Stanford University in Kalifornien entwickelt wurde, weitestgehend empfohlen werden. Das Tool ist sehr umfangreich und komplex, wodurch das Erstellen von möglichst vollständigen Beschreibungen und Beziehungen zwar ziemlich aufwändig wird und sehr viel Zeit in Anspruch nimmt, jedoch die Aussagen sich sehr präzise formulieren lassen.
In der grafischen Oberfläche kann man verschiedene Sicht- und Anzeigearten wählen, was die Erstellung von Klassen und deren Eigenschaften vereinfacht. Danach ist es möglich, das angefertigte Modell in ein gängiges semantisches Format wie RDF oder OWL zu exportieren. Hier folgen einige Beispiele von der generierten Beschreibung im OWL-Format, die komplette Datei, die bei Weitem noch nicht vollständig ist, beinhaltet schon mehrere hundert Zeilen Code.
- Definition der Klasse Person:
<owl:Class rdf:about="#Person"> <rdfs:subClassOf rdf:resource="&owl;Thing"/> </owl:Class>
- Definition der Klassen Dozent und Student, wobei die Entitäten der beiden disjunkt sein müssen:
<owl:Class rdf:about="#Dozent"> <rdfs:subClassOf rdf:resource="#Person"/> <owl:disjointWith rdf:resource="#Student"/> </owl:Class> <owl:Class rdf:about="#Student"> <rdfs:subClassOf rdf:resource="#Person"/> </owl:Class>
- Beispielhafte Erstellung von einigen Entitäten:
<owl:Class rdf:about="#Dozent">
<rdfs:subClassOf rdf:resource="#Person"/>
<owl:disjointWith rdf:resource="#Student"/>
</owl:Class>
<owl:Class rdf:about="#Student">
<rdfs:subClassOf rdf:resource="#Person"/>
</owl:Class>
///////////////////////////////////////////////////////////////////////////////////////
//
// Individuals
//
///////////////////////////////////////////////////////////////////////////////////////
<!-- http://www.semanticweb.org/ontologies/2009/0/Ontology1232284731974.owl#Igor_Korenberg -->
<Student rdf:about="#Igor_Korenberg"/>
<!-- http://www.semanticweb.org/ontologies/2009/0/Ontology1232284731974.owl#Martin_Ridder -->
<Student rdf:about="#Martin_Ridder"/>
<!-- http://www.semanticweb.org/ontologies/2009/0/Ontology1232284731974.owl#Prof._Dr._Jürgen_Propach -->
<Dozent rdf:about="#Prof._Dr._Jürgen_Propach"/>
<!-- http://www.semanticweb.org/ontologies/2009/0/Ontology1232284731974.owl#Prof._Dr._Uwe_Kern -->
<Dozent rdf:about="#Prof._Dr._Uwe_Kern"/>
Die komplette Beschreibung kann anschließend in das JENA-Framework eingebunden und mit dem Anpassen der entsprechenden Property-Dateien verwendet werden. Zum Verknüpfen von Java Klassen mit den RDF Eigenschaften gibt es in dem Paket com.hp.hpl.jena.rdf die Klasse ModelFactory, in der schon viele Hilfsmethoden implementiert sind. Das Abbilden der DB-Strukturen auf die JAVA-Klassen unter Benutzung von semantischen Beschreibungen wird dann von dem Framework übernommen.
7.5 Abfragen mit SPARQL
Um SPARQL im Jena Framework nutzen zu können, benötigt man ein Modul namens ARQ, das ebenfalls als Open-Source zur Verfügung steht. Damit das Modul von Jena erkannt wird, müssen einige Umgebungsvariablen gesetzt und manche Konfigurationsdateien angepasst werden, genaueres dazu findet man in der Dokumentation auf der Jena Homepage.
In der Anwendungsentwicklung werden Datenbankabfragen oft aus der Applikation aufgerufen, weil die Ergebnisse dann sofort in der Business-Logik weiterverwendet werden können. Für SPARQL Abfragen in Java muss zunächst das Paket com.hp.hpl.jena.query importiert werden. Anschließend wird die Klasse QueryFactory zum Erzeugen der Datenbankabfragen eingesetzt. Die daraus resultierenden Ergebnismengen weist man einem ResultSet zu, wodurch sie in Java weiter verarbeitet werden können. Das folgende Beispiel zeigt wie SPARQL Einsatz unter Java aussehen kann:
// Öffnen des RDF Graphs FOM RDF
InputStream inRDF = new FileInputStream(new File("FOM.rdf"));
// Erzeugen eines leeren Models mit ModelFactory
Model model = ModelFactory.createMemModelMaker().createModel();
model.read(inRDF,null);
inRDF.close();
// SPARQL Query erzeugen
String queryString =
"PREFIX fom1: <http://www.semanticweb.org/ontologies/2009/0/Ontology1232284731974#>"+
"SELECT ?student ?betrieb " +
"WHERE {" +
" ?a fom1:name \"Korenberg\" . " +
" ?b fom1:hochschule \"FOM Essen\". " +
" }";
Query query = QueryFactory.create(queryString);
// Abfrage stellen und die Ergebnisse dem ResultSet zuweisen
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet results = qe.execSelect();
// Output query results
ResultSetFormatter.out(System.out, results, query);
// Verbindung schließen
qe.close();
Abschließend lässt es sich feststellen, dass die Verwendung von SPARQL mit Jena unter Java für Entwickler sehr komfortabel gelöst ist und sich kaum von aktuellen Persistenztechnologien unterscheidet.
8 Fazit und Ausblick
Betrachtet man die Ergebnisse der Fallstudie, so kann man begreifen, dass das heutige Internet sich im Wandel befindet. Die Verbreitung der semantischen Zusatzinformationen bereits existierender Internetseiten nimmt stetig zu, was die bessere maschinelle Auswertung des verfügbaren Inhalts erlaubt. Die gesuchten Informationen können durch Zusatzangaben besser gefunden werden, die immer besser werdenden Algorithmen stellen weitreichende Schlussfolgerungen auf, die wiederum neue Informationen erschaffen können. Es ist zu erwarten, dass die Suchergebnisse mit dem Fortschreiten der semantischen Angaben genauere Treffer erzielen, allerdings wird die künstliche Intelligenz der Maschinen durch semantisches Web kaum zunehmen. Die Computer allein werden dadurch nicht intelligenter, bzw. werden sich ihrer Umgebung nicht bewusst werden. Die Entstehung der eigenen semantischen Applikation war sehr aufschlussreich und interessant, auch wenn sie nicht ganz fertig gestellt werden konnte. Es hat sich gezeigt, dass die Entwicklung aus Programmierersicht sich nicht wesentlich von bisherigen Vorgehensweisen und Technologien unterscheidet. Semantic Web Anwendungen greifen auf die bisher erprobten Standards zurück und ergänzen sie durch neue wie RDF. Die Unterstützung durch Softwaretools ist mittlerweile weit verbreitet und man erhält neben den kommerziellen Lösungen auch gute Open-Source Produkte. Abschließend sind im Wesentlichen zwei Erfahrungen diese Fallstudie betreffend, zu benennen, die im Rahmen der Bearbeitung gemacht wurden. Zum einen hat das Erschließen von neuen Technologien viel Spaß gemacht, vor allem das direkte Ausprobieren anhand der FOM-Beispielanwendung. Zum anderen wurden Kommunikation, Koordination und Zielsetzung einer Gruppenarbeit intensiviert und verbessert.
9 Fußnoten
- ↑ Vgl. [Bosch], S.24
- ↑ Vgl. [Kashiap], S.23
- ↑ Vgl. [Berners-Lee 02], S. 43
- ↑ Vgl. [Hitzler], S. 11-12
- ↑ Vgl. [Rat d. Dudenred]
- ↑ Vgl. http://www.itwissen.info/definition/lexikon/Syntax-syntax.html , (aufgerufen am: 11.01.2009)
- ↑ Vgl. http://www.altova.com/de/semantic_web.html , (aufegerufen am: 11.01.2009)
- ↑ Vgl. [Hausser]
- ↑ Vgl. [Helbig]
- ↑ Vgl. [Bodendorf]
- ↑ Vgl. http://www.w3.org/People/Berners-Lee/ , (aufgerufen am: 22.01.2008)
- ↑ Vgl. [Langer], S.76
- ↑ Vgl. http://www-ksl.stanford.edu/kst/what-is-an-ontology.html , (aufgerufen am: 20.01.2008)
- ↑ Vgl. [Grütter], S.154
- ↑ Vgl. [Langen], S.75
- ↑ Vgl. [Kerstan], S.9
- ↑ In Anlehnung an [Berner-Lee 01]
- ↑ Vgl. [Kerstan], S.10
- ↑ Vgl. [Kerstan], S.10
- ↑ Vgl. [Hitzler], S.17
- ↑ Vgl. [Hitzler], S.30
- ↑ [Hitzler], S.17
- ↑ Vgl. [Hitzler], S.25
- ↑ [Hitzler], S.25
- ↑ Vgl. [Kerstan], S.11
- ↑ Vgl. [Hitzler], S.28
- ↑ Vgl. http://www.w3.org/RDF/ , (aufgerufen am: 17.01.2008)
- ↑ Vgl.[Hitzler], S.36
- ↑ Vgl. [o.V. Semantic-Web.at]
- ↑ Vgl. http://www.w3.org/TR/2004/REC-owl-features-20040210/ , (aufgerufen am: 20.01.2008)
- ↑ Vgl. http://www.w3.org/People/Ivan/CorePresentations/SW_QA/Slides.pdf, S.43 (aufgerufen am: 19.01.2008)
- ↑ Vgl. [Kerstan], S.16
10 Literatur- und Quellenverzeichnis
| [Berner-Lee 01] | Berner-Lee, Tim : Semantic Web - XML2000, W3C Recommendation, W3C, http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide10-0.html (aufgerufen am: 18.01.2008) |
| [Berner-Lee 02] | Berner-Lee, Tim; Hendler, James; Lassila, Ora : A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities, Scientific American, San Francisco, 2001, http://www.sciam.com/article.cfm?id=the-semantic-web (aufgerufen am: 05.01.2009) |
| [Bodendorf] | Bodendorf, Freimut : Daten- und Wissensmanagement, Springer-Verlag, Berlin, Heidelberg, New York, 2008 |
| [Bosch] | Bosch, Andy: Java Server Faces, Addison-Wesley Verlag, München, 2004 |
| [Grütter] | Grütter, Rolf: Semantic Web zur Unterstützung von Wissensgemeinschaften, Oldenbourg Verlag, München, 2008 |
| [Hausser] | Hausser, Roland : Grundlagen der Computerlinguistik. Mensch-Maschine- Kommunikation in natürlicher Sprache, Springer-Verlag, Berlin, 1989 |
| [Helbig] | Helbig, Hermann : Die semantische Struktur natürlicher Sprache, Springer Verlag, Berlin, 2001 |
| [Hitzler] | Hitzler, Pascal; Krötzsch, Markus; Rudolph, Sebastian; Sure, York: Semantic Web Grundlagen, Springer-Verlag, Berlin Heidelberg, 2008 |
| [Kashyap] | Kashyap, Vipul; Bussler, Chrstoph; Moran, Matthew: The Semantic Web: Semantics for Data and Services on the Web, Springer-Verlag, Berlin, Heidelberg, 2008 |
| [Kerstan] | Kerstan, Manuel: Semantisches Web - State of the art und Entwicklungstrends, Grid Verlag, 2008 |
| [Langer] | Langer, André: Semantic Web - basiertes System zur Unterstützung von Workflow- und Projektmanagement, Technische Universität Chemnitz Deutschland, 2007 |
| [Rat d. Dudenred] | Wiss. Rat d. Dudenred.: Dosdowski, Günther (Hrsg.): Duden. Das Fremdwörterbuch. Mannheim, Wien, Zürich 1990 |

