You are on page 1of 80

Adapted by Martin O’Connor

Stanford Medical Informatics, Stanford


University
Outline

 Rules and the Semantic Web: OWL


+ SWRL
 SWRLTab: a Protégé-OWL
development environment for
SWRL
 Knowledge-driven Querying
 Relation-to-OWL mapping

FAST – NU, Islamabad, Fall 2008 2


Semantic Web Stack

FAST – NU, Islamabad, Fall 2008 3


Limitations in OWL

 The OWL reasoning tools are mostly related


to classes and classification.
 OWL reasoning is able to compute all the
property values that are implied by the
property characteristic.
 In OWL it is not possible to establish that a
person is the boss of a secretary, only that
the person is a boss.

FAST – NU, Islamabad, Fall 2008


Rule-based Systems are common
in many domains

 Engineering: Diagnosis rules


 Commerce: Business rules
 Law: Legal reasoning
 Medicine: Eligibility, Compliance
 Internet: Access authentication

FAST – NU, Islamabad, Fall 2008 5


Rule Markup (RuleML)
Initiative
 Effort to standardize inference rules.
 RuleML is a markup language for
publishing and sharing rule bases on
the World Wide Web.
 Focus is on rule interoperation between
industry standards.
 RuleML builds a hierarchy of rule
sublanguages upon XML, RDF, and OWL,
e.g., SWRL

FAST – NU, Islamabad, Fall 2008 6


What is SWRL?

 SWRL is an acronym for Semantic


Web Rule Language.
 SWRL is intended to be the rule
language of the Semantic Web.
 SWRL includes a high-level abstract
syntax for Horn-like rules.
 All rules are expressed in terms of
OWL concepts (classes, properties,
individuals).

FAST – NU, Islamabad, Fall 2008 7


SWRL: Combining Ontologies
and Rules
 Semantic Web Rule Language (SWRL)
 A proposal to combine ontologies
and rules:
 Ontologies: OWL-DL
 Rules: RuleML

 SWRL = OWL-DL + RuleML


 OWL-DL: variable free
 corresponding to SHOIN(D)
 RuleML: variables are used.

FAST – NU, Islamabad, Fall 2008


Why Do We Need a Rule
Language?
 A rule language is needed for
several reasons:
 The existing rule sets can be reused.
 Expressivity can be added to OWL
 Although expressivity always comes
with a price, i.e.Decidabilit
 It is easier to read and write rules
with a rule language.
 Rules are called syntactic sugar;
 True in some cases but not in all
situations
FAST – NU, Islamabad, Fall 2008
SWRL Rule Format (1)

Head Body

(Consequent) (Antecedant)

 SWRL rules have the form of an implication


between an antecedent (body) and
consequent (head).

 The intended meaning can be read as:


whenever the conditions specified in the
antecedent hold, then the conditions
specified in the consequent must also hold.

 Both the antecedent (body) and consequent


(head) consist of zero or more atoms.
FAST – NU, Islamabad, Fall 2008
SWRL Rule Format (2)
 An empty antecedent is treated as
trivially true (i.e. satisfied by every
interpretation), so the consequent must
also be satisfied by every interpretation;

 An empty consequent is treated as


trivially false (i.e., not satisfied by any
interpretation), so the antecedent must
also not be satisfied by any
interpretation.

 Multiple atoms are treated as a


conjunction

FAST – NU, Islamabad, Fall 2008


SWRL Rules : Summary

 Summarizing, SWRL rules can be


described as follows:
 antecedent → consequent
 in which the antecedent and
consequent consist of one or multiple
atoms.

 Typical SWRL reasoning occurs on


property and instance levels.

FAST – NU, Islamabad, Fall 2008


Example SWRL Rule: Has
uncle

hasParent(?x, ?y) ^ hasBrother(?y, ?z)


→ hasUncle(?x, ?z)

FAST – NU, Islamabad, Fall 2008 14


Example SWRL Rule with Named
Individuals: Has brother

Person(Fred) ^ hasSibling(Fred, ?s) ^ Man(?s) →


hasBrother(Fred, ?s)

FAST – NU, Islamabad, Fall 2008 15


Example SWRL Rule with Literals
and Built-ins: is adult?

Person(?p) ^ hasAge(?p,?age) ^
swrlb:greaterThan(?age,17)
→ Adult(?p)

FAST – NU, Islamabad, Fall 2008 16


SWRL Characteristics
 W3C Submission in 2004:
http://www.w3.org/Submission/SWRL
 Based on OWL-DL
 Has a formal semantics
 Rules saved as part of ontology
 Increasing tool support: Bossam,
R2ML, Hoolet, Pellet, KAON2,
RacerPro, SWRLTab
 Can work with reasoners

FAST – NU, Islamabad, Fall 2008 17


Combining OWL reasoning and
SWRL reasoning
 OWL has inference capabilities through the
OWL characteristics of properties, like
inversion, symmetry and transitivity.
 SWRL has inference capabilities through the
SWRL rules.
 In order to avoid the necessity of iteration
between OWL inferences and SWRL
inferences, it would be good if rule engines
could also apply the OWL characteristics.
 This implies that OWL characteristics would
be ‘translated’ to a SWRL equivalent.
 In SWRL it is perfectly possible to define
rules for symmetry, inversion, or transitivity
characteristics.

FAST – NU, Islamabad, Fall 2008


SWRLTab

 A Protégé-OWL development
environment for working with
SWRL rules
 Supports editing and execution of
rules
 Extension mechanisms to work
with third-party rule engines
 Mechanisms for users to define
built-in method libraries
 Supports querying of ontologies
FAST – NU, Islamabad, Fall 2008 20
SWRLTab:
http://protege.cim3.net/cgi-
bin/wiki.pl?SWRLTab

FAST – NU, Islamabad, Fall 2008 21


What is the SWRL Editor?

 The SWRL Editor is an extension to


Protégé-OWL that permits the
interactive editing of SWRL rules.
 The editor can be used to create
SWRL rules, edit existing SWRL
rules, and read and write SWRL
rules.
 It is accessible as a tab within
Protégé-OWL.
FAST – NU, Islamabad, Fall 2008 22
23
24
25
SWRL Java API
 The SWRL API provides a mechanism to create
and manipulate SWRL rules in an OWL
knowledge base.
 This API is used by the SWRL Editor. However,
it is accessible to all OWL Plugin developers.
 Third party software can use this API to work
directly with SWRL rules and integrate rules
into their applications
 Fully documented in SWRLTab Wiki.

FAST – NU, Islamabad, Fall 2008 26


Limitations of
SWRLTab/Protégé
 SWRLTab is a very convenient tool
for editing SWRL rules since it
supports automatic completion of
the properties and class names and
checks the syntax of the entered
rules.
 Rules are considered as instance
data in Protégé.
 Protégé, even in the combination
with SWRLTab, does not support
SWRL rule execution.
FAST – NU, Islamabad, Fall 2008
Need of a Rule Engine
Including SWRL Data in
Protege

CLASSES

APPLICATION
Ontology

SWRL
Knowledge
Base

INSTANCES RULES

FAST – NU, Islamabad, Fall 2008


Need for Rule Engine
 The execution of SWRL rules requires the
availability of a rule engine.

 The most general picture of a rule engine :


 The rule engine can perform reasoning using a set
of rules and a set of facts as input.
 Any new facts that are inferred are used as input to
potentially fire more rules (in forward chaining).

 Rules and facts should be available in a


format that is accessible to the rule engine.

FAST – NU, Islamabad, Fall 2008


Rule Engine Execution

RULES

RULE ENGINE

FACTS

New
FACTS

FAST – NU, Islamabad, Fall 2008


Provision of Rules to Rule
Engines
 Translations that are necessary in the
current state-of-the-art to be able to run
SWRL rules on a Protégé data set.
 The rules have to be translated and introduced
in the rule engine (1).
 Afterwards, the ontology and the knowledge
base have to be translated and introduced into
the rule engine (2).
 After reasoning (3),
 the results of the reasoning should be
translated back into the Protégé format (4).

FAST – NU, Islamabad, Fall 2008


Actions for Execution of SWRL
Rules based on Protégé Input

(3)

CLASSES
APPLICATION

RULES
Ontology
(1)

SWRL
RULE
Knowledge (2) ENGINE
FACTS
Base
INSTANCE (4) New
S RULES FACTS

FAST – NU, Islamabad, Fall 2008


Reasoning Methods
 the two reasoning methods are forward
chaining and backward chaining.
 Forward Chaining
 In forward chaining, the input and input changes
are used to select the rules that need to be fired,
 and the inferred changes are treated as input
changes (so they can lead to the firing of rules,
too).
 Backward Chaining
 In backward chaining an assertion is put or a query
is set and the rule engine reasons back to the
conditions, implied by the assertion or the query,
that need to be applied to the data.
 The rule engine returns an answer to the assertion
or to the query based on that data.

FAST – NU, Islamabad, Fall 2008


SWRL JESS INTEGRATION
Executing SWRL Rules

 SWRL is a language specification


 Well-defined semantics
 Developers must implement
engine
 Or map to existing rule engines
 Hence, a bridge…

FAST – NU, Islamabad, Fall 2008 36


SWRL Rule Engine
Bridge
GUI

OWL
KB SWRL Rule
Rule Engine
+ Engine Bridge

SWRL

Data
Knowledge
FAST – NU, Islamabad, Fall 2008
SWRL Rule Engine Bridge

 Given an OWL knowledge base it will extract SWRL


rules and relevant OWL knowledge.
 Also provides an API to assert inferred knowledge.
 Knowledge (and rules) are described in non Protégé-
OWL API-specific way.
 These can then be mapped to a rule-engine specific
rule and knowledge format.
 This mapping is developer’s responsibility.

FAST – NU, Islamabad, Fall 2008 38


Example: SWRL Bridge to
Integrate Jess Rule Engine with
Protégé-OWL
 Jess is a Java-based rule engine.
 Jess system consists of a rule
base, fact base, and an execution
engine.
 Available free to academic users,
for a small fee to non-academic
users
 Has been used in Protégé-based
tools, e.g., JessTab.

FAST – NU, Islamabad, Fall 2008 39


FAST – NU, Islamabad, Fall 2008
42
43
44
46
Outstanding Issues

 SWRL Bridge does not know about


all OWL constraints:
 Contradictions with rules possible!
 Consistency must be assured by the
user incrementally running a reasoner.
 Hard problem to solve in general.
 Integrated reasoner and rule engine
would be ideal.
 Possible solution with KAON2.

FAST – NU, Islamabad, Fall 2008 47


SWRL Built-in Bridge

 SWRL provides mechanisms to add user-defined


predicates, e.g.,
 hasDOB(?x, ?y) ^ temporal:before(?y, ‘1997’)…
 hasDOB(?x, ?y) ^ temporal:equals(?y, ‘2000’)…
 These built-ins could be implemented by each rule engine.
 However, the SWRL Bridge provides a dynamic loading
mechanism for Java-defined built-ins.
 Can be used by any rule engine implementation.

FAST – NU, Islamabad, Fall 2008 49


Defining a Built-in in
Protégé-OWL

 Describe library of built-ins in OWL


using definition of swrl:Builtin
provided by SWRL ontology.
 Provide Java implementation of
built-ins and wrap in JAR file.
 Load built-in definition ontology in
Protégé-OWL. Put JAR in plugins
directory.
 Built-in bridge will make run-time
links.
FAST – NU, Islamabad, Fall 2008 50
Example: defining stringEqualIgnoreCase from
Core SWRL Built-ins Library

 Core SWRL built-ins defined by:


 http://www.w3.org/2003/11/swrlb
 Provides commonly needed built-
ins, e.g., add, subtract, string
manipulation, etc.
 Normally aliased as ‘swrlb’.
 Contains definition for
stringEqualIgnoreCase

FAST – NU, Islamabad, Fall 2008 51


Example Implementation
Class for Core SWRL Built-in
Methods
package edu.stanford.smi.protegex.owl.swrl.bridge.builtins.swrlb;

import edu.stanford.smi.protegex.owl.swrl.bridge.builtins.*;
import edu.stanford.smi.protegex.owl.swrl.bridge.exceptions.*;

public class SWRLBuiltInMethodsImpl implements SWRLBuiltInMethods


{
public boolean stringEqualIgnoreCase(List arguments) throws BuiltInException { ... }
....
} // SWRLBuiltInMethodsImpl

FAST – NU, Islamabad, Fall 2008 52


Example Implementation for Built-
in swrlb:stringEqualIgnoreCase

private static String SWRLB_SEIC = "stringEqualIgnoreCase";

public boolean stringEqualIgnoreCase(List arguments) throws BuiltInException


{
SWRLBuiltInUtil.checkNumberOfArgumentsEqualTo(SWRLB_SEIC, 2, arguments.size());

String argument1 = SWRLBuiltInUtil.getArgumentAsAString(SWRLB_SEIC, 1, arguments);


String argument2 = SWRLBuiltInUtil.getArgumentAsAString(SWRLB_SEIC, 2, arguments);

return argument1.equalsIgnoreCase(argument2);

} // stringEqualIgnoreCase

FAST – NU, Islamabad, Fall 2008 53


Invocation from Rule
Engine
 Use of swrlb:stringEqualIgnoreCase in
rule should cause automatic
invocation.
 SWRL rule engine bridge has an
invocation method.
 Takes built-in name and arguments
and performs method resolution,
loading, and invocation.
 Efficiency a consideration: some
methods should probably be
implemented natively by rule
engine, e,g., add, subtract, etc.
FAST – NU, Islamabad, Fall 2008 54
Using SWRL to Express Protocol
Constraints
On days that both immunotherapy and
omalzumab are administered,
omalzumab must be injected 60 minutes
after immunotherapy.
Patient(?p) ^
hasExtendedEvent(?p, ?eevent1) ^ hasExtendedEvent(?p, ?eevent2) ^ temporal:hasValue(?
eevent1, ?event1) ^ temporal:hasValidTime(?eevent1, ?event1VT) ^ temporal:hasTime(?
event1VT, ?event1Time) ^ temporal:hasValue(?eevent2, ?event2) ^
temporal:hasValidTime(?eevent2, ?event2VT) ^ temporal:hasTime(?event2VT, ?event2Time) ^
hasVisit(?event1, ?v1) ^ hasVisit(?event2, ?v2) ^
hasActivity(?event1, ?a1) ^ hasName(?a1, "Omalizumab") ^
hasActivity(?event2, ?a2) ^ hasName(?a2, "Immunotherapy") ^
temporal:before(?event2Time, ?event1Time) ^
temporal:durationMinutesLessThan(60, ?event2Time, ?event1Time)

-> NonConformingPatient(?p)
FAST – NU, Islamabad, Fall 2008 55
SWRL and Querying

 SWRL is a rule language, not a


query language
 However, a rule antecedent can
be viewed as a pattern matching
specification, i.e., a query
 With built-ins, language
compliant query extensions are
possible.

FAST – NU, Islamabad, Fall 2008 57


A SWRL ‘Query’

Return all adults in ontology:

Person(?p) ^ hasAge(?p, ?age) ^ swrlb:greaterThan(?age, 17)


-> swrlq:select(?p) ^ swrlq:orderBy(?age)

FAST – NU, Islamabad, Fall 2008 58


SWRLQueryTab

FAST – NU, Islamabad, Fall 2008


SWRLQueryTab:
Displaying Results

FAST – NU, Islamabad, Fall 2008


SWRLQueryTab

 Query functionality added with


built-ins
 Interactive query execution with
tabular results display
 Low-level JDBC-like API for use in
embedded applications
 Can use any existing rule engine
back end

FAST – NU, Islamabad, Fall 2008 61


Use of SWRL as Query Language
is Attractive

 Cleaner semantics than SPARQL


 OWL-based, not RDF-based
 Very extensible via built-ins, e.g.,
temporal queries using temporal
built-ins
 Can work with reasoners

FAST – NU, Islamabad, Fall 2008 62


Querying: Semantic Issues

 Syntactic SWRL conformance is


easy
 However, SWRL is based on OWL-
DL so assumes open world
semantics
 Querying closes the world, e.g.,
how many adults in ontology?
 Should not make inferences
based on query results –
nonmonotonicity!
FAST – NU, Islamabad, Fall 2008 63
Dealing with Relational
Data
 Almost all data are relational
 Relational queries are at the
database level not at the knowledge
level
 We would like results of queries and
analyses to be added to our store of
knowledge
 We need to bridge the gap
 Triple stores a longer term solution

FAST – NU, Islamabad, Fall 2008 65


Querying and
Databases

FAST – NU, Islamabad, Fall 2008 66


Querying and
Databases

FAST – NU, Islamabad, Fall 2008 67


Model Mismatch

 Relational n-ary tuples vs. RDF-triples


 Relational databases can store a lot of
knowledge; typically they don’t
 Some mappings can be inferred
 The more normalized the database, the
easier it is to infer mappings
 Manual user-driven mapping is usually
required

FAST – NU, Islamabad, Fall 2008 68


Solution Requirements

 A schema ontology to describe


schema of arbitrary relational
database
 A mapping ontology to describe
mapping of data from tuples to
triples
 Mapping software to dynamically
map
 A query language
 A query engine
FAST – NU, Islamabad, Fall 2008 69
User Interface

OWL
Bridge Engine
KB

Mapper

Data
Knowledge
Dynamic Relation-to-OWL
Mapping
 Bridge generates optimized
relational queries to retrieve data
 Current SPARQL-based systems
 D2RQ
 D2OMapper
 Approach used successfully in
BioSTORM project for surveillance
data

FAST – NU, Islamabad, Fall 2008 71


Optimization

 Current ontology tools not


scalable
 Databases are scalable: – offload
as much work to RDBMS as
possible
 Query engines must optimize
 Built-ins are a difficulty and an
opportunity

FAST – NU, Islamabad, Fall 2008 72


Built-in Optimization

Person(?p) ^ hasAge(?p, ?age) ^ swrlb:greaterThan(?age, 17)


-> swrlq:select(?p) ^ swrlq:orderBy(?age)

FAST – NU, Islamabad, Fall 2008 73


Two Approaches

 Built-in optimization by
annotating built-in definitions
and exploiting in query engine
 Numerical built-in optimizations
 Temporal built-in optimizations
 In-query optimization to avoid
redundant data requests
 Jess with Java Fact Storage Provider
Framework

FAST – NU, Islamabad, Fall 2008 74


Rule/Query Distinction

 Significant optimizations possible for


a queries
 Optimizations for entire rule bases
not as dramatic – however, still
possible, e.g.,
 Analyzing temporal ‘slices’
 Analyzing spatial regions
 Dealing with reasoners
 Database updates?

FAST – NU, Islamabad, Fall 2008 75


Lessons learned so far
 SWRL provides a useful though not
magical increase in expressivity
 Suited well to some tasks, not to others
 Can work well as a query language
 Built-ins provide a very nice way to
increase expressivity
 Triple-stores are a longer term solution,
but dealing with relational data now is
crucial

FAST – NU, Islamabad, Fall 2008 76


Part A

 Describe the Need for a Rule


Engine
 Describe the Generic Execution
Procedure of Rules using a Rule
Engine.

FAST – NU, Islamabad, Fall 2008


Design Rules for your
Domain
 For your project:
 Describe using Pseudo-code, some
essential Rules
 Describe using SWRL syntax, the
same Rules
 Two Rules must contain the use of
Swrl built-ins
 Verify if the Rules are consistent
with your OWL Definitions and
Constraints

FAST – NU, Islamabad, Fall 2008


Essential Readings on
SWRL
 Supporting Rule System
Interoperability on the Semantic
Web with SWRL
 Martin O’Connor1, Holger
Knublauch1, Samson Tu1, Benjamin
Grosof2, Mike Dean3, William
Grosso4, Mark Musen1
 Semantic Web Tutorial –Vahid
2008
 How to Make SWRL Rules Safe?

FAST – NU, Islamabad, Fall 2008

You might also like