KEMBAR78
SWRL Tutorial 01 | PDF | Relational Model | Interpretation (Logic)
100% found this document useful (4 votes)
10K views80 pages

SWRL Tutorial 01

The document discusses Semantic Web Rule Language (SWRL), which combines OWL ontologies and RuleML rules. SWRL allows users to write rules that can reason about OWL individuals and infer new knowledge. It introduces SWRLTab, a Protege plugin that allows editing and executing SWRL rules. However, Protege alone does not perform rule execution. The document therefore discusses the need for a rule engine to execute SWRL rules and how rules and facts from Protege can be translated and provided to a rule engine for reasoning.

Uploaded by

api-19981384
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
10K views80 pages

SWRL Tutorial 01

The document discusses Semantic Web Rule Language (SWRL), which combines OWL ontologies and RuleML rules. SWRL allows users to write rules that can reason about OWL individuals and infer new knowledge. It introduces SWRLTab, a Protege plugin that allows editing and executing SWRL rules. However, Protege alone does not perform rule execution. The document therefore discusses the need for a rule engine to execute SWRL rules and how rules and facts from Protege can be translated and provided to a rule engine for reasoning.

Uploaded by

api-19981384
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 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