Dieser und noch weitere Artikel wurde von mosta erstellt.


Folgende Themen werden von diesem Artikel berührt:


Druckversion des Artikels


Semantic Desktop - die nächste Evolution des Rechners?


1 Einleitung

Das Internet revolutionierte die Art und Weise mit der wir kommunizieren. E-Mails, Instant Messenger(IM) und andere Dienste gehören zu unserem Alltag und dieser scheint immer schwerer ohne diese Anwendungen zu bewältigen zu sein. Doch das dadurch resultierende Informationsaufkommen lässt sich immer schwerer bändigen. Um dem entgegen zu wirken entstammt die Idee des Semantic Desktop.



Das Ziel des Semantic Desktop ist es, den Umgang mit und das Erstellen von Inhalten zu erleichtern und zu beschleunigen. Dies soll durch das Deklarieren von Inhalten geschehen. Es soll eine einheitliche Beschreibung von Informationen entstehen. Dies bezieht sich nicht auf die Inhalte, sondern dass wir Sie für den Computer verständlich beschreiben. Dies geschieht wie bei MP3-Tags, nur dass das System nicht auf Audio-Daten beschränkt ist.
Da der Semantic Desktop eine Implementierung von Semantic-Web-Technologien auf den Desktop ist, wird als erstes die Idee des Semantic Web beschrieben und es wird dann näher auf den Semantic Desktop eingegangen.

2 Semantic Web

Das Ziel des Semantic Web ist es, das Web für den Computer benutzbar zu machen.

Zurzeit funktioniert das Web über Hyperlinks. Die Seiten werden mit Hyperlinks miteinander verbunden und man kann so durch das Web navigieren. Diese Art des Vernetzens verteilt die Aufgabe, Verbindungen zu setzen, auf den Anbieter bzw. Erzeuger von Informationen. Das birgt die Problematik, dass Informationen verschwinden bzw. nicht wieder gefunden werden können, da man den Pfad kennen muss, der zu der Information führt. Dieses Problem ist schon lange bekannt und die derzeitige Lösungsstrategie sind Suchmaschinen. Doch deren Funktion ist durch Spammer und der riesigen Informationsflut mittlerweile sehr eingeschränkt und mit immer steigendem Aufwand zu gebrauchen.
Die Strategie des Semantic Web ist es, den Seiten selbst oder in Datenbanken Meta-Information anzufügen, die Aussagen über die Information beinhalten, wie Autor, Thema, Themengebiete und andere Angaben, die zu der Website passen. Dies führt zu einer Art Weltwissen, einem System, das eine Repräsentation des menschlichen Wissens darstellt und das in einer Ontologie strukturiert wird.

Dafür gliedert sich das Semantic Web in 4 Ebenen auf.




3 Geschichte

Bevor wir uns ins Technische begeben, ist erst einmal eine kleine Geschichtsstunde angesetzt. Denn es ist schon interessant zu wissen woher diese Ideen stammen.
Die erste Beschreibung des Semantic Desktop, geschah 1945 durch Vannevar Bush in dem Artikel "As we may think”(Man glaubt es kaum ein Vorfahre von George W. Bush). Er beschrieb ein Gerät namens "Memex”, das alle Aufzeichnungen - Text, Bild und Ton - seines Benutzers speichern kann und alle Kommunikationsmittel vereint. Das bewältigt dieses Gerät sehr schnell und für den Benutzer sehr intuitiv. Das Gerät sollte aber völlig analog funktionieren und Mikrofilm als Speichermedium nutzen. Weitere Wurzeln findet man bei Ted Nelson, der 1960 ein System beschrieb, das aus verknüpften Informationen bestand, die in einer Informationsgesellschaft gehandelt wurden. Er nannte das System "Xanadu". Der erste Versuch solch ein System umzusetzen fand durch Tim Berners-Lee (Begründer des Internet) statt, der sein Programm "Enquire-Within-Upon-Everything" nannte (wobei der Name alles sagt), das in der Lage war, Informationen über Personen, Projekte, Hardwareressourcen und wie sie miteinander verknüpft waren, zu beschreiben. Es sollte die Dokumentationen, die am CERN zu der Zeit geschrieben wurden, strukturieren und einfacher zugänglich machen. Es fand aber keinen Anklang.

Als nächstes folgt das Semantic Web, das 1998 von Tim Berners-Lee eingeführt wurde. Er fordert eine Stärkung der Nutzbarkeit der Daten und arbeitet auch an den entsprechenden Standards wie RDF mit.

Der Begriff Semantic Desktop wurde durch Stefan Decken beschrieben und von Leo Sauermann 2003 aufgegriffen, um die verschiedenen Technologien und Ideen in einem Hauptbegriff zusammenzufassen. Wobei Stefan Decker und Martin Frank den Begriff Networked Semantic Desktop 2004 formulierten, was den Semantic Desktop um eine P2P-Funktion erweitert in der die Ontologien untereinander getauscht werden können.

4 Was ist ein Semantic Desktop?

Die Definition des Semantik Desktop leitet sich aus den Beschreibungen von Vannevar Bush ab. Da er aber ein analoges System beschrieb, wurde die Definition nach ihrer technischen Realisierung angepasst.
Daraus ergibt sich ein Schlachtplan ähnlich dem Semantic Web [Roadmap] von Tim Berners-Lee.

Ein Semantic Desktop (SD) ist ein Gerät, das in der Lage ist, alle digitalen Informationen seines Benutzers zu speichern. Diese werden als Semantic-Web-Ressourcen interpretiert und als RDF-Graphen gespeichert. Ressourcen aus dem Web können gespeichert, bearbeitet und der Inhalt kann mit anderen Benutzern geteilt werden.
Ontologien repräsentieren das persönliche mentale Modell seines Benutzers. Sie stellen damit den "Klebstoff" zwischen Informationen und dem "System" dar. Anwendungen eines Semantic Desktop speichern, lesen und kommunizieren via Ontologien und Semantic-Web-Protokollen. Dadurch ist der Semantic Desktop eine Erweiterung des Gedächtnisses seines Benutzers.

Wenn man es grob zusammenfassen möchte, wäre ein Semantic Desktop ein lokales Semantic Web. Der Unterschied ist aber, dass man hier nicht eine riesige "relationale" Datenbank anstrebt, sondern das Entwickeln von Anwendungen die diese Daten auswerten und aufbereiten können.
Es werden Programme nicht mehr ein Problem lösen, sondern eher in einem Verbund miteinander kommunizieren. Es werden also intelligentere Anwendungen angestrebt, die sich mehr auf seinen Benutzer anpassen und ihm ständig wiederkehrende Arbeiten, wie das Sortieren von Dateien, abnehmen, da sie nach ihrer Bedeutung strukturiert werden. Man spricht in diesem Zusammenhang auch von Software-Agenten.

Die ersten Versuche solcher Systeme laufen schon. Es gibt einmal das Smart-Web-Projekt des DFKI. Das eine Software für mobile Endgeräte ist, die durch Sprach- und Tastatureingaben gesteuert werden kann. Es ist aber nur möglich, Fragen zu stellen und auch nur zu bestimmten Themengebieten. Was aber trotzdem beeindruckend ist, weil es eine Aussicht ist, auf weiterführende Projekte ist, wie die nächsten.
Das DFKI hat noch ein zweites Projekt, und zwar gnowsis das ein Semantic-Desktop-System darstellt. Im Mittelpunkt steht ein Web-Server der die Handhabung der Ontologie übernimmt. Gnowsis bietet ein Framework zur Anbindung an bestehende Softwarelösungen an. Es wird versucht, die Inhalte aus diesen Anwendungen zu nutzen und in der Ontologie im Server abzubilden.
Als weiteres Projekt zu erwähnen ist haystack vom MIT, das ein E-Mail-Client, Adressbuch, Kalender und Dateisystem ist. Im Gegensatz zum gnowsis-Projekt wird hier nicht ein Framework mit Pipelines zu Anwendungen realisiert, sondern ein einheitliches System.

5 Technologien/Standards:

Hier werden die Techniken genauer beleuchtet, die in der Einleitung erwähnt wurden.

5.1 RDF - Resource Description Framework

Das Ressource Description Framework ist eine Sprache um Informationen über Ressourcen im Internet darzustellen. Streng genommen ist es keine eigene Sprache, sondern ein XML-Dialekt. Es geht aber hier um die Darstellung von Metadaten, also um Informationen über Informationen, was im ersten Moment etwas schizophren klingt. Es geht aber in diesem Fall um Informationen wie der Autor eines Textes oder die Art des Textes. Man kann das natürlich auch auf andere Informationen wie Musik, Video oder jede andere Ressource beziehen. Dabei können die Informationen variieren. Definiert wurde Sie aber um zusätzliche Informationen über Web-Dokumente zu definieren und sie maschinell verarbeiten zu können. RDF ist konzipiert um diese Art von Informationen zwischen Anwendungen auszutauschen ohne den Verlust der Bedeutung. Dabei werden Informationen mittels URIs identifiziert und beschrieben.

RDF ist wie folgt aufgebaut. Es besteht aus drei Objekttypen, den Ressourcen, Eigenschaftselementen und den Objekten, die auch als Subjekt, Objekt und Prädikat beschrieben werden. Durch Kombination der drei Typen wird eine Aussage über eine Ressource formuliert. Um das ganze anschaulich zu machen beschreiben wir einen RDF Graph für diesen Artikel:



Der RDF-Graph dazu sieht so aus.



RDF-Graphen werden mittels einer XML-Syntax beschrieben. Als Beispiel nehmen wir den gerade beschriebenen RDF-Graphen.

Code:
1. <?xml version="1.0"?>
2. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3.             xmlns:exterms="http://purl.org/dc/elements/1.1/">
4.   <rdf:Description rdf:about="http://www.c-plusplus.de/forum/viewtopic-var-t-is-136407.html">
5.       <exterms:Creator>http://www.c-plusplus.de/forum/viewtopic-var-t-is-139119.html</exterms:Creator>
6.   </rdf:Description>
7. </rdf:RDF>



5.2 OWL

Die Web Ontology Language (OWL) ist eine Sprache zum Beschreiben von Ontologien, wobei sie sich in 3 Sprachebenen unterteilt. Mit OWL lassen sich Ausdrücke formulieren ähnlich der Prädikatenlogik. Die verschiedenen Ebenen unterscheiden sich in der Ausdrucksfähigkeit. OWL basiert auf der RDF-Syntax und DAML+OIL.

OWL Lite
OWL Light dient zum Beschreiben einfacher Taxonomien. Es sind die grundlegenden Funktionen zum Definieren von Klassen und Setzen von Abhängigkeiten.
OWL DL
DL steht für Description Logic (Beschreibungslogik) und ist gleichzusetzen mit der ersten Stufe der Prädikatenlogik.
OWL Full
OWL Full ermöglicht Ausdrücke aus Prädikatenlogiken höherer Stufe.

Hier ein Beispiel:

Code:
1
2
3
4
5
6
7
8
9
<owl:Class rdf:ID="WhiteWine">
  <owl:intersectionOf rdf:parseType="Collection">
    <owl:Class rdf:about="#Wine" />
    <owl:Restriction>
      <owl:onProperty rdf:resource="#hasColor" />
      <owl:hasValue rdf:resource="#White" />
    </owl:Restriction>
  </owl:intersectionOf>
</owl:Class>


Dies ist ein Beispiel für eine IntersectionOf-Abfrage. Es wird die "Collection" auf Weißweine überprüft.

5.3 SWRL
SWRL steht für Semantic Web Rule Language und ist eine Zusammenführung von OWL Lite und OWL DL, nur dass hier die Lesbarkeit durch den Menschen im Vordergrund steht. Es lehnt sich dabei an EBNF (Extended-Backus-Naur-Form) in seiner Syntax an.

Die Syntax sieht so aus:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
axiom ::= rule
 
rule ::= 'Implies(' [ URIreference ] { annotation } antecedent consequent ')'
antecedent ::= 'Antecedent(' { atom } ')'
consequent ::= 'Consequent(' { atom } ')'
 
atom ::= description '(' i-object ')'
     | dataRange '(' d-object ')'
     | individualvaluedPropertyID '(' i-object i-object ')'
     | datavaluedPropertyID '(' i-object d-object ')'
     | sameAs '(' i-object i-object ')'
     | differentFrom '(' i-object i-object ')'
     | builtIn '(' builtinID { d-object } ')'
builtinID ::= URIreference
 
i-object ::= i-variable | individualID
d-object ::= d-variable | dataLiteral
 
i-variable ::= 'I-variable(' URIreference ')'
d-variable ::= 'D-variable(' URIreference ')'


Die konkrete XML-Syntax sieht so aus.

Code:
1
2
3
4
5
6
7
8
9
10
11
12
<swrlx:Ontology
  swrlx:name = xsd:anyURI
>
  Content: (owlx:VersionInfo | owlx:PriorVersion | owlx:BackwardCompatibleWith |
            owlx:IncompatibleWith | owlx:Imports | owlx:Annotation |
            owlx:Class[axiom] | owlx:EnumeratedClass(D,F) |
            owlx:SubClassOf(D,F) | owlx:EquivalentClasses | owlx:DisjointClasses(D,F) |
            owlx:DatatypeProperty | owlx:ObjectProperty |
            owlx:SubPropertyOf | owlx:EquivalentProperties |
            owlx:Individual[axiom] | owlx:SameIndividual | owlx:DifferentIndividuals |
            ruleml:imp[axiom] | ruleml:var[axiom])*
</swrlx:Ontology>


5.4 SPARQL

SPARQL ist ein rekursives Akronym und steht für "SPARQL Protocol and RDF Query Language". Durch SPARQL wird die Aussage klar aus dem WWW eine globale Datenbank zu erstellen.
SPARQL ist eine Sprache um Informationen aus einem RDF-Graphen zu erhalten. Die Grundstruktur erinnert einen stark an SQL, da eine ähnliche Syntax benutzt wurde bzw. die Syntax darauf aufgebaut wurde. Abfragen bestehen aus vier Grundbausteinen: einer PREFIX-Zeile in der Variablen definiert werden können, einer SELECT-Anweisung, in der die Datenbestände angegeben werden können, die durchsucht werden sollen, einer WHERE-Zeile in der ausgewählt wurde, welche Daten aus den vorher angegebenen Quellen extrahiert werden sollen.

SPARQL ist eine Abfrage(query)sprache und dient nur dem Abfragen von Inhalten, im Gegensatz zu den Ontologie-Sprachen. Hier ein Beispiel, indem nach den Artikeln von "mosta" gefragt wird:

Code:
PREFIX dc: <http://purl.org/dc/elements/1.1/creator>
SELECT      ?title
WHERE{
        ?x dc:creator "mosta".
        ?x dc:title ?title
}



6 Fazit

Im Großen und Ganzen ist es eine toll klingende Sache, wobei ich bisher die Nachteile wissentlich verschwiegen habe. Denn das Problem ist, dass man alle Inhalte selbst editieren muss. Das heißt, man muss selbst die Ontologien bauen. Diese Problematik wird sich aber mit der Zeit legen. Wenn es nämlich schon fertige "default" Ontologien gibt, die für uns dann das grundlegende Einsortieren übernehmen können. Bei den jetzigen Systemen läuft das aber alles per Fuß, was sich in etwa wie die ersten Spracherkennungssoftware verhält, nur mit einer längeren "Trainingsphase".

7 Referenzen

Das RFC zum URI-Standard
http://www.gbiv.com/protocols/uri/rfc/rfc3986.html
Das RDF-Schema Paper vom W3C
http://www.w3.org/TR/rdf-schema/
Der Artikel von Vannevar Bush
http://en.wikipedia.org/wiki/As_We_May_Think
Das SWRL Paper
http://www.w3.org/Submission/SWRL/

Sie können Kommentare zu diesem Artikel im Forum schreiben. (Eine Registrierung ist nicht notwendig.)

Logo-Design: MastaMind Webdesign