[X] Semantic Desktop



  • Hallo,

    geht's hier noch weiter? Lies sich bisher nämlich flüssig 🙂

    MfG

    GPC



  • Ja ich schreib noch dran nur mir läuft immer die zeit davon 😉



  • mosta schrieb:

    Ja ich schreib noch dran nur mir läuft immer die zeit davon 😉

    Okay, ich wollte nur mal kurz nachhaken 🙂



  • Semantic Desktop

    • 1. Einleitung
    • 2. Semantic Web
    • 3. Was ist Semantic Desktop?
    • 3. Geschichte
    • 4. Technologien/Standards
      4.1 RDF / RDF Scheme
      4.2 OWL
      4.5 SWRL
      4.4 SPARQL
    • 6. Referenzen

    1. Einleitung

    Durch das Internet hat sich die Art und Weise mit der wir Kommunizieren komplett geändert. Der Rechner mit einem Internet Anschluss gehören zur Grundausstattung. E-Mails, IM(Instant Messenger) und Webseiten gehören zu unserem Alltag und ein Leben ohne diese Dinge scheint immer schwerer vorstellbar. Doch die Handhabung all dieser Anwendungen wird aufgrund des steigenden Datenaufkommens immer aufwendiger. Um den entgegen zu wirken entstammt die Idee des Semantic Desktop.

    Semantic Desktop ist eine neue Art der Anwendung, die versucht bisherige Anwendungen miteinander zu verknüpfen, um daraus einen mehr nutzen für den Anwender zu gewinnen. Das Wort Semantic kommt zustande, da alle Informationen auf dem Desktop Semantisch (über ihren Inhalt) verknüpft werden. Das heißt das der Computer nicht nur weiß, wo die Dateien liegen, wie groß sie sind und evtl. mit welchem Programm sie geöffnet werden können, sondern was für Inhalte, die Daten haben und sie daraufhin aufbereiten.
    [stärker ausführen]

    Dieser Ansatz wurde schon früher verfolgt. Doch war am Anfang der Computer Revolution nicht der Sinn erkennbar für solche Anwendungen.
    Dies erfolgt durch eine stärkere Trennung von Inhalt und Layout. Denn nun können Datenbestände inhaltlich verglichen werden, also wenn wir uns in neue Themengebiete einarbeiten wollen. Können wir Quellen auf inhaltliche unterschiede hin untersuchen, um so die Qualität von Texten besser Unterscheiden zu können. Der weitere Unterschied zum derzeitigen Desktop liegt daran, dass Informationen nur von der Anwendung die Sie erstellt bzw. für die Sie erstellt wurden nutzbar sind.
    [besseres Beispiel]
    Als Beispiel nehmen wir das schreiben eines Artikels oder Hausaufgabe. Als erstes geben wir das Thema unseres Artikels an.
    Aus dem Thema kann unsere Anwendung dann Recherchieren und uns Ansätze bzw. Hintergründe liefern und uns so dass Recherchieren ersparren.

    Der Vorteil liegt aber nicht nur in der Suche und Verwaltung von Inhalten und Quellen von Inhalten. Wie RSS Feeds, Newsgroup und anderen Diensten. Wobei der Hauptaugenmerk bei den derzeitigen Tools auf der Erzeugung von Semantischen oder in diesem Kontext auch als Meta-Informationen bezeichneten Inhalten. Wie dem Erstellen von Dokumenten und E-Mails.
    [sprung]
    Dem ähnlich wie in dem Eintrag „Subject“. Eine Kurze Information enthalten ist. Die der E-Mail einem Thema oder Gruppenfeld zuordnet. Dieser Vorgang wird auch in Zusammenhang mit Bookmarks(del.ico.us)als Tagging Bezeichnet. Wobei URL Adressen ein paar Stichworte als Eingliederung des Links in eine oder mehrere Themengebieten genutzt wird um so die ULR’s Themenbezogen (Semantisch) zu durchsuchen. Tagging Projekte gibt es aber nicht nur für URL’s, sondern auch für Photos(Flickr.com), Videos(YouTube.com) und Musik(myspace.com). Wobei diese aber auch gleich eine eigene Plattform für Soziale Netzwerke bieten.

    Sematic Desktop kommt aus dem Gedanken das Internet zu strukturieren, wobei es dabei nicht um die Hardware Struktur geht, sondern von Inhalten die im Internet angeboten werden.

    Der Wandel ist daher nötig, da wir das WWW heute anders nutzen als in den Anfängen. Damals war es eher ein Tummelplatz für Technik Intressierte. Wohin es sich heute als fester bestandteil des Alltags ist und Mainstream geworden ist. Es ist also nicht mehr Intressant die buntesten und mit Effekten vollgestopftesten Seiten zu finden und zu benutzen, sondern die am Inhaltlich wertvollste. Durch die veränderte Anforderung müssen sich auch die Anwendungen anpassen.

    Das Semantic Web ist eine Erweiterung des Internets um Internet Seiten maschinell lesbar zu machen.

    Die dazu genutzt werden um eine Semantische Verbindung zwischen Inhalten im Internet zu knüpfen. Im Klartext sollen Informationen nicht nur über Hyperlinks miteinander verbunden werden können, sondern über ihren Inhalt. Zur Beschreibung dieser Daten, soll das Ressource Description Framework(RDF) genutzt werden. Das später genauer beschrieben wird. Dadurch wird das Internet inhaltsbezogen durchsuchbar.

    Semantic Web fehlt auch in das Buzzword "Web 2.0", wobei hier auf soziale Netzwerke wie FOAF (Friend of a Friend) oder XFN (XHTML Friends Network) verwiesen wird. Soziale Netzwerke sind Verknüpfungen zwischen Personen. Wobei sich das hier auf Gemeinschaften bezieht die Inhalte produzieren wie die Wikipedianer oder Bloggern. Als Beispiele zu nennen sind hier FOAF und XFN Sie funktionieren so ähnlich wie Buddylisten bei Instant Messenger Diensten. Nur das hier die Verbindungen öffentlich gemacht werden. Diese Systeme sind bei Bloggern sehr beliebt. Denn so kann sich die Webblogs Szene Personifizieren und weiß wer dieses Webblog unterhält. Dies dient zur Stärkung der Beziehung in solchen Gemeinschaften.

    Wobei es für die Wikipedianer ein eigenständiges Projekt noch gibt das sich Semantik Wikipedia nennt. Die eigentlich nur eine Wiki über das Semantic Web ist aber auch gleichzeitig ein versuch ist die Wikipedia mit neuen Semantischen Technologien zu verbinden.

    2. Semantic Web

    Doch wie soll das Funktionieren? Als erstes brauchen wir eine Sprache, um Informationen zu beschreiben. Dafür ist das schon oft angesprochene RDF(Ressource Description Format) angedacht. RDF beschreibt Aussagen über Informationen, in so genannten Triples. Diese bestehen aus 3 Teilen(Wie man sich denken kann ;-)), aus einem Subjekt, einem Prädikat und einem Objekt. Eine Sammlung von Triples ist ein RDF-Graph. Solch ein RDF basiertes Datenmodell wird meistens als Wissenspräsentation beschrieben. In Informatiker kreisen auch als Ontologie bekannt.
    Weil anders als in Relationalen Datenbanken(wie MySQL, Access, etc.), die Verknüpfungen über den Inhalt gezogen werden und nicht über einen Schlüssel. Auf das RDF-Modell kann man leicht eine Ontologie Sprache aufsetzten, bzw. das ist so angedacht. Das W3C sieht dafür OWL oder SPARQL vor. Dadurch kann man Informationen aus einem RDF-Graphen abfragen, genauso wie mit SQL Relationale Datenbanken ausgekundschaftet werden können. In den meisten Projekten werden RDF-Graphen auch in relationalen Datenbanken gespeichert und SPARQL hat auch viel Ähnlichkeit mit SQL.

    3. Geschichte

    Bevor wie uns ins Technische begeben ist erst mal eine kleine Geschichtsstunde angesetzt. Den zum Verständnis ist es schon wichtig zu wissen, woher diese Ideen Stammen.
    Die erste Beschreibung eines Systems der einen einheitlichen Schnittstelle zur Verarbeitung von Informationen, sowie der Kommunikation mit anderen Teilnehmern ermöglicht, passierte 1945 durch Vannevar Bush in dem Artikel “As we may think”. Man glaubt es kaum ein vorfahre von George W. Bush, war ein SciFi Autor. Er beschrieb ein Gerät namens “Memex” das alle Bücher, Aufzeichnungen und Kommunikationsmittel vereint und dass sehr schnell und flexibel bewältigt. 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.

    Als nächstes ist das Semantic Web zu nennen. Das 1998 von Tim Berners Lee aufgeworfen wurde. Er fordert eine Stärkung der Nutzbarkeit der Daten und arbeitet auch an den entsprechenden Standards wie RDF, etc. 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 zusammen zu fassen. Wobei Stefan Decker und Martin Frank das Bedürfnis eines Networked Semantic Desktop 2004 Formulierten. Was den Semantic Desktop um eine P2P Funktion erweitert in der die Ontologien untereinander getauscht werden können.

    4. Technologien/Standards:

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

    4.1 RDF - Resource Description Framework

    Das Ressource Description Framework ist eine Sprache um Informationen über Ressourcen im Internet Darzustellen. 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 Dienste 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 URI’s identifiziert und beschrieben. URI's sind das gleiche wie URL's nur heißen sie nicht mehr Unified Resource Locator, sondern Identifier.

    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:

    Um Eigenschaften zu definieren wird der Dienst PURL genutzt PURL steht für Persistent Uniform Ressource Locator. Das ist eine Verlinkung von einer URL auf eine URL. Dieser Dienst ist für URL's die in Büchern oder Zeitschriften veröffentlicht werden. Denn nach ein paar Jahren kann der Link nicht mehr gültig sein und man kann so den Link auf eine andere Seite oder auf die neue URL der Seite setzen und so bleibt die URL im Buch gültig.

    Damit die Anwendungen unter den Eigenschaften immer das gleiche verstehen hat die DCMI (Dublin Core Metadata Initiative) ein paar Standard Terme mit PURL's verlinked. Näheres findet ihr unter http://dublincore.org.

    • Das Objekt ist der Autor "mosta"

    . Da aber der Nick sehr nichts sagend ist verlinken wir auf den Artikel im Forum in dem ich mich beschreibe. Also tragen wir bei Objekt den folgenden Link ein " http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html". Aber hier könnte auch ein Link auf einen XFN oder FOAF stehen.

    Der RDF Graph dazu sieht so aus.

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

    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.net/forum/viewtopic-var-t-is-136407.html">
    5.       <exterms:Creator> http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html</exterms:Creator>
    6.   </rdf:Description>
    7. </rdf:RDF>
    
    • In der ersten Zeile wird nur definiert welche XML Version benutzt wird.
    • Die zweite Zeile definiert den RDF Namespace und alle tags die mit <rdf: beginnen sind Teil des RDF Syntax.
    • Die dritte Zeile ist auch eine Namespace Deklaration und sagt aus, dass wir die Eigenschaften des DCMI benutzen um unsere Graphen zu beschreiben.
    • Die vierte Zeile ist die Ressource die Beschrieben wird
    • Die fünfte Zeile beginnt dem tag exterms:Creator und ist die Eigenschaft. Der Term, der in dem tag eingeschlossen ist, ist das Objekt.
    • Die sechste Zeile schließt die Description
    • Die siebte Zeile beendet unseren RDF Graphen.

    4.2 OWL

    Die Web Ontology Language (kurz OWL) ist eine Spezifikation des W3C, um Ontologien anhand einer formalen Beschreibungssprache erstellen, publizieren und verteilen zu können. Es geht darum, Terme einer Domäne und deren Beziehungen formal so zu beschreiben, dass auch Software (Agenten) die Bedeutung verarbeiten ("verstehen") kann (können). OWL ist somit ein wesentlicher Bestandteil der Semantic Web-Initiative von Tim Berners-Lee. OWL basiert technisch auf der RDF-Syntax und historisch auf DAML+OIL, und geht dabei über die Ausdrucksmächtigkeit von RDF-Schema weit hinaus. Zusätzlich zu RDF und RDF-Schema werden weitere Sprachkonstrukte eingeführt, die es erlauben, Ausdrücke ähnlich der Prädikatenlogik zu formulieren.

    Sprachebenen: Lite, DL und Full [Bearbeiten]

    OWL kommt in drei verschiedenen Versionen daher. Dazu wurden die Sprachebenen OWL Lite, OWL DL und OWL Full definiert. Für den Einsatz von OWL Lite/DL wurden Einschränkungen definiert, welche die Entwicklung von Tools erleichtern bzw. vollständige Inferenz ermöglichen sollen.

    OWL Lite [Bearbeiten]

    Die "Light-Version" wurde mit dem Ziel geschaffen, eine einfach zu implementierende Untermenge der Sprache zu schaffen. Sie dient vor allem zum Erschaffen einfacher Taxonomien und leicht axiomatisierter Ontologien. Dabei fielen diverse Sprachkonstrukte aus OWL DL weg.

    OWL DL [Bearbeiten]

    Dies ist die Ebene, deren Semantik noch am ehesten an DAML+OIL heranreicht. DL steht für die Beschreibungslogik (description logic) \mathcal{SHOIN} (D), welche zu einer entscheidbaren Untermenge der Prädikatenlogik erster Stufe äquivalent ist. Um die Abbildbarkeit auf diese Logik zu gewährleisten, wurden diverse Einschränkungen für den Einsatz von RDFS-Konstrukten eingefügt, zum Beispiel darf eine Klasse nicht Instanz einer anderen Klasse sein.

    OWL Full [Bearbeiten]

    OWL Full besteht aus den selben Sprachkonstrukten wie OWL DL, verzichtet aber auf die dort vorhandenen Einschränkungen. Dadurch sind die Ontologien unentscheidbar, können dafür aber prädikatenlogische Ausdrücke höheren Grades ermöglichen.

    Sprachkonstrukte [Bearbeiten]

    Die Spezifikation erweitert die Bedeutung von RDF und RDF-Schema um weitere Konstrukte, um die Ausdrucksmächtigkeit zu steigern (oder teilweise auch einzuschränken, um Entscheidbarkeit zu erreichen).

    OWL unterscheidet Klassen, Eigenschaften (properties) und Instanzen. Klassen stehen für Konzepte. Sie können Eigenschaften besitzen. Instanzen sind Individuen einer oder mehrerer Klassen.

    Klassen betreffend [Bearbeiten]

    * owl:class
    * owl:oneOf
    * owl:unionOf
    * owl:intersectionOf
    * ...

    Properties betreffend [Bearbeiten]

    * owl:Restriction
    * owl:allValuesFrom
    * owl:someValuesFrom
    * ...

    Instanzen betreffend [Bearbeiten]

    Beispiel [Bearbeiten]

    Das Beispiel beschreibt die Konzepte <Person>, <Gender> und <Woman>. Eine Frau ist definiert, als eine <Person> mit dem Wert <female> im Property <gender>, das der Klasse <Gender> angehören muss. Die Instanz <STilgner> ist somit als <Person> beschrieben eine Frau (<Woman>). Mittels Inferenz kann diese Zugehörigkeit ermittelt werden.

    4.3 SPARQL

    SPARQL ist ein rekursives Akronym und steht für "SPARQL Protocol and RDF Query Language".
    SPARQL ist eine Sprache um Informationen aus einem RDF Graphen zu erhalten. Die Grundstruktur erinnert einen stark an SQL. Da ein ähnlicher bzw. der Syntax darauf gebaut wurde. Abfragen bestehen aus vier grund Bausteinen. einer PREFIX zeile in der Variablen definiert werden können. Eine SELECT Anweisung in der die Datenbestände angegeben werden können die dursucht werden sollen. Eine WHERE Zeile in der ausgewählt wurde welche Daten aus den vorher angegebenen Quellen extrahiert werden sollen.

    Die RDF Data Access Working Group (DAWG) des World Wide Web Consortium treibt die Entwicklung und Standardisierung von SPARQL voran. Momentan (seit April 2006) ist SPARQL auf der Entwicklungsstufe Candidate Recommendation angelangt. SPARQL ist der Nachfolger mehrerer Abfragesprachen (z.B. RDF Query Language, RDQL), die ebenfalls auf RDF-Daten zugreifen.

    ARQ ist eine Implementation, die SPARQL-Abfragen durchführen kann.

    Ein Beispiel [Bearbeiten]

    Das folgende Beispiel findet die Namen aller afrikanischen Hauptstädte.

    PREFIX abc: http://example.com/exampleOntologie#
    SELECT ?capital ?country
    WHERE {
    ?x abc:cityname ?capital.
    ?y abc:countryname ?country.
    ?x abc:isCapitalOf ?y.
    ?y abc:isInContinent abc:africa.
    }

    Variabeln werden mit vorangestelltem „?“ gekennzeichnet (möglich ist auch „$“). Dabei werden alle Variablenbelegungen für ?capital und ?country zurückgegeben, die auf die Muster dieser vier RDF-Tripeln passen.

    Weil das Ausschreiben der URIs die Leserlichkeit einer Abfrage mindert, können Präfixe verwendet werden. Hier steht ein „abc:“ für „http://example.com/exampleOntologie#“



  • der artikel scheint sich endlich dem ende zuzubewegen ;-). ich werd versuchen ihn zu diesem wochende fertig zu kriegen. ich hab aber erstmal die beispiel projekte rausgeschmießen vlt. kann man daraus einen 2. artikel machen. aber ich wollte mal zu nem Punkt kommen und nicht nochmal dreimonate damit verbringen mich intensive in die verschiedene frameworks einzuarbeiten.

    was noch zu machen ist. es ist im geschichtsteil eine kurze passage über das semantic web einzufügen wo ... steht. dann die owl und sparql abschnitte zu schreiben.

    was nett wäre wenn sich das jmd. durchlesen würde und mir ne kritik dazu geben könte. Ich werd den artikel auch noch öfters in der woche bearbeiten, also ruhig nochmal schauen ob sich was geändert hat 😃 . hab es zwar schon einigen leuten zum lesen gegeben aber konstruktive kritik schadet nie.

    gruss mosta



  • Ändere bitte noch das Kürzel, [F] gibt's nicht mehr ( http://www.c-plusplus.net/forum/viewtopic-var-t-is-157919.html ). Danke 🙂

    MfG

    GPC



  • Ich werd wohl zum wochenende nicht fertig 😞 . Erstens gibt es auf der arbeit zuviel zu tun und ich hab jetzt im Netz einen Vortrag von Sir-Tim-Berners-Lee im Netz gefunden und wollte davon noch ein paar Sachen einbauen. Vorallem sind das bessere Beispiele.

    Deswegen fallen auch die Beispiel Projekte raus. Den Index hab ich jetzt schonmal vorbereitet

    --------------------------------------------------------------------------------

    Semantic Desktop die nächste Evolution des Rechners?

    • 1. Einleitung
    • 2. Semantic Web
    • 3. Was ist Semantic Desktop?
    • 4. Geschichte
    • 5. Technologien/Standards
      5.1 RDF / RDF Schema
      5.2 OWL
      5.3 SWRL
      5.4 SPARQL
    • 6. Referenzen

    1. Einleitung

    Durch das Internet hat sich die Art und Weise mit der wir Kommunizieren komplett geändert. Der Rechner mit einem Internet Anschluss gehören zur Grundausstattung. E-Mails, Instant Messenger (IM) und Webseiten gehören zu unserem Alltag und ein Leben ohne diese Dinge scheint immer schwerer vorstellbar. Doch die Handhabung all dieser Anwendungen wird aufgrund der steigenden Informationsflut immer aufwendiger. Um dem entgegen zu wirken entstammt die Idee des Semantic Desktop.

    Das Ziel des Semantic Desktop ist es den Umgang und das Erstellen von Inhalten zu erleichtern und beschleunigen. Dies geschieht durch das definieren von Informationen. Also eine einheitliche Beschreibung von Informationen. Das bezieht sich nicht auf die Inhalte, sondern das wir Sie für den Computer verständlich deklarieren. Dies geschieht so ähnlich wie MP3 Tags nur das das System nicht auf Audio Daten beschränkt ist.
    Da der Semantic Desktop eine Implementierung von Semantic Web Technologien auf den Desktop ist. Beschreibe ich als erstes die Idee des Semantic Web und gehe dann auf den Semantic Desktop ein.

    2. Semantic Web

    Das Ziel des Semantic Web ist es das World Wide Web(WWW) für den Computer benutzbar zu machen. So dass eine globale verteilte Datenbank entsteht. Das Ziel ist es das Netz mit Suchanfragen auswerten zu können.

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

    • Die erste Ebene besteht aus Links auf Inhalte und Datenbank Einträgen

    Das sind URI’s(Uniform Ressource Identifiers), der bekannteste Identifier ist die URL(Uniform Ressource Locater). Außerdem Datenbank Einträge. Diese Schicht ist die der Inhalte also das Web so wie wir es jetzt kennen.

    • Die zweite Ebene sind RDF Graphen

    Hier beginnt eigentlich das Semantic Web. Denn hier beschreiben wir unsere Inhalte. Also ihnen wird eine Bedeutung(Semantic) zu geordnet. Dafür wird RDF benutzt das ich später beschreiben werde.

    • Die dritte Ebene sind RDF Schema

    Hier wird ein einheitliches Vokabular festgelegt. Also wenn ein Begriff genutzt wird das auf einen Deklaration verwiesen werden kann und alle dann unter den Begriffen das selbe verstehen. Diese Schicht übernimmt die Aufgabe eines Duden, indem man nachschlagen kann was welches Wort meint. Nur dass das System nicht auf eine Sprache begrenzt ist, sondern es ein Abstrakter Link ist, der auch auf Definitionen in verschiedenen Sprachen weiterlinken kann.

    • Die vierte Ebene sind Ontologien

    Das ist die Ebene in der die wirklichen Vorteile eines Semantic Web zu tragen kommen. Denn hier kann den Inhalten nun eine Bedeutung zugeordnet werden. Denn wir wissen nun wenn wir eine Datei übers Internet zugreifen welcher Art Sie ist, wer der Autor ist, Thema und jede weiter Information die über sie angegeben wurde.

    3. Was ist Semantic Desktop?

    4. Geschichte

    Bevor wie uns ins Technische begeben ist erst mal eine kleine Geschichtsstunde angesetzt. Den zum Verständnis ist es schon wichtig zu wissen, woher diese Ideen Stammen.
    Die erste Beschreibung eines Systems der einen einheitlichen Schnittstelle zur Verarbeitung von Informationen, sowie der Kommunikation mit anderen Teilnehmern ermöglicht, passierte 1945 durch Vannevar Bush in dem Artikel “As we may think”. Man glaubt es kaum ein vorfahre von George W. Bush, war ein SciFi Autor. Er beschrieb ein Gerät namens “Memex” das alle Bücher, Aufzeichnungen und Kommunikationsmittel vereint und dass sehr schnell und flexibel bewältigt. 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.

    Als nächstes ist das Semantic Web zu nennen. Das 1998 von Tim Berners Lee aufgeworfen wurde. Er fordert eine Stärkung der Nutzbarkeit der Daten und arbeitet auch an den entsprechenden Standards wie RDF, etc. 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 zusammen zu fassen. Wobei Stefan Decker und Martin Frank das Bedürfnis eines Networked Semantic Desktop 2004 Formulierten. Was den Semantic Desktop um eine P2P Funktion erweitert in der die Ontologien untereinander getauscht werden können.

    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 URI’s 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:

    Um Eigenschaften zu definieren wird der Dienst PURL genutzt PURL steht für Persistent Uniform Ressource Locator. Das ist eine Verlinkung von einer URL auf eine URL. Dieser Dienst ist für URL's die in Büchern oder Zeitschriften veröffentlicht werden. Denn nach ein paar Jahren kann der Link nicht mehr gültig sein und man kann so den Link auf eine andere Seite oder auf die neue URL der Seite setzen und so bleibt die URL im Buch gültig.

    Damit die Anwendungen unter den Eigenschaften immer das gleiche verstehen hat die DCMI (Dublin Core Metadata Initiative) ein paar Standard Terme mit PURL's verlinked. Näheres findet ihr unter http://dublincore.org. Dies sind die vorher beschriebenen RDF Schema.

    • Das Objekt ist der Autor "mosta"

    . Da aber der Nick sehr nichts sagend ist verlinken wir auf den Artikel im Forum in dem ich mich beschreibe. Also tragen wir bei Objekt den folgenden Link ein " http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html". Aber hier könnte auch ein Link auf einen XFN(Xhtml Friends Network) oder FOAF(Friend-Of-A-Friend) Eintrag stehen.

    Der RDF Graph dazu sieht so aus.

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

    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.net/forum/viewtopic-var-t-is-136407.html">
    5.       <exterms:Creator> http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html</exterms:Creator>
    6.   </rdf:Description>
    7. </rdf:RDF>
    
    • In der ersten Zeile wird nur definiert welche XML Version benutzt wird.
    • Die zweite Zeile definiert den RDF Namespace und alle tags die mit <rdf: beginnen sind Teil des RDF Syntax.
    • Die dritte Zeile ist auch eine Namespace Deklaration und sagt aus, dass wir die Eigenschaften des DCMI benutzen um unsere Graphen zu beschreiben.
    • Die vierte Zeile ist die Ressource die Beschrieben wird
    • Die fünfte Zeile beginnt dem tag exterms:Creator und ist die Eigenschaft. Der Term, der in dem tag eingeschlossen ist, ist das Objekt.
    • Die sechste Zeile schließt die Description
    • Die siebte Zeile beendet unseren RDF Graphen.

    5.2 OWL

    Die Web Ontology Language (kurz OWL) ist eine Spezifikation des W3C, um Ontologien anhand einer formalen Beschreibungssprache erstellen, publizieren und verteilen zu können. Es geht darum, Terme einer Domäne und deren Beziehungen formal so zu beschreiben, dass auch Software (Agenten) die Bedeutung verarbeiten ("verstehen") kann (können). OWL ist somit ein wesentlicher Bestandteil der Semantic Web-Initiative von Tim Berners-Lee. OWL basiert technisch auf der RDF-Syntax und historisch auf DAML+OIL, und geht dabei über die Ausdrucksmächtigkeit von RDF-Schema weit hinaus. Zusätzlich zu RDF und RDF-Schema werden weitere Sprachkonstrukte eingeführt, die es erlauben, Ausdrücke ähnlich der Prädikatenlogik zu formulieren.

    Sprachebenen: Lite, DL und Full [Bearbeiten]

    OWL kommt in drei verschiedenen Versionen daher. Dazu wurden die Sprachebenen OWL Lite, OWL DL und OWL Full definiert. Für den Einsatz von OWL Lite/DL wurden Einschränkungen definiert, welche die Entwicklung von Tools erleichtern bzw. vollständige Inferenz ermöglichen sollen.

    OWL Lite [Bearbeiten]

    Die "Light-Version" wurde mit dem Ziel geschaffen, eine einfach zu implementierende Untermenge der Sprache zu schaffen. Sie dient vor allem zum Erschaffen einfacher Taxonomien und leicht axiomatisierter Ontologien. Dabei fielen diverse Sprachkonstrukte aus OWL DL weg.

    OWL DL [Bearbeiten]

    Dies ist die Ebene, deren Semantik noch am ehesten an DAML+OIL heranreicht. DL steht für die Beschreibungslogik (description logic) \mathcal{SHOIN} (D), welche zu einer entscheidbaren Untermenge der Prädikatenlogik erster Stufe äquivalent ist. Um die Abbildbarkeit auf diese Logik zu gewährleisten, wurden diverse Einschränkungen für den Einsatz von RDFS-Konstrukten eingefügt, zum Beispiel darf eine Klasse nicht Instanz einer anderen Klasse sein.

    OWL Full [Bearbeiten]

    OWL Full besteht aus den selben Sprachkonstrukten wie OWL DL, verzichtet aber auf die dort vorhandenen Einschränkungen. Dadurch sind die Ontologien unentscheidbar, können dafür aber prädikatenlogische Ausdrücke höheren Grades ermöglichen.

    Sprachkonstrukte [Bearbeiten]

    Die Spezifikation erweitert die Bedeutung von RDF und RDF-Schema um weitere Konstrukte, um die Ausdrucksmächtigkeit zu steigern (oder teilweise auch einzuschränken, um Entscheidbarkeit zu erreichen).

    OWL unterscheidet Klassen, Eigenschaften (properties) und Instanzen. Klassen stehen für Konzepte. Sie können Eigenschaften besitzen. Instanzen sind Individuen einer oder mehrerer Klassen.

    Klassen betreffend [Bearbeiten]

    * owl:class
    * owl:oneOf
    * owl:unionOf
    * owl:intersectionOf
    * ...

    Properties betreffend [Bearbeiten]

    * owl:Restriction
    * owl:allValuesFrom
    * owl:someValuesFrom
    * ...

    Instanzen betreffend [Bearbeiten]

    Beispiel [Bearbeiten]

    Das Beispiel beschreibt die Konzepte <Person>, <Gender> und <Woman>. Eine Frau ist definiert, als eine <Person> mit dem Wert <female> im Property <gender>, das der Klasse <Gender> angehören muss. Die Instanz <STilgner> ist somit als <Person> beschrieben eine Frau (<Woman>). Mittels Inferenz kann diese Zugehörigkeit ermittelt werden.

    5.3 SWRL

    5.4 SPARQL

    SPARQL ist ein rekursives Akronym und steht für "SPARQL Protocol and RDF Query Language". Durch SPARQL wird die Aussage klar das 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 ein ähnlicher bzw. der Syntax darauf gebaut wurde. Abfragen bestehen aus vier grund Bausteinen. einer PREFIX zeile in der Variablen definiert werden können. Eine SELECT Anweisung in der die Datenbestände angegeben werden können die dursucht werden sollen. Eine WHERE Zeile in der ausgewählt wurde welche Daten aus den vorher angegebenen Quellen extrahiert werden sollen.

    Die RDF Data Access Working Group (DAWG) des World Wide Web Consortium treibt die Entwicklung und Standardisierung von SPARQL voran. Momentan (seit April 2006) ist SPARQL auf der Entwicklungsstufe Candidate Recommendation angelangt. SPARQL ist der Nachfolger mehrerer Abfragesprachen (z.B. RDF Query Language, RDQL), die ebenfalls auf RDF-Daten zugreifen.

    ARQ ist eine Implementation, die SPARQL-Abfragen durchführen kann.

    Ein Beispiel [Bearbeiten]

    Das folgende Beispiel findet die Namen aller afrikanischen Hauptstädte.

    PREFIX abc: http://example.com/exampleOntologie#
    SELECT ?capital ?country
    WHERE {
    ?x abc:cityname ?capital.
    ?y abc:countryname ?country.
    ?x abc:isCapitalOf ?y.
    ?y abc:isInContinent abc:africa.
    }

    Variabeln werden mit vorangestelltem „?“ gekennzeichnet (möglich ist auch „$“). Dabei werden alle Variablenbelegungen für ?capital und ?country zurückgegeben, die auf die Muster dieser vier RDF-Tripeln passen.

    Weil das Ausschreiben der URIs die Leserlichkeit einer Abfrage mindert, können Präfixe verwendet werden. Hier steht ein „abc:“ für http://example.com/exampleOntologie#

    6. Referenzen



  • Semantic Desktop die nächste Evolution des Rechners?

    • 1. Einleitung

    • 2. Semantic Web

    • 3. Geschichte

    • 4. Was ist ein Semantic Desktop?

    • 5. Technologien/Standards

    • 5.1 RDF / RDF Schema

    • 5.2 OWL

    • 5.3 SWRL

    • 5.4 SPARQL

    • 6. Fazit

    • 7. Referenzen

    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 zu bewältigen ohne diese Anwendungen. 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 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 das wir Sie für den Computer verständlich beschreiben. Dies geschieht wie bei MP3 Tags nur das 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 der Verbindungen setzen auf den Anbieter bzw. Erzeuger von Informationen. Das birgt die Problematik das 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 Spamer 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 der 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.

    • 1.Ebene korrekten Darstellung von Inhalten

    Hier sind Standards definiert die ein Medienneutrale (uniformierte) Darstellung erlauben. Als Keycode liegt das Unicode Format vor.
    Zur Speicherung wird das XML Format verwendet. Das eine Medien- und Sprachneutralität Darstellung ermöglicht.
    Das Referenzieren von Ressourcen geschieht mittels URI’s (Der bekannteste Identifier ist der Locator [URL]). URI’s können wie folgt aussehen:

    ftp://ftp.is.co.za/rfc/rfc1808.txt
    
       http://www.ietf.org/rfc/rfc2396.txt
    
       ldap://[2001:db8::7]/c=GB?objectClass?one
    
       mailto:John.Doe@example.com
    
       news:comp.infosystems.www.servers.unix
    
       tel:+1-816-555-1212
    
       telnet://192.0.2.16:80/
    
       urn:oasis:names:specification:docbook:dtd:xml:4.1.2
    

    Es werden zwar einige dieser Protokolle nicht im Semantic Web benutzt aber es macht Sinn wenn man das in Verbindung mit dem Semantic Desktop bringt. Die erste Ebene ist damit die direkte Schnittstelle zum „alten“ Web.

    • 2.Ebene RDF Graphen

    Hier beginnt eigentlich das Semantic Web. Denn hier beschreiben wir unsere Inhalte. Also ihnen wird eine Bedeutung(Semantic) zu geordnet. Dafür wird RDF benutzt, das ich später beschreiben werde. [siehe RDF Kapitel]

    • 3.Ebene RDF Schema

    Das RDF Schema dient zum beschreiben von RDF-Triples. Das RDF-Klassen und Beziehungssystem ist ähnlich dem Typen System von Objekt-Orientierten Programmiersprachen. Es unterscheidet sich darin das die Definition einer Klasse im RDF Vokabular, nicht durch Attribute und deren Typen gestaltet wird, sondern durch die Terme auf die sich die Ressourcen beziehen.

    Diese RDF-Triples definieren Regeln bzw. Aussagen wie:

    Tür      -> subclass  -> Auto
    Tür      -> Typ       -> Material
    Material -> Typ       -> Metall
    
    VW Käfer -> Typ       -> Auto
    

    So können Beziehungen zwischen den Inhalten auf den Seiten gesetzt werden. Wobei die Beziehungen auch auf Teile der Seite oder Absätze bezogen werden können. Dadurch können Texte erstellt werden aus diesen Textbausteinen.

    • 4.Ebene Ontologien

    In dieser Ebene wird es richtig spannend. Denn in dieser Ebene können wir auf einheitliche beschriebene Inhalte mit gleichem Vokabular zugreifen. In dieser Ebene werden Ontologien erstellt. Also es werden die in der vorherigen Ebene definierten Regeln hierarchisch Organisiert. Wenn wir das auf unser Beispiel beziehen. Können wir folgende Frage beantworten und zwar "Aus was besteht die Tür eines VW Käfer?". Da wir wissen das der Käfer ein Auto ist und ein Auto eine Tür hat und eine Tür aus Material besteht und Metall ein Material ist können wir sagen das die Tür des Käfers aus Metall besteht. Um sich das zu vereinfachen kann man das als eine Relationale Datenbank ansehen, nur das hier noch ein Objekt Modell dazu gekommen ist. Mann kann also Tabellen als Typ angeben bei der Deklaration der Tabellenspalten.

    • Verifizieren
      Zum Verifizieren von Daten werden Signaturen und Verschlüsselungsverfahren genutzt. Das die Echtheit der Daten gewährleistet.

    3. Geschichte

    Bevor wie uns ins Technische begeben ist erst mal eine kleine Geschichtsstunde angesetzt. Den es ist schon Interessant 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 intuitive. 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 zusammen zu fassen. 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.
    auch ein schlachtplan ergibt sich ähnlich dem Semantic Web Paper 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 Model seines Benutzers. Sie stellen damit den „Klebstoff“ zwischen Informationen und dem „System“ da. 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 das 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 auch in diesem Zusammenhang auch von Software Agenten.

    Die ersten Versuche solche 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 eine Semantic Desktop System darstellt. Im Mittelpunkt steht ein Web-Server der die Handhabung der Ontologie übernimmt. Gnowsis bietet ein Framework an, zur Anbindung an bestehenden Software Lösungen. 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 URI’s 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:

    Um Eigenschaften zu definieren wird der Dienst PURL genutzt PURL steht für Persistent Uniform Ressource Locator. Das ist eine Verlinkung von einer URL auf eine URL. Dieser Dienst ist für URL's die in Büchern oder Zeitschriften veröffentlicht wurden. Denn nach ein paar Jahren kann der Link nicht mehr gültig sein und man kann so den Link auf eine andere Seite oder auf die neue URL der Seite setzen und so bleibt die URL im Buch gültig.

    Don't say "color" say <http://example.com/2002/std6#col>
    

    Damit die Anwendungen unter den Eigenschaften immer das gleiche verstehen hat die DCMI (Dublin Core Metadata Initiative) ein paar Standard Terme mit PURL's verlinked. Näheres findet ihr unter http://dublincore.org. Dies sind die vorher beschriebenen RDF Schema.

    • Das Prädikat ist der Autor "mosta". Da aber der Nick sehr nichts sagend ist verlinken wir auf den Artikel im Forum in dem ich mich beschreibe. Also tragen wir bei Objekt den folgenden Link ein " http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html". Aber hier könnte auch ein Link auf einen XFN(XHtml Friends Network) oder FOAF(Friend-Of-A-Friend) Eintrag stehen.

    Der RDF Graph dazu sieht so aus.

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

    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.net/forum/viewtopic-var-t-is-136407.html">
    5.       <exterms:Creator>http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html</exterms:Creator>
    6.   </rdf:Description>
    7. </rdf:RDF>
    
    • In der ersten Zeile wird nur definiert welche XML Version benutzt wird.
    • Die zweite Zeile definiert den RDF Namespace und alle tags die mit <rdf: beginnen sind Teil des RDF Syntax.
    • Die dritte Zeile ist auch eine Namespace Deklaration und sagt aus, dass wir die Eigenschaften des DCMI benutzen um unsere Graphen zu beschreiben.
    • Die vierte Zeile ist die Ressource die Beschrieben wird
    • Die fünfte Zeile beginnt dem tag exterms:Creator und ist die Eigenschaft. Der Term, der in dem tag eingeschlossen ist, ist das Objekt.
    • Die sechste Zeile schließt die Description
    • Die siebte Zeile beendet unseren RDF Graphen.

    5.2 OWL

    Die Web Ontology Language(OWL) ist eine Sprache zum beschreiben von Ontologien, wobei sie sich in 3 Sprach Ebenen unterteilt. Mit OWL lassen sich Ausdrücke formulieren ähnlich der Prädikaten-Logik. Die verschiedenen Ebenen unterscheiden sich in der Ausdrucksfähigkeit. OWL basiert auf den 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:

    <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 ist 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 das hier die Lesbarkeit durch den Menschen im Vordergrund steht. Es lehnt sich dabei an EBNF(Extended-Backus-Nau-Form) in seiner Syntax an.

    Der Syntax sieht so aus:

    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 ')'
    

    Der konkrete XML Syntax sieht so aus.

    <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 das 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 ein ähnlicher bzw. der Syntax darauf gebaut wurde. Abfragen bestehen aus vier Grund Bausteinen. einer PREFIX Zeile in der Variablen definiert werden können. Eine SELECT Anweisung in der die Datenbestände angegeben werden können die durchsucht werden sollen. Eine 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:

    PREFIX page: http://www.c-plusplus.net/forum/Artikel
    SELECT  	?topic
    WHERE{
    		?x page:topic ?mosta
    }
    

    6. Fazit

    Im groben 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 selber 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/



  • ha ich hab den Artikel doch noch dieses Jahr fertig bekommen;-p. Wär nett, wenn ich eine Einschätzung über den Artikel bekommen könnte bevor er rausgeht. Also ob Inhaltlich alles stimmig ist. Den ich hab den bestimmt 10 mal neu angefangen und immer wieder aus Textgruppen zusammengefühgt.

    gruß und guten rutsch an die redaktion



  • Cool, aber für 'ne inhaltliche Prüfung muss er zuerst auf Status T, dann für die Rechtschreibprüfung auf R 🙂



  • da keiner bisher was zu meckern hat. Stell ich den Artikel auf Rechtschreibprüfung . Wenn jmd. etwas nicht schlüssig erscheint kann er es ja trotzdem sagen



  • hab ihn jetzt gelesen, mir ist nichts aufgefallen, außer:

    Der unterschied ist aber das man hier eine riesige "relationale" Datenbank anstrebt, sondern das Entwickeln von Anwendungen die diese Daten auswerten und aufbereiten können.

    Müsste es nicht "keine riesige "relationale" Datenbank" heißen?

    MfG

    GPC



  • korrigiert heißt jetzt so:

    hier nicht eine riesige "relationale" Datenbank anstrebt



  • soll ich den Artikel auf fertig stellen? oder prüft denn noch wär anders auf rechtschreibfehler?



  • Ich schau heute oder morgen noch drüber.



  • Semantic Desktop die nächste Evolution des Rechners?

    • 1 Einleitung

    • 2 Semantic Web

    • 3 Geschichte

    • 4 Was ist ein Semantic Desktop?

    • 5 Technologien/Standards

    • 5.1 RDF / RDF Schema

    • 5.2 OWL

    • 5.3 SWRL

    • 5.4 SPARQL

    • 6 Fazit

    • 7 Referenzen

    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.

    • 1. Ebene: korrekte Darstellung von Inhalten

    Hier sind Standards definiert die ein medienneutrale (uniformierte) Darstellung erlauben. Als Keycode liegt das Unicode-Format vor.
    Zur Speicherung wird das XML-Format verwendet, das eine medien- und sprachneutrale Darstellung ermöglicht.
    Das Referenzieren von Ressourcen geschieht mittels URIs (Der bekannteste Identifier ist der Locator [URL]). URIs können wie folgt aussehen:

    ftp://ftp.is.co.za/rfc/rfc1808.txt
    
       http://www.ietf.org/rfc/rfc2396.txt
    
       ldap://[2001:db8::7]/c=GB?objectClass?one
    
       mailto:John.Doe@example.com
    
       news:comp.infosystems.www.servers.unix
    
       tel:+1-816-555-1212
    
       telnet://192.0.2.16:80/
    
       urn:oasis:names:specification:docbook:dtd:xml:4.1.2
    

    Es werden zwar einige dieser Protokolle nicht im Semantic Web benutzt, aber es ist sinnvoll, wenn man das in Verbindung mit dem Semantic Desktop bringt. Die erste Ebene ist damit die direkte Schnittstelle zum „alten“ Web.

    • 2. Ebene: RDF-Graphen

    Hier beginnt eigentlich das Semantic Web. Denn hier beschreiben wir unsere Inhalte. Also ihnen wird eine Bedeutung (Semantic) zugeordnet. Dafür wird RDF benutzt, das ich später beschreiben werde. [siehe RDF-Kapitel]

    • 3. Ebene: RDF-Schema

    Das RDF-Schema dient zum Beschreiben von RDF-Triples. Das RDF-Klassen- und Beziehungssystem ist ähnlich dem Typensystem von objektorientierten Programmiersprachen. Es unterscheidet sich darin, dass die Definition einer Klasse im RDF-Vokabular nicht durch Attribute und deren Typen gestaltet wird, sondern durch die Terme auf die sich die Ressourcen beziehen.

    Diese RDF-Triples definieren Regeln bzw. Aussagen wie:

    Tür      -> subclass  -> Auto
    Tür      -> Typ       -> Material
    Material -> Typ       -> Metall
    
    VW Käfer -> Typ       -> Auto
    

    So können Beziehungen zwischen den Inhalten auf den Seiten gesetzt werden. Wobei die Beziehungen auch auf Teile der Seite oder Absätze bezogen werden können. Dadurch können aus diesen Textbausteinen Texte erstellt werden.

    • 4. Ebene: Ontologien

    In dieser Ebene wird es richtig spannend. Denn in dieser Ebene können wir auf einheitliche beschriebene Inhalte mit gleichem Vokabular zugreifen. In dieser Ebene werden Ontologien erstellt. Also es werden die in der vorherigen Ebene definierten Regeln hierarchisch organisiert. Wenn wir das auf unser Beispiel beziehen, können wir folgende Frage beantworten und zwar "Aus was besteht die Tür eines VW Käfer?". Da wir wissen, dass der Käfer ein Auto ist und ein Auto eine Tür hat und eine Tür aus Material besteht und Metall ein Material ist, können wir sagen das die Tür des Käfers aus Metall besteht. Um sich das zu vereinfachen, kann man das als eine relationale Datenbank ansehen, nur dass hier noch ein Objektmodell dazu gekommen ist. Man kann also Tabellen als Typ angeben bei der Deklaration der Tabellenspalten.

    • Verifizieren
      Zum Verifizieren von Daten werden Signaturen und Verschlüsselungsverfahren genutzt, die die Echtheit der Daten gewährleisten.

    3. Geschichte

    Bevor wir uns ins Technische begeben, ist erst einmal eine kleine Geschichtsstunde angesetzt. Denn es ist schon interessant 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.
    ~auch ein schlachtplan ergibt sich ähnlich dem Semantic Web Paper von Tim-Berners-Lee. -- unverständlich~

    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:

    Um Eigenschaften zu definieren wird der Dienst PURL genutzt. PURL steht für Persistent Uniform Resource Locator. Das ist eine Verlinkung von einer URL auf eine URL. Dieser Dienst ist für URLs die in Büchern oder Zeitschriften veröffentlicht wurden. Denn nach ein paar Jahren kann der Link nicht mehr gültig sein und man kann so den Link auf eine andere Seite oder auf die neue URL der Seite setzen und so bleibt die URL im Buch gültig.

    Don't say "color" say <http://example.com/2002/std6#col>
    

    Damit die Anwendungen unter den Eigenschaften immer das gleiche verstehen, hat die DCMI (Dublin Core Metadata Initiative) ein paar Standard-Terme mit PURLs verlinkt. Näheres finden Sie unter http://dublincore.org. Dies sind die vorher beschriebenen RDF-Schema.

    • Das Prädikat ist der Autor "mosta". Da aber der Nick sehr nichtssagend ist, verlinken wir auf den Artikel im Forum, in dem ich mich beschreibe. Also tragen wir bei Objekt den folgenden Link ein: "http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html". Aber hier könnte auch ein Link auf einen XFN- (XHtml Friends Network) oder FOAF-(Friend-Of-A-Friend)Eintrag stehen.

    Der RDF-Graph dazu sieht so aus.

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

    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.net/forum/viewtopic-var-t-is-136407.html">
    5.       <exterms:Creator>http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html</exterms:Creator>
    6.   </rdf:Description>
    7. </rdf:RDF>
    
    • In der ersten Zeile wird nur definiert, welche XML-Version benutzt wird.
    • Die zweite Zeile definiert den RDF-Namespace und alle tags die mit <rdf: beginnen sind Teil der RDF-Syntax.
    • Die dritte Zeile ist auch eine Namespace-Deklaration und sagt aus, dass wir die Eigenschaften des DCMI benutzen, um unsere Graphen zu beschreiben.
    • Die vierte Zeile ist die Ressource die beschrieben wird.
    • Die fünfte Zeile beginnt mit dem tag exterms:Creator und ist die Eigenschaft. Der Term, der in dem tag eingeschlossen ist, ist das Objekt.
    • Die sechste Zeile schließt die Description.
    • Die siebte Zeile beendet unseren RDF-Graphen.

    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 den 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:

    <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.

    Der Syntax sieht so aus:

    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 ')'
    

    Der konkrete XML Syntax sieht so aus.

    <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 ein ähnlicher bzw. der Syntax darauf gebaut 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:

    PREFIX page: http://www.c-plusplus.net/forum/Artikel
    SELECT  	?topic
    WHERE{
    		?x page:topic ?mosta
    }
    

    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/



  • Schau mal noch in Kapitel 4 und 5.4, da habe ich je einen Satz markiert, den ich für unverständlich halte. Da fehlt irgendwie etwas.

    Und dann noch etwas, was ich nicht verstehe:

    Das Prädikat ist der Autor "mosta". Da aber der Nick sehr nichtssagend ist, verlinken wir auf den Artikel im Forum, in dem ich mich beschreibe. Also tragen wir bei Objekt den folgenden Link ein: "http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html".

    Im vorigen Absatz hast du doch geschrieben, dass das Objekt "http://purl.org/dc/elements/1.1/Creator" wäre. Jetzt sagst du aber, dass es "http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html" ist. Stimmt das so?



  • Semantic Desktop die nächste Evolution des Rechners?

    • 1 Einleitung

    • 2 Semantic Web

    • 3 Geschichte

    • 4 Was ist ein Semantic Desktop?

    • 5 Technologien/Standards

    • 5.1 RDF / RDF Schema

    • 5.2 OWL

    • 5.3 SWRL

    • 5.4 SPARQL

    • 6 Fazit

    • 7 Referenzen

    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.

    • 1. Ebene: korrekte Darstellung von Inhalten

    Hier sind Standards definiert die ein medienneutrale (uniformierte) Darstellung erlauben. Als Keycode liegt das Unicode-Format vor.
    Zur Speicherung wird das XML-Format verwendet, das eine medien- und sprachneutrale Darstellung ermöglicht.
    Das Referenzieren von Ressourcen geschieht mittels URIs (Der bekannteste Identifier ist der Locator [URL]). URIs können wie folgt aussehen:

    ftp://ftp.is.co.za/rfc/rfc1808.txt
    
       http://www.ietf.org/rfc/rfc2396.txt
    
       ldap://[2001:db8::7]/c=GB?objectClass?one
    
       mailto:John.Doe@example.com
    
       news:comp.infosystems.www.servers.unix
    
       tel:+1-816-555-1212
    
       telnet://192.0.2.16:80/
    
       urn:oasis:names:specification:docbook:dtd:xml:4.1.2
    

    Es werden zwar einige dieser Protokolle nicht im Semantic Web benutzt, aber es ist sinnvoll, wenn man das in Verbindung mit dem Semantic Desktop betrachtet. Die erste Ebene ist damit die direkte Schnittstelle zum „alten“ Web.

    • 2. Ebene: RDF-Graphen

    Hier beginnt eigentlich das Semantic Web. Denn hier beschreiben wir unsere Inhalte. Also ihnen wird eine Bedeutung (Semantic) zugeordnet. Dafür wird RDF benutzt, das ich später beschreiben werde. [siehe RDF-Kapitel]

    • 3. Ebene: RDF-Schema

    Das RDF-Schema dient zum Beschreiben von RDF-Triples. Das RDF-Klassen- und Beziehungssystem ist ähnlich dem Typensystem von objektorientierten Programmiersprachen. Es unterscheidet sich darin, dass die Definition einer Klasse im RDF-Vokabular nicht durch Attribute und deren Typen gestaltet wird, sondern durch die Terme auf die sich die Ressourcen beziehen.

    Diese RDF-Triples definieren Regeln bzw. Aussagen wie:

    Tür      -> subclass  -> Auto
    Tür      -> Typ       -> Material
    Material -> Typ       -> Metall
    
    VW Käfer -> Typ       -> Auto
    

    So können Beziehungen zwischen den Inhalten auf den Seiten gesetzt werden. Wobei die Beziehungen auch auf Teile der Seite oder Absätze bezogen werden können. Dadurch können aus diesen Textbausteinen Texte erstellt werden.

    • 4. Ebene: Ontologien

    In dieser Ebene wird es richtig spannend. Denn in dieser Ebene können wir auf einheitliche beschriebene Inhalte mit gleichem Vokabular zugreifen. In dieser Ebene werden Ontologien erstellt. Also es werden die in der vorherigen Ebene definierten Regeln hierarchisch organisiert. Wenn wir das auf unser Beispiel beziehen, können wir folgende Frage beantworten und zwar "Aus was besteht die Tür eines VW Käfer?". Da wir wissen, dass der Käfer ein Auto ist und ein Auto eine Tür hat und eine Tür aus Material besteht und Metall ein Material ist, können wir sagen das die Tür des Käfers aus Metall besteht. Um sich das zu vereinfachen, kann man das als eine relationale Datenbank betrachten, nur dass hier noch ein Objektmodell dazu gekommen ist. Man kann also Tabellen als Typ angeben bei der Deklaration der Tabellenspalten.

    • Verifizieren
      Zum Verifizieren von Daten werden Signaturen und Verschlüsselungsverfahren genutzt, die die Echtheit der Daten gewährleisten.

    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 ergibt sich ähnlich dem Semantic Web Paper[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:

    Um Eigenschaften zu definieren wird der Dienst PURL genutzt. PURL steht für Persistent Uniform Resource Locator. Das ist eine Verlinkung von einer URL auf eine URL. Dieser Dienst ist für URLs die in Büchern oder Zeitschriften veröffentlicht wurden. Denn nach ein paar Jahren kann der Link nicht mehr gültig sein und man kann so den Link auf eine andere Seite oder auf die neue URL der Seite setzen und so bleibt die URL im Buch gültig.

    Don't say "color" say <http://example.com/2002/std6#col>
    

    Damit die Anwendungen unter den Eigenschaften immer das gleiche verstehen, hat die DCMI (Dublin Core Metadata Initiative) ein paar Standard-Terme mit PURLs verlinkt. Näheres finden Sie unter http://dublincore.org. Dies sind die vorher beschriebenen RDF-Schema.

    • Das Prädikat ist der Autor "mosta". Da aber der Nick sehr nichtssagend ist, verlinken wir auf den Artikel im Forum, in dem ich mich beschreibe. Also tragen wir bei Prädikat den folgenden Link ein: "http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html". Aber hier könnte auch ein Link auf einen XFN- (XHtml Friends Network) oder FOAF-(Friend-Of-A-Friend)Eintrag stehen.

    Der RDF-Graph dazu sieht so aus.

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

    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.net/forum/viewtopic-var-t-is-136407.html">
    5.       <exterms:Creator>http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html</exterms:Creator>
    6.   </rdf:Description>
    7. </rdf:RDF>
    
    • In der ersten Zeile wird nur definiert, welche XML-Version benutzt wird.
    • Die zweite Zeile definiert den RDF-Namespace und alle tags die mit <rdf: beginnen sind Teil der RDF-Syntax.
    • Die dritte Zeile ist auch eine Namespace-Deklaration und sagt aus, dass wir die Eigenschaften des DCMI benutzen, um unsere Graphen zu beschreiben.
    • Die vierte Zeile ist die Ressource die beschrieben wird.
    • Die fünfte Zeile beginnt mit dem tag exterms:Creator und ist die Eigenschaft. Der Term, der in dem tag eingeschlossen ist, ist das Objekt.
    • Die sechste Zeile schließt die Description.
    • Die siebte Zeile beendet unseren RDF-Graphen.

    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 den 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:

    <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.

    Der Syntax sieht so aus:

    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 ')'
    

    Der konkrete XML Syntax sieht so aus.

    <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 ein ähnlicher Syntax benutzt wurde bzw. der 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:

    PREFIX page: http://www.c-plusplus.net/forum/Artikel
    SELECT  	?topic
    WHERE{
    		?x page:topic ?mosta
    }
    

    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/



  • -predator- schrieb:

    Schau mal noch in Kapitel 4 und 5.4, da habe ich je einen Satz markiert, den ich für unverständlich halte. Da fehlt irgendwie etwas.

    done

    -predator- schrieb:

    Und dann noch etwas, was ich nicht verstehe:

    Das Prädikat ist der Autor "mosta". Da aber der Nick sehr nichtssagend ist, verlinken wir auf den Artikel im Forum, in dem ich mich beschreibe. Also tragen wir bei Objekt den folgenden Link ein: "http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html".

    Im vorigen Absatz hast du doch geschrieben, dass das Objekt "http://purl.org/dc/elements/1.1/Creator" wäre. Jetzt sagst du aber, dass es "http://www.c-plusplus.net/forum/viewtopic-var-t-is-139119.html" ist. Stimmt das so?

    da hab ich mich verschrieben das heißt natürlich Prädikat.

    kuck es dir nochmal an, wenn nichts mehr falsch ist stell ich den artikel auf fertig um.
    Ach was ich noch wissen wollte ist wie liest sich der Artikel?



  • Daraus ergibt sich ein Schlachtplan ergibt sich ähnlich dem Semantic Web Paper[roadmap] von Tim-Berners-Lee.

    Nochmal bitte 🙂


Anmelden zum Antworten