Uni Göttingen
Institute for Informatics
Databases and Information Systems


Semantic Web
Summer 2014

Prof. Dr. Wolfgang May
Assistance: Daniel Schubert

Date and Time: Wednesday 10-12 ct, Thursday 10-12 ct, Friday 14-16 ct.
Note: the course is 4hrs/week, thus 14x4hrs will be taught by choosing amongst the above slots (which allows some flexibility wrt. holidays, bridge days, collisions and absences)
Exercises (Übung): integrated into lecture (see announcements on this page)
Room: IFI 2.101 (North Campus)
If (and as long as) non-german-speaking participants attend, the course will be given in english.

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


  • Knowledge in First-Order Logic as taught in "Formale Systeme" is sufficient. Although, prospective participants are strongly recommended to have participated in the lecture Database Theory.
  • XML: RDF/XML uses XML as representation, but requires only a little bit of knowledge about XML. A short introduction to XML from that point of view will be given in the lecture.
    XML with DTD, XPath, XQuery, XSLT and XML Schema is the topic of the lecture Semistructured Data and XML (prospectively taking place again in Winter Term 2016/17).

Note: the module is by default credited as "Core Informatics". It can also be credited as "Applied Informatics". (Decision by the Dean of Studies on 25.10.2006/2.2.2010). In this case, 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

  • Short Review: Basic Notions of First-Order Logic
  • 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

  • First Meeting: 23.4. 10-12: Administrativa, Overview.
    Slides: Introduction and Ontologies
  • Reasoning Motivation: the Einstein/Fish Puzzle ... will (again) be solved declaratively, but totally different than in DBT.
  • Thu, 24.4. 10-12. Introduction, Web architectures
    Smartboard Notes (Data Models, RDF sketch, reification)
  • Fri, 25.4. 14-16. Ontologies
    Smartboard Notes
  • Wed, 30.4. 10-12: Ontologies (Cont'd); introduction to first-order logic and basic notions of model theory.
    Slides: Introduction to Logics [1-on-1, 2-on-1]
    Smartboard Notes
  • Thu, 1.5. holiday
  • Fri, 2.5. bridge day, no lecture
  • 7.5. 10-12: Logical Formalization of Ontologies.
    Smartboard Notes
    A slide set on first-order logic (from the DB theory lecture) can be found here (discussed today: Slides 393-413).
  • 8.5. 10-12 Lecture: Ontologies (Cont'd)
    Smartboard Notes
  • 9.5. 14-16 Lecture: Ontologies, Reasoning (Cont'd)
    Smartboard Notes
    A slide set on reasoning and the FOL tableau calculus (from the DB theory lecture) can be found here.
  • 14.5. 10-12: Tableau Calculus
    Smartboard Notes
  • 15.5. 10-12: Reasoning (Conclusions), RDF
    Slides: RDF [1-on-1, 2-on-1]
    Note: all example files are accessible in the RDF subdirectory of this Web page.
    Announcement: 15.5. 14-15h, Room 0.101: Colloquium talk on LOD
  • 16.5. 14-16: RDF, SPARQL
    Smartboard Notes
    Exercise Sheet 1 (Ex.1 to play with SPARQL and Mondial; other exercises later)
  • Preliminary schedule: [up to here: 10 lectures], 21./22./23.5.; 28.5.,-,-; 5./6./7.6.; 11./12./13.6., [=20] 18./19./20.6., 25./26./- [D-USA], 2./3./4.7. [=28]
    The remaining slots will then be used for the presentations of the Seminar "Web Data Integration and Data Management".
  • 21.5. 10-12: SPARQL
    Smartboard Notes
    Sample SPARQL Queries
    Additional SPARQL exercises to be discussed on Friday:
    • (from Slide 118): if both parents are given, put both into the same answer. (Note: in the relational algebra, this is called a full outer join).
    • Mondial: For each country, give the name, and the population. If more than 1/4 of the population are living in its capital, then give also the name and the population of the capital.
  • 22.5. 10-12: SPARQL Formal Semantics
    Smartboard Notes
  • 23.5. 14-16: Discussion of Exercise 1.1 + Lecture
    Smartboard Notes
    Sample SPARQL Queries (Ex.1.1 etc.)
  • Wed 28.5. 10-12: Lecture
    Smartboard Notes
  • Thu, 29.5. holiday
  • Fri, 30.5. bridge day, no lecture
  • Wed 4.6. 10-12 Discussion of Exercises 1.5, 1.2, 1.3
    Smartboard Notes
  • Thu, 5.6. 10-12 Discussion of the remaining Exercises from Sheet 1; Lecture
    Smartboard Notes
  • Fri, 6.6. 14-16: Lecture
    Smartboard Notes
  • Wed, 11.6. 10-12: RDFS
    Slides: RDFS [1-on-1, 2-on-1]
    Smartboard Notes
  • Thu, 12.6. 10-12: RDFS (Cont'd)
    Smartboard Notes
  • Fri, 13.6. 14-16: RDF/XML - shortly the main ideas. RDF/XML ist nothing conceptually new, but (if one knows XML well) mainly craft, like using URIs, and element names and namespaces, and xml:base.
    Slides: RDF/XML [1-on-1, 2-on-1]
    Description Logics
    Slides: DL [1-on-1, 2-on-1]
    Smartboard Notes
  • Wed, 18.6. 10-12: Description Logics
    Smartboard Notes
  • Thu, 19.6. 10-12: OWL
    Slides: OWL [1-on-1, 2-on-1]
    Smartboard Notes
  • Fri, 20.6. 14-16: OWL
    Smartboard Notes
  • Wed, 25.6. 10-12: OWL
    Smartboard Notes
  • Thu, 26.6. 10-12: OWL
    Smartboard Notes
    Exercise Sheet 2 (OWL)
    Note: if experiments with mondial fail, check whether the namespace in the first/second line of mondial-meta.n3 is correct (comment out the short, experimental one).
  • Fri, 27.6. 14-16 no Lecture after soccer WC game+overnight parties
  • Wed, 2.7. 10-12 Lecture: OWL 2.0
    Slides: OWL 2.0 [1-on-1, 2-on-1]
    Smartboard Notes
  • Thu, 3.7. 10-12 Discussion of Exercises 2.1 - 2.3, Lecture
    Another Exercise (2.5): Solve Exercise 2.1 with OWL2 features
    Solutions to Exercise Sheet 2
    (no smartboard notes have been taken)
  • Thu, 4.7. 14-16 Discussion of Exercises 2.4 and 2.5, Lecture
    Smartboard Notes
  • ... that's it. According to the plan, the course consists of 28 double-hours.
  • ... finally, there is also the solution to the Fishpuzzle in OWL:
    • fishpuzzleLong.n3 is a very detailed and intuitive specifikation:
      Part 1: Specification of a row of 5 houses.
      Part 2: Specification of the properties.
      Part 3: Specification of the constraints.
    • fishpuzzleLong.sparql is the corresponding query
    • fishpuzzleShort.n3 is a shorter encoding:
      Part 1: Specification of a row of 5 houses as above.
      Part 2: tricky encoding of the properties. Instead of assigning to each house a color, a person, a brand of cigarettes, a drink, and a pet via explicit RDF edges, they are declared to be sets that are identified/mapped to each other.
      Teil 3: specification of the constraints. Simpler as before, since only the equivalence classes have to be considered.
    • fishpuzzleShort.sparql is the corresponding query.
  • 15.7.: the exam slots have been created in FlexNever (note that for the first slot, the registration ends 21.7.!)

The SmartBoard Notes are collected here (only relevant ones, so for some dates there are no notes).

The complete slide set can be found here. Please do not print it yet (subject to change); the slides of the SSD&XML lecture can also be found there. Knowledge of XML is only required so far as RDF/XML is (in addition to the N3 format) a possible representation of RDF data. One should be able to "understand" an XML document. XPath/XQuery and XSLT are not required.


  • Oral exams, several slots to choose between July 20 and October.
  • Exam procedure: about 30-40 minutes. Candidates start with talking about a topic of their choice from the lecture (5-10 minutes), then questions+answers, including sketches on paper develops dynamically. The 5-10 minutes talk at the beginning should give me as an examiner a good impression of your knowledge, and a good starting point to assess your knowledge with further questions (usually starting with the chosen topic, and then also going to other topics from the lecture).
  • Administration/Registration via FlexNever:
    Individual oral exams are not appropriately supported by FlexNever.
    Having only one SemWeb item in FlexNever would require that all participants must register until a given date, and no deregistration is possible after this date. This schema proved to be not practicable in previous years.
    Thus, the following strategy is implemented:
    • There will be several slots to chose. Choose one of them. Each slot has a fixed registration/deregistration end date.
      Prospective slots:
      • Exams between 28.7.-8.8.; registration/deregistration until 21.7.
      • Exams between 1.9.-12.9.; registration/deregistration until 25.8.
      • Exams between 6.10.-24.10.; registration/deregistration until 29.9.
    • Contact me by mail for the individual exam appointment in the slot of your choice at latest one week before end of registration.

Background Literature

P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure: "Semantic Web - Grundlagen" (in German). Springer eXamen.press, 2008; ISBN 978-3-540-33994-6.
The (german language) book covers nearly exactly the contents of the lecture and also contains an introduction to first-order logic in the appendix.

P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure: "Foundations of Semantic Web Technologies" (in English). Chapman & Hall/CRC, 2009; ISBN: 9781420090505
The (english language) book covers nearly exactly the contents of the lecture and also contains an introduction to first-order logic in the appendix.

For the part on (first order) logic, and textbook on foundations of logic from the library (e.g. "Logik für Informatiker" (in German) von Uwe Schöning) or the manuscript "Formale Systeme" by Peter H. Schmitt (Uni Karlsruhe) (Kap. 1-5) can be used.

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

Pellet - the OWL Reasoner

  • Pellet Homepage (with Download)
  • Command line usage:
    • set alias (bashrc etc.)
             alias pellet='~dbis/SemWeb-Tools/pellet/pellet.sh'
    • query: pellet query -query-file queryfile inputfile
    • Multiple input files can be used via the JENA-based tool described below.
  • Usage as Web Service (see Slides)
    • 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

  • 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 (for "inference")
    or use the pellet class that comes with the semweb.jar:
     jena -q -inf -qf query-filename
     jena -q -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


Call e.g.

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