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

Databases and Information Systems

Uni Göttingen

Practical Course Semantic Web Technologies
Summer Term 2020

Note: this course does not give an introduction to Semantic Web, but builds upon the knowledge from the Semantic Web WS 2019/20 lecture. The next introductory course to Semantic Web will prospectively take place in WS 2020/21.

Prof. Dr. Wolfgang May
Lars Runge, M.Sc., Sebastian Schrage, M.Sc.

  • Date and Time: Friday 14-18, depending on how long the course takes. The course meeting will not take place every week.
  • Virtual Meetings: We will use BigBlueButton provided by GWDG; the rooms/meetings can be entered via StudIP.
    Please also read the general and technical information about DBIS virtual teaching.

The course yields 6 ECTS-credits; it is graded (=benotet)


  • Successful participation in the module "Semantic Web"
  • Successful participation in the "General Programming Lab/Allgemeines Programmierpraktikum" (or an equivalent course).

Course Description

The practical course builds upon the lecture Semantic Web. Among other sources, the Mondial database in RDF format is used.

Documentation: use the slides from the Semantic Web lecture (the full slide set can be found here)

The course takes place in groups of 3-4 persons. There will be several units.
Usually, for every unit there is a course meeting, and additionally individual meetings with the groups.

Topics: Warm-Up: SPARQL revisited, Linked Open Data, distributed queries in SPARQL (e.g. using Wikidata), RDF/OWL with Java/Jena, OWL and hybrid OWL+ (Datalog-style) rules reasoning, Tools: OWLAPI (Manchester Syntax) +Protege, RDF4J (ex-Sesame), Querying and analyzing OWL Metadata (which is not easily possible with only SPARQL), (maybe: Web Services, if not taught before in the XML lab course)

Time Schedule


Jena: RDF and SPARQL

Apache JENA ( ) is a free and open source Java framework for building Semantic Web and Linked Data applications.
The course uses a lightweight housemade shell interface to Jena with Pellet for querying in a still experimental unstable version:
If something does not work, send us an email.

  • requires Java 8
  • set alias (bashrc etc.)
     alias jena='java -jar /afs/'
  • query: (if=input-files, qf=query-file, e.g. in SPARQL)
    jena -q -if inputfiles -qf queryfile
  • general options:
    -il: input language (not necessary, is auto-detected)
    -if: input files
  • query options:
    -q: query
    -il, -if: as above
    -qf: query-file
    -ofo optimize-federated-off (concerns the eval. of SERVICE clauses in SPARQL)
  • 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 rule-based reasoner: option -inf (for "inference")
    or use the pellet/openllet class that comes with the semweb.jar:
     jena -q -inf -qf query-filename
     jena -q -pellet -qf query-filename

Raptor RDF Syntax Library - Raptor RDF parser utility

  • access URLs as RDF client rapper instructions