Swrl Tutorial 01

  • Uploaded by: api-19981384
  • 0
  • 0
  • July 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Swrl Tutorial 01 as PDF for free.

More details

  • Words: 2,835
  • Pages: 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/cgibin/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

Knowledge

SWRL

Ontology

APPLICATION

CLASSES

Base

INSTANCES

FAST – NU, Islamabad, Fall 2008

RULES

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

Knowledge Base

CLASSES

INSTANCE S

SWRL

Ontology

APPLICATION

(3) RULES (1) RULE (2)

RULES

FAST – NU, Islamabad, Fall 2008

(4)

FACTS New FACTS

ENGINE

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

+

Engine Bridge

Rule Engine

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 Builtin 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 OWLDL 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 KB

Bridge

Engine

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

Related Documents

Swrl Tutorial 01
July 2020 1
Hibernate Tutorial 01
November 2019 6
Tutorial 01 Php
October 2019 8
Abaqus Tutorial 01
November 2019 0
Tutorial Dream Weaver 01
November 2019 25