Institute for Informatics
Georg-August-Universität Göttingen

Databases and Information Systems Group

dbis
Uni Göttingen

Semantic Web
Winter 2007/08

Prof. Dr. Wolfgang May
Assistants: Oliver Fritzen, Franz Schenk

Date and Time: Monday, 14-16 ct (every 2 weeks), Tuesday 14-16 ct.
Lab (Übung): Monday 14-16 ct (every 2 weeks)
Room: MN68

Technical Data:
3+1 SWS, 6 ECTS credits (Studies in Applied Informatics),

Prerequisites: prospective participants should have attended the lecture Semistructured Data and XML.
Note: the "Modulkatalog" lists the module "Formal Systems" as prerequisite. "Formal Systems" will be introduced next year according to the new exam regulations. The WS0708 "Semantic Web" contains an introduction to logic at the beginning which replaces "Formal Systems" for now.
Note: the Modulkatalog lists "Semantic Web" with 4 ECTS CP. The WS0708 "Semantic Web" counts 6 CP since it additionally includes an introduction to formal logic.

Note: the module can be credited as "Applied Informatics". (Decision by the Dean of Studies on 25.10.2006). It is not associated with any Studienrichtung. For further aspects please prepare a personal plan of studies (that e.g. connects it with your application area etc.) and ask for approval by the DoS.

Course Description

  • Basic Notions of First-Order Logic (since they are not regularly taught in an earlier lecture)
  • RDF: N3 and RDF/XML format, semantics
  • RDFS, OWL: having RDF data with additional reasoning
  • Description Logics: the logic underlying OWL
  • Practical experiments with RDF, Jena, Reasoners etc.

Dates & Topics [Subject to Change]

  • 15.10.: Administrativa, Overview.
    Slides: Introduction and Ontologies [1-on-1, 2-on-1]
  • 16.10.: Ontologies (Cont'd)
  • The Einstein/Fish Puzzle
  • 22.10./23.10.: Introduction to first-order logic and basic notions of model theory.
    Slides: Introduction to Logics [1-on-1, 2-on-1]
  • 29.10./30.10.: Introduction to Logics (Cont'd)
  • Exercise sheet: Logic
  • 5./6.11.: Introduction to Logics (Cont'd)
  • 12.11.: Introduction to Logics (Cont'd)
  • 13.11.: Discussion of Ex. 1-3 Solution;
    then continuing with the lecture.
  • 19.11.: Introduction to Logics (Cont'd)
  • 20.11.: remaining exercises from Sheet 1 (Solution Ex. 3 and 4);
    then continuing with the lecture.
  • 26./27.11.: RDF
    Slides: RDF [1-on-1, 2-on-1]
    Note: all example files are accessible in the RDF subdirectory of this Web page.
  • 3./4.12.: RDF (Cont'd)
  • 10./11.12.: RDF (Cont'd), RDFS
    Slides: RDFS [1-on-1, 2-on-1]
  • 17./18.12.: RDF/XML
    Slides: RDF/XML [1-on-1, 2-on-1]
  • 22.12.-6.1. Christmas Break
  • 7.1. no lecture
  • 8.1. RDFS in RDF/XML - Classes and properties as resources
  • 14.1.: Description Logics
    Slides: DL [1-on-1, 2-on-1]
  • 15.1. no lecture (Disputation Oliver Fritzen)
  • 21.1.: OWL 1.0
    Slides: OWL [1-on-1, 2-on-1]
  • 22.1.: OWL (Cont'd)
  • 28.1./29.1.: OWL 1.1
    Slides: OWL 1.1 [1-on-1, 2-on-1]
  • Ergebnisse der Vorlesungsevaluierung.
  • in der letzten Vorlesung wurde (kurz) die Lösung des Fishpuzzle besprochen:
    • eine sehr ausführliche Spezifikation ... fällt in einen pellet-Bug.
    • fishpuzzleMiddle.n3 ist eine einfachere Spezifikation:
      Teil 1: Spezifikation der Reihe von 5 Häusern.
      Teil 2: Spezifikation der Eigenschaften.
      Teil 3: Spezifikation der Constraints. Eigentlich ganz einfach. Man macht hier davon Gebrauch, dass man Individuals in "Graph-Fragmenten" benennen kann, die der Reasoner dann mit den "echten" Häusern und Personen passend gleichsetzt.
      Bsp: aus [10] und [15] wird der Reasoner :x10 und :x15 gleichsetzen, da es nur einen Marlboro-Raucher geben kann.
    • fishpuzzleMiddle.sparql ist die Anfrage dazu. Sie braucht ... auf der s2 ueber Nacht.
    • fishpuzzleShort.n3
      Teil 1: Spezifikation der Reihe von 5 Häusern wie oben.
      Teil 2: Trick: Codierung der Eigenschaften. Anstatt jedem Haus ein Farbe und einen Bewohner, und diesem eine Zigarettenmarke, ein Getränk und ein Tier über explizite Kanten zuzuordnen, "setzt man diese gleich" und bildet Äquivalenzklassen.
      Teil 3: Spezifikation der Constraints. Noch einfacher als vorher, da man nur die Äquivalenzklassen betrachtet.
    • fishpuzzleShort.sparql ist die Anfrage dazu. Sie braucht 50 Minuten auf der s2.

Den kompletten Foliensatz finden Sie hier. Bitte nicht drucken (weil er sich noch ändert); dort finden Sie auch die Folien zu SSD&XML. XML-Kenntnisse werden insoweit benötigt, dass RDF/XML (neben N3) eine der Repräsentationen von RDF ist. Man sollte also ein XML-Dokument "verstehen" können. XPath/XQuery und XSLT werden nicht benötigt.

Literaturempfehlung

Empfehlenswerte Neuerscheinung (deutschsprachig): P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure: "Semantic Web". Springer eXamen.press, 2007, ISBN 978-3-540-33994-6; 24.95 E.
Das Buch deckt ziemlich exakt den Inhalt der Vorlesung ab, und enthält auch eine kurze Intro zu First-Order-Logic im Anhang.

Für den Teil über (Prädikaten)logik können Sie ein beliebiges Logik-Grundlagen-Lehrbuch aus der Bibliothek (z.B. "Logik für Informatiker" von Uwe Schöning) oder das Skript "Formale Systeme" von Peter H. Schmitt (Uni Karlsruhe) (Kap. 1-5) verwenden.

Prüfungen

  • mündlich; es stehen mehrere Termingruppen zur Auswahl:
    • 4.-8.2. (nicht 5.2.)
    • 4.-15.3.: Die Termine fuer diesen Block habe ich (hoffentlich alle) per Mail verschickt. Wer keinen bekommen hat, aber einen moechte -> bitte melden.
    • 10.4./11.4./12.4.: die Termine wurden vergeben (Mail - beachten Sie bitte, dass die erste Mail, die jeder bekommen hatte, ein falsches Datum enthielt). Wer keinen Termin bekommen hat, aber einen moechte -> bitte melden.
      (Im Worst Case können sich noch Verlegungen ergeben)
  • Anmeldung per Mail an may@informatik.uni-goettingen.de. Bitte teilen Sie mir mit, in welchem der oben genannten Zeiträume Sie geprüft werden wollen, und welche Vor-/Nachmittage dabei bei Ihnen nicht passen.
  • Prüfungsablauf: pro Person sind ca. 40 Minuten (einschl. Notenbesprechung und Bekanntgabe) geplant. Als Einstieg sollen Sie zuerst ca. 5 Minuten zu einem Teilthema Ihrer Wahl anfangen, der Rest ergibt sich dann dynamisch ...
  • Hinweis zu FlexNever: wer sich dort anmelden kann (BSc geht wohl sowieso nicht), kann dies (zusätzlich zur Mail-Anmeldung) tun. Sie erleichtern damit derjenigen Person, die die Noten einträgt, wahrscheinlich die Arbeit. Achten Sie dabei darauf, dass es die 6-CP-Version [wahrscheinlich "324 Theoretische Grundlagen, Datenmodelle und Sprachen des Semantic Web"] ist. (es gibt eine zweite 4-CP-Variante [dürfte "321 "Semantic Web" sein], die der MSc-PO/SO entspricht, und das Modul "Formale Systeme" [was es bisher nicht gibt] voraussetzt).
    Notenübermittlung: am Ende per Liste ans PA, oder es gibt ganz einfach Papierscheine, die dann angerechnet werden.

    15.4.2008: ich habe die Notenliste und die Scheine an Frau Jachinke gegeben. Vielleicht werden die Noten ja auf diese Weise alle direkt ins FlexNever eingetragen; ansonsten koennen Sie dort Ihre Scheine abholen und einzeln anerkennen+eintragen lassen.

Externe Ankündigung

  • Accenture Campus Challenge: Überblick, Details - Thema Web 2.0 Mashups.
    DBIS ist selber mangels Resourcen nicht beteiligt; wir leiten potentielle Interessenten aber weiter. Evtl reicht es für ein kombiniertes Inf/WiInf-Team.

Some Links


Semantic Web Tools and Links

If you experience any problems (forgotten chmod, wrong paths, forgotten updates etc.), please notify us.

Web-wide Services

Datalog, F-Logic: Florid

  • the Florid Homepage (with some documentation) at Freiburg.
  • Mondial as Datalog facts: mondial-rel-facts.flp
  • Florid needs gcc4.x. It can be used in the CIP Pool only on computers running the most recent debian-etch distribution (this can be chosen when logging in; for use from remote, the computers c031-c034 run permanently under etch.).
    The executable is located at
     /afs/informatik.uni-goettingen.de/course/semweb-lecture/florid/bin/florid  
    For using it, you also have to set paths
     export DEFAULTCFG="/afs/informatik.uni-goettingen.de/course/semweb-lecture/florid/environment/config.flp"
     export DEFAULTHIS="/afs/informatik.uni-goettingen.de/course/semweb-lecture/florid/environment/default.his" 
    Then you can start it, e.g. with the above input facts:
     > florid mondial-rel-facts.flp
       [...] Type 'sys.help.' for further information.
     ?- sys.eval.    // don't forget sys.eval.
                     // evaluates the facts and adds it to the knowledge base
     ?- country(A,B,C,D,E,F).
     // ... answers ...
     ?- sys.end.     // to leave it
       

Pellet - the OWL Reasoner

  • Pellet will be used mainly from the JENA tool.
  • Pellet Homepage (with Download)
  • For use in the CIP Pool, a Pellet instance running on ap34 can be used at http://ap34.ifi.informatik.uni-goettingen.de/pellet/.
  • If you have an own Pellet on your own computer, start it with ./pellet-dig.sh.
    Pellet usually runs at port 8081. The URL will then be http://localhost:8081.

Jena: RDF and SPARQL

The course uses a lightweight housemade shell interface to Jena for querying located at /afs/informatik.uni-goettingen.de/course/semweb-lecture/JENA-API/semweb.jar (Download; last updated Jan. 2008):

  • requires java 1.5
  • set alias (bashrc etc.)
     alias jena='java -jar /afs/informatik.uni-goettingen.de/course/semweb-lecture/JENA-API/semweb.jar'
  • query: (if=input-files, qf=query-file, e.g. in SPARQL)
    jena -q -if inputfiles -qf queryfile
  • general options:
    -il: input language (allows RDF/XML RDF/XML-ABBREV N-TRIPLE N3 TURTLE; N3 is default)
    -if: input files
  • query options:
    -q: query
    -il, -if: as above
    -qf: query-file
  • transform options:
    -t: transform
    -ol: output format (allows RDF/XML RDF/XML-ABBREV N-TRIPLE N3-PLAIN N3-PP N3-TRIPLE N3 TURTLE }; N3 is default)
  • export class tree; options:
    -e: export class tree (gives some insight for debugging an ontology ...)
    -il, -if: as above
  • reasoner options (for -q and -e):
    activate reasoning; default: internal reasoner: option -inf
    or use the pellet class that comes with the semweb.jar:
     jena -q -inf -r pellet -qf query-filename
    or short
     jena -q -pellet -qf query-filename
    or use an external reasoner: options -inf -r reasoner-url
    e.g. use the Pellet instance running at ap34 as external reasoner from the CIP Pool:
     jena -q -qf query-filename -inf -r http://ap34.ifi.informatik.uni-goettingen.de/pellet/ 
  • use of a rule file with the Jena Rule Reasoner (not combined with the Pellet OWL Reasoner):
         -rf  file containing the rules for the ruleengine

IsaViz: RDF Graph Visualizer

  • IsaViz is used for visualization of RDF-Graphs, installed locally at: /afs/informatik.uni-goettingen.de/course/semweb-lecture/tools/IsaViz/
  • You can either change into that directory and start the program with the command ./run.sh or by using an alias pointing to that script. In the latter case you will need to copy the configuration file isaviz.cfg into your home directory.
  • If you want to run the application on your own computer, you will have to install graphviz as well, either from its Web page or from the appropriate package provided by your distribution (e.g. debian-package graphviz).

Mondial in RDF

http://www.dbis.informatik.uni-goettingen.de/Mondial/#RDF

Call e.g.

 jena -q -qf mondial-query.sparql
or
 jena -inf -r pellet -q -qf mondial-meta-query.sparql