Semantic Campus - A FOAF Extension

position paper for FOAF 2004 in Galway, Ireland

Benjamin Nowack
appmosphere web applications, Kruppstr. 100, 45145 Essen, Germany


This position paper describes the Semantic Campus project which aims to create and maintain an RDF vocabulary for the description of campus-related resources such as universities, departments, lecturers, and students.


The majority of Semantic Web developers has an academic background, and although many institutes are developing department or publication ontologies, a documented and extendable basic campus vocabulary is still missing (or hasn't been promoted enough). Just like FOAF may become (or already is) a common denominator and base vocabulary for person-related RDF applications, the Semantic Campus project tries to build, maintain, and document a set of terms from the campus domain that may help mapping specialized ontologies to each other. The created vocabulary itself is going to be mapped to the FOAF specification for interoperability with other FOAF-based applications.

Target audience and use cases

In order to come up with a limited but useful initial set of terms, I tried to identify the target audience and a set of use cases for the vocabulary.

The list of potential users includes
  • students
  • professors
  • researchers
  • lecturers
  • alumni
  • university employees
  • external organizations (e.g. companies)
Use cases could be
  1. annotating and finding publications
  2. finding notes of a missed lecture
  3. finding a person who could give assistance on a certain topic
  4. finding peers who attend the same lectures or plan to pass the same exams
  5. finding available classes/courses for a given course of study
  6. finding alumni
  7. offering and finding thesis topics
  8. finding universities that focus on certain topics
  9. Web-based studies planning
  10. finding room numbers and consultation hours
  11. announcing room changes, registration dates, ...
  12. describing/finding events and related resources
  13. finding answers to FAQs on a certain topic

Required terms

Some of the use cases are not really campus-specific, too complicated, or simply out of scope of the project described in this position paper. Use case 12 (describing/finding events and related topics) for example should better be handled by other vocabularies. Terms such as "Organization" are already part of the FOAF vocabulary and redescribing them is not neccessary. FAQs is probably another example for something that could better be described in a separate schema.

Based on the remaining use cases and the target audience classes, a list of required terms (excluding reusable terms from the FOAF specification) can be defined:
  • Student (studiesAt, enrolledIn, attendedLecture, universityHomepage)
  • PhDStudent
  • Graduate (wroteThesis, graduatedAt, title, formerUniversityHomepage, graduationYear)
  • UniversityEmployee (worksAt, consultationHours)
  • Professor
  • PhD (wroteDissertation)
  • Researcher (worksFor, worksAt)
  • Lecturer (givesLecture, givesLecturesAt)
  • Lecture (givenBy)
  • Alumnus (studiedAt)
  • Publication (abstract, year, month, day)
  • LectureNotes (writtenBy, notesOf)
  • CourseOfStudy (mandatoryCourse, optionalCourse, topic)
  • Course (courseID, topic, lecturer, place, courseOfStudy)
  • University (department, offersCourseOfStudy)
  • Department (departmentOf, subDepartmentOf)
  • Institute
  • Thesis (writtenAt, writtenBy)
  • Dissertation (writtenAt, writtenBy)
  • Exam (examCourse, year, month, day)
  • ConsultationHours (weekDay, startTime, endTime)
  • Topic [use SKOS instead?]

Taxonomy draft and FOAF mappings

The remaining terms can now be arranged to form a basic taxonomy and define mappings to the FOAF vocabulary. sc is used as a namespace identifier for the Campus ontology, FOAF terms are prefixed by foaf.


  • foaf:Person
    • sc:Student
      • sc:PhDStudent
    • sc:Graduate
      • sc:PhDStudent
      • sc:PhD
    • sc:UniversityEmployee
      • sc:Professor
    • sc:Researcher
      • sc:PhDStudent
    • sc:Lecturer
      • sc:Professor
    • sc:Alumnus
  • sc:Lecture
  • foaf:Organization
    • sc:University
    • sc:Institute
  • sc:Department
  • foaf:Document
    • sc:Publication
    • sc:LectureNotes
    • sc:Thesis
    • sc:Dissertation
  • sc:CourseOfStudy
  • sc:Course
  • sc:Exam
  • sc:ConsultationHours
  • sc:Topic

Properties (d and r are used as abbreviations for domain and range)

  • sc:studiesAt (d=sc:Student, r=sc:University)
  • sc:enrolledIn (d=sc:Student, r=sc:Course)
  • sc:attendedLecture (d=foaf:Person, r=sc:Lecture)
  • sc:universityHomepage (d=sc:Student)
  • foaf:schoolHomepage
    • sc:formerUniversityHomepage (d=sc:Alumnus)
  • foaf:title
    • sc:title (d=sc:Graduate)
  • sc:studiedAt (d=sc:Alumnus, r=sc:University)
  • sc:graduatedAt (d=sc:Graduate, r=sc:University)
  • sc:graduationYear (d=sc:Graduate)
  • sc:chairTopic (d=sc:Professor, r=sc:topic)
  • sc:givesLecture (d=sc:Lecturerm r=sc:Lecture)
  • sc:givesLecturesAt (d=sc:Lecturer, r=foaf:Organization)
  • sc:givenBy (d=sc:Lecture, r=sc:Lecturer)
  • sc:worksFor (d=foaf:Person, r=foaf:Person)
  • sc:worksAt (d=foaf:Person, r=foaf:Organization)
  • sc:consultationHours (d=foaf:Person, r=sc:ConsultationHours)
  • dc:description
    • sc:abstract (d=sc:Publication)
  • sc:year [reuse?]
  • sc:month [reuse?]
  • sc:day [reuse?]
  • sc:weekday [reuse?]
  • sc:startTime [reuse?]
  • sc:endTime [reuse?]
  • foaf:made
    • sc:wroteThesis (d=sc:Graduate, r=sc:Thesis)
    • sc:wroteDissertation (d=sc:PhD, r=sc:Dissertation)
  • foaf:maker
    • sc:writtenBy (d=foaf:Document, r=foaf:Person)
  • sc:writtenAt (d=foaf:Document, r=foaf:Organization)
  • sc:notesOf (d=foaf:LectureNotes, r=sc:Lecture)
  • sc:mandatoryCourse (d=sc:CourseOfStudy, r=sc:Course)
  • sc:optionalCourse (d=sc:CourseOfStudy, r=sc:Course)
  • sc:courseID (d=sc:Course)
  • sc:topic (r=sc:Topic) =>better off with SKOS?
  • sc:lecturer (d=sc:Course, r=sc:Lecturer)
  • sc:place [still uncertain how to model that]
  • sc:courseOfStudy (d=sc:Course, r=sc:CourseOfStudy)
  • sc:department (d=foaf:Organization, r=sc:Department)
  • sc:departmentOf (d=sc:Department, r=foaf:Organization)
  • sc:subDepartmentOf (d=sc:Department, r=sc:Department)
  • sc:examCourse (d=sc:Exam, r=sc:Course)

Summary and next steps

This has been a short description of the Semantic Campus project. I'm going to make an initial vocabulary available by the end of august 2004. It will be published at

As could be seen, there are still a lot of issues that haven't been addresses properly. I'm hoping to get some feedback or even find some collaborators who would like help developing and maintaining the campus ontology. I'll provide a web-based vocabulary management system (WVMS) that hopefully facilitates updating the spec and accompanying documentation. It will at least allow the dynamic generation of RDFS, OWL DL, and OWL Full serializations. It is planned to build both the WVMS and the campus specification based on the forthcoming guidelines of the Semantic Web Best Practices and Deployment (SWBPD) Working Group's Vocabulary Management Task Force. (Then we'd have a SWBPDWGVMTFWVMS ;)