Tutorial Grundlagen Des Semantic Web

Transcription

TutorialGrundlagen desSemantic WebRobert Tolksdorf, Elena Paslaru BontasAG Netzbasierte re/0506/P SW/

TerminkalenderTerminThemaBeschreibung02.11Semantic WebSprachen IRDF, RDFS Syntax und Semantik mitBeispielen16.11RDF(S)Werkzeuge Programmierwerkzeuge:23.11Semantic WebSprachen II30.11OWL/SWRLWerkzeuge09.11Jena API Anfragesprachen: SPARQL, RDQL Validatoren, Editoren, RDF-DatenbankenOWL, SWRL Syntax und Semantik mitBeispielenOWL-Werkzeuge: Programmierwerkzeuge: Jena API Reasoning in OWL: Pellet, RACER Anfragesprachen: OWL-QL, RQL Validatoren, Editoren, DatenbankenSWRL-Werkzeuge: Reasoning in SWRL Editoren

Semantic WebSprachen IRDF und RDFS

ÜbersichtGrundlagen: XML/XML-Schema RDF: Syntax, Semantik, Datenmodell Erweiterung des RDF mit RDFS RDFS: Syntax und Semantik Beispiele

XML und XMLSchema

Grundlagen PrinzipTrennung zwischen Struktur und Darstellung NamensräumeVerwendung mehrerer XML Schemata in einemDokument ohne Namenskonflikte XML DTD und XML Schemakorrekte Dokumentstrukturen Ersetzung des HTML durchDomänenspezifische Auszeichungssprachen (definiert inXML) z.B. MathMLAbbildung von diesen Sprachen zu HTML (XSL)

Warum ist XML nichtausreichend? Trennung zwischen Struktur und InhaltNotwendig weil Domänenwissen unterschiedlichstrukturiert werden kannNotwendig um externe Dokumentstrukturen zuverstehen Explizite InhaltsdarstellungNotwendig um Wissen maschinen-lesbardarzustellen

Beispiel Aussage: die Webseite „nbi.inf.fu-berlin.de“ wurdeerstellt von Robert Tolksdorf.nbi.inf.fu-berlin.dehat den AutorInfo Autor uri nbi.inf.fu-berlin.de /uri name Robert Tolksdorf /name /Autor 1Metainfo Document uri “nbi.inf.fu-berlin.de” Autor Robert Tolksdorf /Autor /Document Document uri “nbi.inf.fu-berlin.de” Creator “Robert Tolksdorf”/ 32

RDF

RDF RDF (Resource Description Framework)Sprache zur Darstellung inhaltlicherMetadatenWie jede Sprache hat RDFSyntax (verschiedene XMLSerialisierungsmöglichkeiten)Semantik (RDF Datenmodell) Wie jede Web-Sprache hat RDFeinen Namespace

Datenmodell Gerichteter Graph: Knoten (Ressourcen), Kanten(Properties) Ressourcen (RDF Resource)Alles worüber man Aussagen machen kannIdentifiziert durch URIs (qualified URIs URI fragmentidentifier)Aussagen sind auch RessourcenEigenschaften/Beziehungen (RDF Property)Verbinden Ressourcen miteinander oder Ressourcen zuWerten (RDF Literal)Aussagen (RDF Statement) (Subjekt, Prädikat, Objekt)“Resource has Property with Value”

Beispiel Aussage: die Webseite „nbi.inf.fu-berlin.de“ wurdeerstellt von Robert Tolksdorfnbi.inf.fu-berlin.dehat den AutorInfo"nbi.inf.fu-berlin.de"hat den AutorRobert TolksdorfMetainfoSubjekt (Ressource)Prädikat (Ressource)Objekt (Wert oderRessource)

Beispiel ksdorf.de/RobertAlterGesagtvonRDF LiteralRDF RessourcenSemantic Web25Geeignet füreBusiness

RDF Blank Nodes Anonyme Ressourcen (haben keine URI)Platzhalter für komplexe ObjekteRessourcen von unbekannten Typnbi.inf.fu-berlin.dex: 1Blank Node "RT"NameAutorEmailAussage: die Webseite „nbi.inf.fu-berlin.de“ wurdert@inferstellt von jemanden/etwas mit dem Namen „RT“und der Email-Adresse „rt@inf“

RDF Containers Mengenobjekte (geordnet, ungeordnet,mit Duplikaten, ohne Duplikaten, offen) Ermöglichen Aussagen über mehrereRessourcenPlatzhalter für komplexe Mengenobjekte(vs. Blank Node)

Container-Typen 3 Typen von ContainernBagungeordnete Listerdf:BagSequence geordnete Liste rdf:SeqAlternative eindeutiger Wert rdf:Alt Containers sind auch RDF RessourcenSemantik: offene Mengenunbekannt ob weitere Elemente zu der Mengegehören

Beispiel Aussage: die Webseite „nbi.inf.fu-berlin.de“ wurdeerstellt von Robert Tolksdorf und Elena Paslaru und ainer-URIrdf: 1www.robert-tolksdorf.de/Robertrdf: 2Elena Paslaru URIrdf: 3

Alternative lksdorf.de/RobertAutorElena Paslaru URIAutor

Nutzung von RDFContainern BagMitglieder einer Gruppe, Dateien in einem Verzeichnis SeqBuch/Artikelautoren, Punkte in einer Tagesordnung Altdocument home and mirrors, mailing-list moderators

RDF Collections Ähnlich zu Containern, aber geschlossen:Alle Elemente einer Menge sind spezifiziert Zugriff auf einzelne Mengenelementerekursivfirst (erstes Element)rest (restliche Elemente)nil (leere Menge)

Beispiel Aussage: Das Projekt „Semantic Web“ wird veranstaltetvon Robert Tolksdorf und Elena orf.de/RobertBlank Noderdf:firstx:1Blank NodeElena Paslaru URIx:2rdf:restrdf:firstrdf:restrdf:nil

Reifizierte Aussagen Aussagen über Aussagen Spezieller Konstrukt (RDFStatement)Identifiziert explizit das Subjekt,Prädikat, Objekt einer AussageHat URI

Beispiel Aussage: Robert Tolksdorf hat folgendes gesagt:„Semantic Web ist geeignet für rtRDF StatementSemantic WebRDF SubjectGesagtvonGeeignet fürAltereBusiness25

RDF about aboutdirekte Angabe des URI aboutEachURI eines ContainerProperty auf alle Elemente angewendet aboutEachPrefixURI PräfixProperty auf alle Ressourcen mit dem Präfixangewendet

RDF ID Fragment identifier (eindeutig im Dokument)Abkürzung der vollständigen URI einer RessourceVollständiger Name zusammengesetzt aus:Base URI (xml:base )# BeispielWert von aserdf:ID

RDF Datatype spezifiziert den Datentyp eines LiteralsXML-Schema Datentypen unterstütztSpezieller Typ von RDF Literal Beispiel (RDF/XML Syntax) name rdf:datatype "&xsd;string RT /name

RDF Syntax DatenmodellGraphenstruktur: Knoten (Ressourcen,Werte), Kanten (Properties) Verschiedene syntaktische FormateRDF/XML SyntaxN3

Beispiel XML/RDFDokument-Header rdf:RDF rdf:Descriptionabout "http://nbi.inf.fu-berlin.de" Autorrdf:resource “http://robert.tolksdorf.de/Robert” / /rdf:Description /rdf:RDF obert

Alternative rdf:RDF rdf:Description about "http://nbi.inf.fu-berlin.de" Autor NBIMitarbeiterrdf:resource “http://robert.tolksdorf.de/Robert”/ /Autor /rdf:Description /rdf:RDF obertrdf:typeNBIMitarbeiter

Das gleiche in N3nbi.inf.fu-berlin.de olksdorf.de/Robertrdf:type rt-tolksdorf.de/Robertrdf:typeNBIMitarbeiter

Warum ist RDF nichtausreichend? RDFSprache für die Darstellung von Aussagen imWebdefiniert ein Datenmodel: Ressourcen minimal typisiertSemantik der Ressourcen minimal spezifiziertNotwendigErweiterung von RDF für die Beschreibung vonsemantisch komplexere Vokabularien

RDFS

Wichtige Konstrukte KlassenRoot-Class rdfs:ResourceMetaClass rdfs:ClassLiterals rdfs:Literal Propertiesrdfs:subclassOfrdfs:domain, rdfs:rangerdf:typerdfs:label, rdfs:comment

Beispielrdfs:Resources rdfs:subClassOft ansxyz:Truckxyz:PassengerVehiclexyz:MiniVans

Bemerkungen RDFS unterscheidet nicht zwischenKlassen und PropertiesObject und DatatypePropertiesKlassen und Instanzen RDFS ordnet RDF-Konstrukte weitere Typen zurdfs:Class, rdfs:Property etc. Beispielerdf:Statement ist vom Typ rdfs:ClassDie Property rdf:type ist eine Subklasse der Klasserdfs:Property

rdf:typespezifiziert Typzugehörigkeit Wert ist immer eine Ressource, die einenTypen definiert Vordefinierte Typen (z. B. RDF Statements)Nutzerdefinierte Typen (z. B.NBIMitarbeiter) Nicht mit rdfs:subClassOf zuverwechseln

rdfs:subClassOf hen KlassenNicht mitrdf:type zuverwechseln rdfs:Resources rdfs:subClassOft ruckxyz:Vansxyz:PassengerVehiclexyz:MiniVans

rdfs:Class rdfs:Class id “MiniVan1” rdfs:label MiniVan /rdfs:label rdfs:subClassOfrdf:resource „xyz:Van“/ rdfs:subClassOfrdf:resource „xyz:PassengerVehicle“/ /rdfs:Class

Wichtige Klassenrdfs:Resource (alle Ressourcen) rdfs:Literal (alle Strings) rdfs:Class (alle Klassen) ist eine rdfs:Resource, da RDFS in RDFdefiniert istrdfs:Property (alle Properties) rdf:Statement (alle reifiziertenAussagen)

rdfs:Property rdfs:Property id “Autor” rdfs:domain rdf:resource “#Person”/ rdfs:range rdf:resource “#Webseite”/ rdfs:Property WebseiteAutorPerson

Wichtige Properties rdfs:subClassOfVerbindet Unterklassen zu Klassen rdfs:subPropertyOfVerbindet Unterproperty zu Property rdfs:labelVerbindet Ressource zu Name rdfs:commentVerbindet Ressource zu Kommentar

Erweitertes Beispiel ?xml version "1.0"? rdf:RDF xmlns:rdf :rdfs "http://www.w3.org/2000/01/rdf-schema#" rdfs:Class rdf:ID "Person" rdfs:comment Person Class /rdfs:comment rdfs:subClassOf rdf:resource e"/ /rdfs:Class rdfs:Class rdf:ID "Student" rdfs:comment Student Class /rdfs:comment rdfs:subClassOf rdf:resource "#Person"/ /rdfs:Class rdfs:Class rdf:ID "Teacher" rdfs:comment Teacher Class /rdfs:comment rdfs:subClassOf rdf:resource "#Person"/ /rdfs:Class rdfs:Class rdf:ID "Course" rdfs:comment Course Class /rdfs:comment rdfs:subClassOf rdf:resource e"/ /rdfs:Class rdf:Property rdf:ID "teacher" rdfs:comment Teacher of a course /rdfs:comment rdfs:domain rdf:resource "#Course"/ rdfs:range rdf:resource "#Teacher"/ /rdf:Property rdf:Property rdf:ID "name" rdfs:comment Name of a Person or Course /rdfs:comment rdfs:domain rdf:resource "#Person"/ rdfs:domain rdf:resource "#Course"/ rdfs:range rdf:resource l"/ /rdf:Property /rdf:RDF

RDF(S) und das ensind formalisiert in einerOntologiesprachezRDFS ist eine OntologiesprachezAlle anderen Ontologiesprachenerweitern RDFSzAlle Sprachen nutzen das RDF Datenmodell

Zusammenfassung XML und XML-SchemaRDFVorteile gegenüber XMLDatenmodellRDF/XML und N3 Syntax RDFSVorteile gegenüber RDFDatenmodellWichtige Klassen und Properties Erweitertes Beispiel

LiteraturResource Description Framework(RDF) http://www.w3.org/RDF/(gesehen am 21.10.2005) RDF Vocabulary DescriptionLanguage 1.0: RDF Schema (W3CRecommendation 10 February 2004),http://www.w3.org/TR/rdf-schema/(gesehen am 21.10.2005)

TutorialGrundlagen desSemantic WebRobert Tolksdorf, Elena Paslaru BontasAG Netzbasierte re/0506/P SW/

TerminkalenderTerminThemaBeschreibung02.11Semantic WebSprachen IRDF, RDFS Syntax und Semantik mit Beispielen09.11Anwendungen desSemantic WebPräsentation Projekt Reisewissen16.11RDF(S)-Werkzeuge Programmierwerkzeuge:23.11Semantic WebSprachen II30.11OWL/SWRLWerkzeugeJena API Anfragesprachen: SPARQL, RDQL Validatoren, Editoren, RDF-DatenbankenOWL, SWRL Syntax und Semantik mit BeispielenOWL-Werkzeuge: Programmierwerkzeuge: Jena API Reasoning in OWL: Pellet, RACER Anfragesprachen: OWL-QL, RQL Validatoren, Editoren, DatenbankenSWRL-Werkzeuge: Reasoning in SWRL Editoren

Semantic WebWerkzeuge IRDF und RDFS

Übersicht WerkzeugeEditoren, Validatoren, Parser Automatische Generierung von RDFDaten RDF Speicherung RDF(S) Anfragesprachen APIs

RDF EditorenIsaViz IsaViz (Xerox)RDF/XML, N3, N-triple 11/IsaViz/

RDF EditorenProtégé-2000 Protégé-2000 (Stanford University)RDF/XMLGUIJava-basiertUnterstützt auch OWLhttp://protege.stanford.edu/overview/

RDF EditorenSemanticWorks SemanticWorks (Altova)RDF/XML, N3GUI und VisualisierungUnterstützt auch OWLKommerziell (free trial verfügbar)http://www.altova.com/products semanticworks.html

RDF Validator W3C RDF(S) Validation Servicehttp://www.w3.org/RDF/Validator/

RDF ParserJena2 (Java) Raptor RDF Parser Toolkit (CBibliothek) RAP (PHP) Drive RDF API for C# (.NET) SWI-Prolog

PiggyBank“Piggy Bank is an extension to the FirefoxWeb browser that turns it into a SemanticWeb browser, letting you make use ofexisting information on the Web in moreuseful and flexible ways”(Webseite http://simile.mit.edu/piggybank/, gesehen November 2005)

PiggyBank (II) Screen ScrapersSoftware zur Extrahierung vonInformationen von Web-SeitenImplementierts als XSL templates oderin Javascript Screen Scrapers Bibliothek

RDF SpeicherungSesame Sesame (2.0) (Aduna & Co)Repository für RDF(S)-DatenQuery-Engine (SeRQL, SPARQL, RQL)Inference-Engine (OWLIM)Sesame API (Java)Client/Server /userguide.html#chapter-introduction

RDF SpeicherungRDFStore RDFStoreRepository für RDF(S)-DatenParser (RDF/XML, N3)Query-Engine (RDQL)API (PHP)http://rdfstore.sourceforge.net/

RDF SpeicherungProtégé-2000 Protégé-2000 (Stanford University)Repository für RDF(S)-DatenQuery-Engine (RDQL,SPARQL)Protégé API (Java)http://protege.stanford.edu/overview/

RDF SpeicherungJena2 Jena 2 (HP)Repository für RDF(S)-DatenQuery-Engine (RDQL, SPARQL, RQL)API (Java)http://jena.sourceforge.net/

RDF(S) Anfragesprachen RDF-XML Syntax basierendin Anlehnung an XQuery: RDF-Query undRQueryBeispiel: Suche alle Elemente die den/Autor/Name “RT” haben S-P-O Triple-basierendRDQL, Triple, SPARQLBeispiel: Suche alle Aussagen wo das Subjekt" " und das Objekt " " ist

RDF(S) Anfragesprachen (II) RDFS basierendRQL, SeRQLBeispiel: Finde Ressourcen der Klasse“Autor"

RDQL SQL-ähnliche Syntax (SELECT, FROM, WHERE,USING)SELECT Variablen der ErgebnismengeFROM RDF-Quelle(n) lokal/URLWHERE Tripel Muster die erfüllt werden müssenAND zusätzlicher Filter für VariablenwerteUSING Namensraumangaben Ergebnis: Variablen-Feld (Array)Implementiert u.a. inJena, RDFStore, RAP - RDF API for PHP

RDQL BeispielSELECT ?resourceWHERE (?resource ex:alter ?age)AND ?age 24USING ex FOR http://example.org/thisexample.rdf#

SPARQLWork in progress bei der W3C (21July last working draft) Ähnlich zu RDQL Erweiterungen für Gleichzeitige Bearbeitung mehrererRDF-GraphenNamed GraphsOperatoren

SPARQL ImplementierungenProtégé-2000 Sesame Jena (ARQ)

SPARQL Beispiel

SeRQL Sesame Ressource Query LanguageFormale Interpretation des RDF Graphen (semantisch)SQL-ähnliche Syntax (SELECT, FROM, WHERE, USINGNAMESPACE)SELECT (DISTINCT) Variablen der Ergebnismenge (X, C,@P,*)FROM Liste von Pfad AusdrückenWHERE Bedingungen für Variablen, Vergleiche etc.USING NAMESPACE Kombinierte Anfragen über UNION, INTERSECT, MINUS Ergebnis: RDF-XML Syntax

SeRQL BeispielSELECT Datum, Title, Name, EmailFROM {Student} DC:date {Datum};DC:title {Title};vCard:FN {Name};vCard:EMAIL {} rdf:value {Email}WHERE Datum like "2004-11-*"USING NAMESPACEvCard http://www.w3.org/2001/vcardrdf/3.0# ,DC http://purl.org/dc/elements/1.1/

RDF(S) APIsJena2 Sesame RAP

Jena2 Jena Semantic Web FrameworkEntwicklung und Management von SemanticWeb Daten (RDF, RDFS, OWL) Erstellung, Speicherung und Verwaltung von RDFGraphen (genannt RDF Modelle)Persistente SpeicherungReasoning (über DIG Schnittstelle)Anfragesprachen und –engines: RDQL,SPARQLDe facto die populärste API für Semantic Web

Das wichtigste für RDF com.hp.hpl.jena.rdf.model:Wichtigste Klassen und Methoden fürden Umgang mit RDF Daten com.hp.hpl.jena.tutorialBeispiele

com.hp.hpl.jena.rdf.modelRDF Modelle// some definitionsstatic String personURI "http://somewhere/JohnSmith";static String fullName "John Smith";//create an empty ModelModel model ModelFactory.createDefaultModel();//create the resourceResource johnSmith model.createResource(personURI);// add the propertyjohnSmith.addProperty(VCARD.FN, fullName);

Class Model Factory Modelltypen:DefaultModel: RDFRDFS ModelOWL ModelInfModel Model-SpezifikationenBeschreiben die Eigenschaften eines Modells ml

com.hp.hpl.jena.rdf.modelAnfragenResIterator iter model.listSubjectsWithProperty(VCARD.FN);while (iter.hasNext()) {Resource r iter.nextResource(); . }

Einlesen von RDF Daten//create an empty modelModel model ModelFactory.createDefaultModel();//use the FileManager to find the input fileInputStream in FileManager.get().open(inputFileName );if (in null) {throw new IllegalArgumentException( "File: " inputFileName " not found"); }//read the RDF/XML filemodel.read(in, "");//write it to standard outmodel.write(System.out);

Speichern von RDF Daten//now write the model in XMLform to a filemodel.write(System.out);

ader(in1), "");model2.read(newInputStreamReader(in2), "");model model1.union(model2); difference intersection

RDF StatementsModel StmtIterator iter model.listStatements();while (iter.hasNext()) {Statement stmt iter.nextStatement();Resource subject stmt.getSubject();Property predicate stmt.getPredicate();RDFNode object stmt.getObject(); }

RDFS ModelleInfModel/OntModel Zusätzliche Methoden für dieManipulation von Klassen undProperties (domain, range) WICHTIG:Inferenzeigenschaften

ZusammenfassungEditoren, Validatoren, Parser Automatische Generierung von RDFDaten RDF Speicherung RDF(S) Anfragesprachen APIs

LiteraturW3C Seiten zu RDF und RDFS (vorallem Tools) Seiten der einzelnen Tools

Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge Programmierwerkzeuge: Jena API Anfragesprachen: SPARQL, RDQL Validatoren, Editoren, RDF-Datenbanken 23.11 Semantic Web Sprachen II