Upload
haydn-schmaling
View
215
Download
1
Embed Size (px)
Citation preview
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 1
Semantisches Web
Peter BrezanyInstitut für Softwarewissenschaft
Universität Wien
Tel. : 01/4277 38825E-mail : [email protected]
Sprechstunde: Mittwoch 13-14
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 2
Einführung• In der letzten Dekade – neues Forschungsgebiet,
bekannt als Semantic Web.• Dieser Begriff wurde von Tim Berners-Lee, den
Erfinder des Web, eingeführt.• Motivation:
– Momentan existieren mehrere Billionen Dokumenten im WWW, die von mehr als 300 Millionen benutzt werden, und Millionen Seiten in Firmen-Intranets (ein Beispiel ist auf den folgenden Folie – Internet-Suche: Jaguar = Jaguar? oder Tomaten = Paradeiser!).
– Es wird immer schwieriger, die vom Anwendern verlangte Information zu finden, organisieren, zugreifen und warten.
. Semantic Web bietet vorteilhafteren Zugriff auf die Information an; dieser Zugriff ist basiert auf der Ausnutzung von meta-daten, die mit Maschinen bearbeitet werden können.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 3
„jaguar“ = „jaguar“?
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 4
tomate = paradeiser! (und mehr)
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 5
Einführung• Man kann sich Semantic Web (SWeb) als eine
Erweiterung des existierenden Web vorzustellen, wo zusätzlich Dokumente mit Meta-Information annotiert sind.
• Die Meta-Information definiert, worüber die Information (Dokumente) sind – in einer Form, die durch Maschinen bearbeitet werden kann.
• Die explizite Repräsentation der Information, begleitet mit Domänen-Theorien (d.h. Ontologien), wird ein Web ermöglichen, das eine qulitativ neue Dienstebene anbieten wird.
• Neue SWeb Sprachen (RDF, XML, DAML+OIL usw.) bringen mächtige AI Techniken in die Berührung mit der Web Infrastruktur.
• SWeb wird ein unglaublich großes Netz von knowledge zusammenweben und es um maschinelle Bearbeitbarkeit.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 6
Ontologien
• Ontologien strukturieren Informationen und beschreiben dessen Gegenstände und Beziehungen formal, damit sie für Menschen und auch für Computer verständlich sind.
• Sie ermöglichen ein shared und common Verständnis einer Domäne, das zwischen Leuten und Anwendungssystemen kommuniziert werden kann.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 7
Sprachen für Semantisches WebIn den letzten Jahren, mehrere markup Sprachen wurden mit dem Ziel entwickelt,
das Semantische Web zu realisieren.
In XML fehlt Semantik; zB, ein Computer-Programm ist nich fähig zu identifizieren,dass <SALARY> Daten sich auf dieselbe Information wie <WAGE> Daten beziehen.
Der RDF wurde als ein Standard für Metadaten entwickelt, um eine formale Semantik ins Web anzuschließen. RDFS (RDF Schema) – ein OO TypSystem – kann als eine minimale Sprache für OntologieModellierung betrachtet werden.
DAML+OIL überwindet mehrere Ausdruckunzulänglichkeiten von RDFS.
OWL ist von DAML+OIL abgeleitet und baut auf RDF.
HTML XML (Extensible Markup Language)XHTML RDF (Resource Description Framework)
OWL (Web Ontology Language – Draft 12 November 2002)
RDFS (Resource Description Framework Schema)DAML+OIL (Ontology Description Language)
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 8
RDF
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 9
RDF - Resource Description Framework
Das Resource Description Framework (RDF) ist eine Anwedung von XML. Es dient der Beschreibung von Informationen einer Webressource (z. B. einer Webseite oder auch einer ganzen Site). RDF erlaubt die Codie-rung, den Austausch und die Wiederverwendung von strukturierten Meta-daten (Daten über Daten). Langfristig soll RDF und auf dem RDF ba-sierte verschiedene Anwendungen und Ressourcen zu einem webbasierten semantischen Netz (semantic Web) verbinden. Hierdurch soll der Informa-tionsaustausch zwischen Menschen und Anwendungen, aber insbesondere auch zwischen Anwendungen verbessert werden. In Konkurrenz zur W3C Empfehlung RDF gibt es noch die ISO-standardisierten Topic Maps, die ähnliches leisten sollen.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 10
Metadaten• Metadaten – Daten über Daten (Beispiel:
Katalogisierung in herkömmlichen Biblotheken)• Die Strukturierte Beschreibung und Verwaltung
von Metadaten is für eine effiziente Nutzung von verteilten Datenquellen von großer Bedeutung.
• Für HTML-Dokumente gibt es sogenannte Meta-Tags, die im Header des Dokuments stehen und von zahlreichen Suchdiensten verarbeitet werden. Das folgende Beispiel zeigt, wie mit einem Meta-Tag der Titel eines Dokuments angegeben werden kann.
<META NAME="Title" CONTENT=“Vorlesung Metadaten
unserer Gruppe“ LANG=de)>
Nicht so einfach bei Dokumenten, die nicht im HTML- Format sind.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 11
Anforderungen an ein Metadatenformat• Zur Steigerung der Effizienz sollten Metadaten maschinell
verarbeitbar aber trotzdem vom Menschen lesbar sein, d. h. in Textform vorliegen.
• Die Daten sollten für den Austausch über Computernetze, insbesondere das Internet geeignet sein und durch verschiedene Applikationen genutzt werden können.
• Die Unabhängigkeit von einer bestimmten Anwendungsdo-mäne sollte ebenso gegeben sein.
• Skalierbarkeit im Hinblick auf die Verarbeitungsgeschwindig-keit und Erweiterungsfähigkeit.
• Das W3C hat versucht mit dem RDF (Resource Description Framework) diesen Forderungen Rechnung zu tragen.
• Die in RDF ausgedrückte Representation von Metadaten kann ohne Semantikverlust zwischen Anwendungen ausgetauscht werden.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 12
Ziele des RDF RDF soll für den Einsatz in unterschiedlichen
Anwendungen probate Mittel zur Verfügung stellen, angefangen bei der Verbesserung von Suchmaschinen in Bezug auf die Qualität der Suchergebnisse, über den Einsatz bei der Katalogisie-rung von Datenquellen zur Beschreibung von Inhalten und Beziehungen zu anderen Dokumenten bis hin zur Klassifizie-rung und Bewertung von Werken im Internet. Darüberhinaus sollen intelligente Software Agenten beim „knowledge sharing“ und dem Austausch von Informationen unterstützt sowie die Dokumentation der Rechte an Web-Inhalten erleichtert werden. Schließlich soll der Einsatz von digitalen Signaturen zusammen mit RDF die Sicherheit im Internet für electronic commerce und ähnliche sicherheits- relevante Anwendungen fördern.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 13
Was ist RDF?• RDF ist eine deklarative Sprache zur Beschreibung von
elektronischen Ressourcen -- Dingen, die mit einem URI (Uniform Resource Identifier) referenzierbar sind.
• RDF kennt keinen speziellen vordefinierten Wortschatz zur Beschreibung von Metadaten, sondern bietet die Möglichkeit verschiedene Standards einzubinden oder gar neue Schemata zu definieren.
• Der grundlegende Gedanke bei RDF ist der einer Sprache, mit der man Aussagen über Dinge trifft, die mittels gerichteter Graphen modelliert werden können.
• Diese Graphen bestehen aus Knoten, zugehörigen Paaren von Attributen und Werten.
• Knoten sind beispielsweise Quellen (Resources) im Internet, Attribute sind die Eigenschaften der Knoten, derenWerte entweder atomar sind (also Text Strings oder Zahlen) oder wiederum Quellen bzw. Dokumente mit Attributen.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 14
Was ist RDF? (2)
• RDF Modelle werden dann mittels XML (eXtensible Markup Language) speicherbar und austauschbar repräsentiert.
• RDF bedient sich der Syntax von XML ohne dabei Annahmen über ein bestimmtes Anwendungsgebiet vorauszusetzen.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 15
Das grundlegende RDF ModellEigenschaften von Ressourcen werden durch Paare von Attributen und Werten beschrieben. Eigenschaften können außerdem Beziehungen zwischen Ressourcen repräsentieren.
Das grundlegende RDF Modell kennt drei verschiedene Objekttypen:Resources: Alles, was mittels RDF Ausdrücken beschrieben wird, wird
als Ressource bezeichnet. Das kann ein HTML-Dokument, mehrere verknüpfte Internetseiten oder nur ein Teil einer Seite sein. Ebenso sind beispielsweise gedruckte Bücher Ressourcen. Allgemein wird in RDF jedes Werk, das mit einem URI referenziert werden kann, als Ressource bezeichnet.
Properties: Als Eigenschaft einer Ressource können spezielle Charakteristika, Attribute oder Beziehungen zu anderen Ressourcen gelten. Die spezifischen Bedeutungen der Eigenschaften legen fest, welche Werte sie annehmen können.
Statement: Eine Ressource zusammen mit ihren benannten Eigenschaften und den zugehörigen Werten bildet schließlich ein sogenanntes RDF Statement. Die drei Teile eines Statements werden in Anlehnung an die Grammatik mit Subjekt, Prädikat und Objekt bezeichnet. Das Objekt (der Wert der Eigenschaft) eines RDF Statements kann also eine andere Ressource, ein einfacher Text String, ein Literal oder ein anderer einfacher Datentyp sein.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 16
Das grundlegende RDF Modell (2)
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 17
Beispiele für RDF Statements
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 18
Beispiele für RDF Statements (2)Das vorige Beispiel unter Verwendung der XML
Syntax lautet:
<?xml version="1.0"?> <rdf:RDF xmlns:rdf= "http://w3.org/TR/1999/PR-rdf-syntax-19990105#" xmlns:s="http://description.org/schema/"> <rdf:Description about="http://www.muster.de/home/index.html"> <s:Autor>Werner Muster</s:Autor> <s:Datum>1999-11-11</s:Datum> </rdf:Description></rdf:RDF>
Die folgende Folie bringt eine Erklärung.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 19
Beispiele für RDF Statements (3)
Die erste Zeile bezeichnet die zu verwendende XML Version.
Dann wird der XML-namespace (xmlns) referenziert, der in der RDF Syntax-definition unter der angegebenen URL beschrieben ist.
Das Metadatenschema wird durch das Präfix ’s’ gekennzeichnet und der xmlns assoziiert es mit der Internetadresse der ’description organisation’ (die frei erfunden ist).
’Description about’ bezeichnet die Ressource, über die Informationen angegeben werden.
Das ’s’ vor den Tags ’Autor’ und ’Date’ referenziert dann das Schema in dem die Eigenschaften Autor und Datum und ihre zulässigen Werte spezifiziert sind.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 20
Beispiele für RDF Statements (4)
Das zweite Beispiel in Abb. 4 zeigt die Modellierung der Verwendung von Ressourcen als Werte der Eigenschaften einer ersten Ressource.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 21
Beispiele für RDF Statements (5)Das Beispiel 2 unter Verwendung der XML Syntax lautet:
<?xml version="1.0"?> <rdf:RDF xmlns:rdf= "http://w3.org/TR/1999/PR-rdf-syntax-19990105#"
xmlns:s="http://description.org/schema/"> <rdf:Description about="http://www.muster.de/home/index.html"> <s:Autor rdf:resource="http://www.job.de/mitarbeiter/M12345"/>
</rdf:Description> <rdf:Description about="http://www.job.de/mitarbeiter/M12345"/>
<s:Name>Werner Muster</s:Name> <s:E-Mail>[email protected]</s:E-Mail> </rdf:Description> </rdf:RDF>
Hier wird deutlich, dass es sich bei der Eigenschaft Autor um eine Ressource handelt, die mittels einer URI referenziert wird und so wiederum detailliert beschrieben werden kann.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 22
Hilfskonzepte des RDF Die bisher vorgestellten Mittel scheinen wenig komfortabel zu
sein, um beispielsweise ganze Sammlungen von Ressourcen eines Autors zu beschreiben.
Allgemein lassen sich verschiedene Ressourcen mit der gleichen Eigenschaft ohne Hilfsmittel nur umständlich beschreiben. Glei-ches gilt für eine Ressource mit einer Eigenschaft mit verschiede-nen Werten. Hierzu wurde das Container Model entwickelt, das drei Typen von Containern als Sammelobjekte unterscheidet.
Bag Eine ungeordnete Menge von Elementen. Wenn die Reihenfol-ge von Ressourcen keine Rolle spielt wird dieser Typ verwendet.
Sequence Eine geordnete Menge. Dieser Typ kommt zur Anwendung, wenn eine spezielle Ordnung der Werte einer Eigenschaft ausgedrückt werden soll, beispielsweise bei der Auflistung von Publikationen eines Autor nach dem Zeitpunkt ihrer Veröffentlichung.
Alternative Eine ungeordnete Menge von Alternativen. Dieser Typ drückt aus, dass es keine Role spielt welcher Wert zur weiteren Verarbeitung herangezogen wird.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 23
Hilfskonzepte des RDF (2)Zur Modellierung einer Sammlung wird eine zusätzliche Ressource benutzt, die dazu dient, den Container selbst (seine Instanz) zu identifizieren. Diese Ressource ist dann Instanz eines der Containerobjekttypen. Die folgenden Beispiele sollen die Anwendung von Containern verdeutlichen.Die erste Aussage, die mittels RDF/XML modelliert werden soll, lässt sich verbal mit dem Satz: „Die Studenten des Seminars Datenbanken im WWW sind Stefan, Karl, Maik, Katrin und Sonja.“ beschreiben.
<rdf:RDF<rdf:Description about= "http://www.universitaet.de/seminare/wwwdatenbanken"> <s:students><rdf:bag><rdf:li Stefan> <rdf:li Karl> <rdf:li Maik><rdf:li Katrin> <rdf:li Sonja></rdf:bag> </s:students>
</rdf:Description></rdf:RDF>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 24
Hilfskonzepte des RDF (3) Bag Container
Ungeordnete Gruppe von Ressourcen oder Literalen Kann Duplikate enthaltenRDF/XML:<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.edu/students/vocab#"> <rdf:Description rdf:about="http://example.edu/courses/6.001"><s:students><rdf:Bag><rdf:li rdf:resource="http://example.edu/students/Amy"/><rdf:li rdf:resource="http://example.edu/students/Tim"/><rdf:li rdf:resource="http://example.edu/students/John"/><rdf:li rdf:resource="http://example.edu/students/Mary"/><rdf:li rdf:resource="http://example.edu/students/Sue"/></rdf:Bag></s:students></rdf:Description></rdf:RDF>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 25
Hilfskonzepte des RDF (4)Alt Container
Gruppe von Ressourcen oder Literalen Enthält unterschiedliche Elemente (Alternativen)RDF/XML:<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/packages/vocab#"> <rdf:RDF><rdf:Description rdf:about="http://example.org/packages/X11"><s:DistributionSite><rdf:Alt><rdf:li rdf:resource="ftp://ftp.example.org"/><rdf:li rdf:resource="ftp://ftp.example1.org"/><rdf:li rdf:resource="ftp://ftp.example2.org"/></rdf:Alt></s:DistributionSite></rdf:Description></rdf:RDF>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 26
Hilfskonzepte des RDF (5) Collection
ungeordnete Gruppe Vordefinierte Eigenschaften
wie „list“, „first“, „rest“ und „nil“ werden verwendet
RDF/XML:<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.edu/students/vocab#"> <rdf:Description rdf:about="http://example.edu/courses/6.001"><s:students rdf:parseType="Collection" ><s:student rdf:resource="http://example.edu/students/Amy"/><s:student rdf:resource="http://example.edu/students/Tim"/><s:student rdf:resource="http://example.edu/students/John"/></s:students></rdf:Description></rdf:RDF>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 27
Hilfskonzepte des RDF (6)
Für den Fall, dass eine Aussage über die Elemente in einem Container getroffen wird, muss eine syntaktische und semantische Feinheit etwas näher untersucht werden.
Zur Referenzierung des zu beschreibenden Objekts (der Ressource) dient das about-Attribut.
Auf diese Weise wird jedoch lediglich eine Aussage über das Containerobjekt getroffen, jedoch nicht über die Elemente in dem Container. Ein neues Attribut aboutEach behebt dieses Problem. Im folgenden Beispiel soll dies verdeutlicht werden.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 28
Hilfskonzepte des RDF (7)<rdf:RDF
<rdf:bag ID="pages"><rdf:li resource="http://www.edu.de/home.htm"<rdf:li resource="http://www.uni.de/index.htm"</rdf:bag>
<rdf:Description aboutEach=#pages<s:Autor>Werner Muster</s:Autor></rdf:Description>
</rdf:RDF>
Die Aussage, die hier über die beiden HTML Dokumente gemacht wird könnte genauso durch zwei eigenständige Statements getroffen werden. Man ist jedoch auf die Verwendung von Containern angewiesen, wenn die Beschreibung zwar auf alle Containerelemente als Gruppe, jedoch nicht auf jedes einzelne Element für sich zutrifft. Soll beispielsweise die nicht einstimmige Entscheidung der Mitglieder eines Rates modelliert werden, so können alle Mitglieder in ein Containerobjekt aufgenommen werden, das den Rat repräsentiert.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 29
RDF Schema
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 30
Einführung zum RDF Schema (RDFS)Die eindeutige Belegung von Ausdrücken mit einer
wohldefinierten Semantik ist für die maschinelle Verarbeitung von Informationen außerordentlich wichtig. Dies wird in RDF durch Referenzen auf Schemata sichergestellt, wie sie in den vorangegangenen Beispielen zu sehen waren.
Diese Schema definieren die Ausdrücke, die in den Statements gebraucht werden und versehen sie mit einer eindeutigen Semantik.
RDF ist dabei nicht auf ein Schema festgelegt, sondern bietet die Möglichkeit verschiedene Schemata zu entwickeln und auch gleichzeitig zu verwenden.
Dies wird erreicht, indem im RDF die Mittel der XML-namespaces genutzt werden, die die Verwendung eines Wortes in den Kontext eines Schemas stellen, indem die gewünschte Bedeutung festgelegt ist.
Ein RDF-Schema bietet neben Semantikdefinition des Vokabulars aber noch die Möglichkeit, Restriktionen in Bezug auf die Verwendung von Eigenschaften (Properties) zu modellieren.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 31
Einführung zum RDF Schema (RDFS) (2)
• RDFS erfüllt eine andere Rolle als XML Schema– XML Schema (und auch DTD) schreibt die Reihenfolge und
Kombination von tags in einem XML Dokument.– RDFS gibt nur die Information über die Interpretierung der in
einem RDF Modell gegebenen statements aber gibt keine Beschränkung auf die syntaktische Gestaltung einer RDF Definition.
• RDFS ermöglicht ein bestimmtes Vokabular für RDFDaten (zB. hasName) zu definieren und die Art von Objekten zu spezifizieren, an die diese Attribute angewendet werden können.
• Der RDFS Mechanism bietet ein fundamentales TypSystem für RDF Modelle.
• Dieses TypSystem benutzt bestimmte vordefinierte Begriffe, wie Class, subProprertyOf, und subClassOf (emöglicht die hierarschische Organisation solcher Klassen zu spezifizieren); Beispiel: nächste Folie.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 32
Einführung zum RDF Schema (RDFS) (3)<rdfs:Class rdf:about=“Book“/>
<rdfs:Class rdf:about=“HardCover“> <rdfs: subClassOf rdf:resource=“#Book“/></rdfs:Class
<Hardcover rdf:resource=“http://www.books.org/ISBN0062515861“/>
Properties können mit ihrem domain und range definiert werden, und in einer property Hierarchie organisiert werden – durch subPropertyOf:
<rdfs:Property rdf:about=“hasPrice“> <rdfs:domain rdf:resource=“#Book“/></rdfs:Property
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 33
Klassen und EigenschaftenRDF verfolgt eine Art Klassenkonzept, dass sich jedoch in einem wesentlichen Punkt von dem in den meisten Objekt-modellierungssprachen unterscheidet. Eigenschaften werden im RDF als Kernklassen-Objekte betrachtet. Beim herkömmliche Ansatz sind Eigenschaften Attribute einer Klasse.Laut RDF Modell und Syntax Spezifikation können Ressourcen Instanzen einer oder mehrerer Klassen sein. Diese Zuordnung wird mittels einer type Eigenschaft ausgedrückt.Auch im RDF sind Klassen häufig hierarchisch organisiert, was durch eine spezielle Eigenschaft angezeigt wird. Eine Klasse Literatur kann beispielsweise die Unterklassen Roman und Gedicht haben. Eine Ressource vom Typ Roman ist dann auch vom Typ Literatur.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 34
Klassen und Eigenschaften (2)
Daneben gibt es eine Reihe weiterer Ressourcen und Eigenschaften, mit denen Statements bezüglich Einschränkungen zur konsistenten Verwendung von Elementen des RDF modelliert werden können. Einen Überblick über alle Klassen und Ressourcen soll die folgende Abbildung 5 geben. Abgerundete Rechtecke symbolisieren Klassen, Punkte Ressourcen und ein Pfeil weist jeweils ausgehend von einer Ressource auf die sie definierende Klasse. Elemente mit dem Präfix rdf: und rdfs: sind bzw. werden in anderen Dokumenten formal definiert. In den folgenden Abschnitten sollen einige der Klassen und Eigenschaften näher erläutert werden.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 35
Klassen und Eigenschaften (3)
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 36
Kern-Klassen im RDFrdfs:Resource Alles, was mittels RDF beschrieben
werden kann, wird als Instanz dieser Klasse betrachtet. Diese Klasse repräsentiert die Menge der Ressourcen wie sie in der Modell- und Syntax-Spezifikation des RDF formal eingeführt werden, hat aber nichts mit dem syntaktischen Element resource zu tun, das in der RDF/XML-Syntax verwendet wird.
rdf:Property Diese Klasse repräsentiert eine Untermenge von Ressourcen, die Eigenschaften sind. Die Tatsache, dass Eigenschaften auch Ressourcen sind ermöglicht ihre Beschreibung durch RDF selbst.
rdfs:Class Ein Typ oder eine Kategorie, die ähnlich des Klassenkonzepts in OO-Modellierungssprachen eine Menge kennzeichnet, in der Elemente gleicher Art vertreten sind, wird von dieser Klasse abgeleitet. Wann immer ein RDF-Schema eine neue Klasse definiert, hat diese die Eigenschaft rdf:type mit dem Wert rdfs:Class. Die Zugehörigkeit von Ressourcen zu einer Klasse wird ebenso mit der Eigenschaft rdf:type markiert, deren Wert die Klasse ist.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 37
Kern-Eingeschaften im RDFrdf:type Diese Eigenschaft zeigt an, dass eine Ressource
zu einer Klasse gehört. Handelt es sich um eine spezielle Klasse, so wird die Ressource als Instanz dieser Klasse betrachtet.
rdfs:subClassOf Mit dieser Eigenschaft werden hierarchische Beziehungen zwischen Klassen spezifiziert. Die oberste Klasse ist hierbei immer die Klasse rdf:Resource und nur Instanzen von rdfs:Class können die Eigenschaft rdf:subClassOf haben. Die Zuordnung einer Klasse zu mehreren Oberklassen ist möglich. Außerdem handelt es sich um eine transitive Eigenschaft, was bedeutet, dass eine Klasse C, die Unterklasse von einer Klasse B ist auch Unterklasse von A ist, wenn B Unterklasse von A ist.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 38
Kern-Eingeschaften im RDF (2)
rdfs:subPropertyOf Spezialisierungen einer Eigenschaft werden durch dieses Attribut definiert. Auch hier handelt es sich um eine transitive Eigenschaft. D.h., dass eine Ressource R mit der Eigenschaft E2 mit dem Wert W auch die Eigenschaft E1 mit dem Wert What, wenn E2 die Eigenschaft rdfs:subPropertyOf mit dem Wert E1 hat. Im Gegensatz zu rdfs:subClassOf können zyklische Beziehungen aufgebaut werden, die eine Äquivalenz-Beziehung zwischen Eigenschaften ausdrücken.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 39
ConstraintsDie Einschränkung der Domäne und des Wertebereichs einer Eigenschaft erfolgt in einem RDFSchema durch zwei Ressourcen die Instanzen der Klasse rdfs:ConstraintProperty sind.
rdfs:range Diese Eigenschaft beschränkt den Wertebereich, den eine Eigenschaft annehmen kann, auf die rdfs:range angewandt wird. Es ist hierbei maximal ein Wert zulässig. Beispielsweise könnte als Wert zu rdfs:range für die Eigenschaft geschlechtDesEhemannes „männlich“ definiert werden. Als Wert einer Eigenschaft kommt also nur eine Ressource einer bestimmten Klasse in Frage. Der Wertebereich wird außerdem an Sub-Klassen vererbt.
rdfs:domain Die Ressourcen, auf die eine bestimmte Eigenschaft angewendet werden darf, wird durch rdfs:domain auf Instanzen bestimmter Klassen beschränkt. Dabei können beliebig viele Klassen angegeben werden.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 40
Simple RDF – Example (instance of the vCard ontology)
<?xml version='1.0' encoding='UTF-8'?>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:vCard='http://www.w3.org/2001/vcard-rdf/3.0#' >
<rdf:Description rdf:about="http://somewhere/JohnSmith/"> <vCard:FN>John Smith</vCard:FN> <vCard:N rdf:parseType="Resource">
<vCard:Family>Smith</vCard:Family><vCard:Given>John</vCard:Given>
</vCard:N> </rdf:Description>
</rdf:RDF>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 41
Graph of the data model
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 42
Triples of the Data Model
Subject Predicate Object
http://somewhere/JohnSmith http://www.w3.org/2001/vcard-rdf/3.0#FN John Smith
genid:001 http://www.w3.org/2001/vcard-rdf/3.0#Family Smith
genid:001 http://www.w3.org/2001/vcard-rdf/3.0#Given John
http://somewhere/JohnSmith http://www.w3.org/2001/vcard-rfd/3.0#N genid:001
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 43
RDF/RDFS Anfragesprachen• 3 Abstraktionsebenen für RDF-Dokumente
und RDF-Schemen:1. syntaktische Ebene (XML/RDF Dokumente)2. struktuelle Ebene (eine Menge von Tripeln)3. semantische Ebene (ein oder mehrere Graphen mit
teilweise vordefinierter Semantik)• Diese Dokumente können an beliebiger
Ebene abgefragt werden– für 1.: Anfragesprachen basiert XML Anfragesprachen– für 2. und 3.: Anfragesprachen basiert auf SQL z.B.
SELECT ?xFROM somesourceWHERE (rdf::type ?x VicePresident)
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 44
RDQL - Query
Example 1Query:
SELECT ?x WHERE (?x, <http://www.w3.org/2001/vcard-rdf/3.0#FN>, "John Smith")
Result:http://somewhere/JohnSmith/
Example 2Query:
SELECT ?x WHERE (“http://www.w3.org/2001/vcard-rdf/3.0#FN”, ?x , "John Smith")
Result:http://www.w3.org/2001/vcard-rdf/3.0#FN
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 45
RDF Schema - part 1 – ontology for vCard<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdf:Description ID="FN"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> <rdfs:label>Formatted Name</rdfs:label> </rdf:Description>
<rdfs:Class rdf:ID="NPROPERTIES"/> <-- ! It could be extended --- >
<rdf:Description ID="N"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> <rdfs:label>Name</rdfs:label> <rdfs:range rdf:resource="#NPROPERTIES"/> </rdf:Description>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 46
RDF Schema – part 2<rdf:Description ID="Family"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> <rdfs:label>Family Name</rdfs:label> <rdfs:subClassOf rdf:resource="#NPROPERTIES"/> </rdf:Description>
<rdf:Description ID="Given"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/> <rdfs:label>Given Name</rdfs:label> <rdfs:subClassOf rdf:resource="#NPROPERTIES"/> </rdf:Description>
</rdf:RDF>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 47
DAML+OIL
DAML = DARPA Agent Markup Language (USA Projekt) OIL = Ontology Interchange Language (EU Projekt)
RDFS can be regarded as a very simple ontology language. However, many types of knowledge cannot be expressed in this simple language. Just a few exammples of useful things we cannot say in RDFS are:
– stating that every book has exactly one price, but at least one author;
– stating that titles of books are strings and prices of books are numbers;
– stating that no bok can be both hardcover and softcover;– stating that every book is either hardcover or softcover (i.e. there is
no other option than these two).
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 48
DAML+OIL Beispiel – part 1<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns:daml='http://www.daml.org/2001/03/daml+oil#' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'> <daml:Ontology daml:versionInfo='3.0'> <daml:comment>This is an ontology for vCards.</daml:comment> </daml:Ontology>
<rdfs:Class rdf:ID='NPROPERTIES'/>
<rdfs:Class rdf:ID='VCARD'/>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 49
DAML+OIL – part 2
<daml:ObjectProperty rdf:ID='N' rdf:type='http://www.daml.org/2001/03/daml+oil#UniqueProperty'> <daml:range rdf:resource='#NPROPERTIES'/> <daml:domain rdf:resource='#VCARD'/> </daml:ObjectProperty> <daml:DatatypeProperty rdf:ID='FN' rdf:type='http://www.daml.org/2001/03/daml+oil#UniqueProperty'> <daml:range rdf:resource='http://www.w3.org/2000/10/XMLSchema#string'/> <daml:domain rdf:resource='#VCARD'/> </daml:DatatypeProperty>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 50
DAML+OIL – part 3 <daml:DatatypeProperty rdf:ID='Given' rdf:type='http://www.daml.org/2001/03/daml+oil#UniqueProperty'> <daml:label>Given Name</daml:label> <daml:range rdf:resource='http://www.w3.org/2000/10/XMLSchema#string'/> <daml:domain rdf:resource='#NPROPERTIES'/> </daml:DatatypeProperty>
<daml:DatatypeProperty rdf:ID='Family' rdf:type='http://www.daml.org/2001/03/daml+oil#UniqueProperty'> <daml:label>Family Name</daml:label> <daml:range rdf:resource='http://www.w3.org/2000/10/XMLSchema#string'/> <daml:domain rdf:resource='#NPROPERTIES'/> </daml:DatatypeProperty>
</rdf:RDF>
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 51
OWL
OWL has only minor changes from DAML+OIL.
Even the abstract syntax can be viewed as an abstract syntax for DAML+OIL.
There are a number of minor differences between OWL and DAML+OIL including a number of changes to the names of the various constructs.
Institut für Softwarewissenschaft - Universität Wien
P.Brezany 52
Eine auf DAML Basierte RDF Anfragesprache
<Query> <select rdf:resource="property1"/> <select rdf:resource="property2"/>
... <from rdf:resource="class"/> </Query> The result of this query is the set of all
statements with a subject of type class and a predicate of property1 or property2 etc.