Applying SWRL, DL Query and SPARQL to your ontology


Jump to: navigation, search

Applying SWRL, DL Query and SPARQL to your ontology

Course UNIK4710, UNIK9710
Title Applying SWRL, DL Query or SPARQL to your ontology
Lecture date 2014/04/23 09:15h
presented by Josef Noll
Objective Representing your scenario into a set of rules, and converting the rules to SPARQL queries or SWRL rules
Learning outcomes Having visited the lecture, you will
  • Have understood the principle of using SWRL (Protege 3.x) or Query (Protege 4.x)
  • Have learned how to apply a SPARQL query
  • Have learned how to create a SWRL rule
Pensum (read before) Formulate a set of rules in a linguistic way
  • Understand and explain the components of a SWRL rule
  • Run example
References (further info) References:
Keywords SWRL, RulesML, OWL-DL, Jess, DL Tab, SPARQL

this page was created by Special:FormEdit/Lecture, and can be edited by Special:FormEdit/Lecture/Applying SWRL, DL Query and SPARQL to your ontology.

Test yourself, answer these questions

Try to understand the examples.

Expected progress so far

  • Establish a scenario described by use case - done
  • Have a verbal expression of queries - done
  • Have taken a decision to work with
    • Protégé 3.5 with SWRL or SQWRL or
    • Protégé 4.3 with DL Query og SPARQL

Working on

  • Apply SWRL or SPARQL to your ontologies
  • Discussion on short-term (decisions) versus long-term (knowledge-creation). Typical time frames for knowledge-update are 1/hour or 1/day, whereas decisions are taken about 10/min or 1/min (see slide 3-5 in Media:UNIK4710-L10-v14.pdf)
  • Discussion on "history" of decisions, to be taken into consideration through "weighted context"


  • Interfaces to programmes (APIs) to work with your knowledge base. Typical APIs are OWL, Protege, Jena and SPARQL
  • Programming your scenario
  • Presentation of your integrated solution

Lecture notes

Lecture notes 2014

Lecture notes 2013

Lecture notes 2012


Presentations 2012

Other info

SWRL examples

  • Is the person running?
Person(?person) ∧ hasSpeed(?person, ?speed)  ∧ swrlb:greaterThanOrEqual(?speed, 10) →  hasStatus(?person, running) 
  • Is Susana walking?
Person(Susana) ∧ hasSpeed(Susana, ?speed)  ∧ swrlb:greaterThanOrEqual(?speed, 1) →  hasStatus(Susana, walking) 
  • which songs the person likes
Person(?person) ∧ hasPreference(?person, ?prefer) ∧ Music(?music) ∧ hasStyle(?music, ?prefer) →  like(?person, ?music)  
  • LowRisk state range for the persons who have a passive action and a heart rate between 81 – 120
Person(?p) ∧ LowRiskState(?n) ∧ Passive(?y) ∧ hasAction(?x, ?y) ∧ hasHeartRateOf(?x, ?z)∧ swrlb:greatherThanOrEqual(?z, 81) 
∧ swrlb:lessThanOrEqual(?z, 120) →  hasHealthCondition(?x, ?n)

Ontology examples

RDF examples