Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQWRL: a Query Language for OWL Martin O’Connor, Amar Das Stanford Center for Biomedical Informatics Research, Stanford University.

Similar presentations


Presentation on theme: "SQWRL: a Query Language for OWL Martin O’Connor, Amar Das Stanford Center for Biomedical Informatics Research, Stanford University."— Presentation transcript:

1 SQWRL: a Query Language for OWL Martin O’Connor, Amar Das Stanford Center for Biomedical Informatics Research, Stanford University

2 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 Hence: SQWRL (Semantic Query-Enhanced Web Rule Language; pronounced squirrel)

3 Example SWRL Rule: is adult? Person(?p) ^ hasAge(?p,?age) ^ swrlb:greaterThan(?age,17) → Adult(?p) Classify all persons in an ontology with an age greater than 17 as adults.

4 Example SQWRL Query Person(?p) ^ hasAge(?p,?age) ^ swrlb:greaterThan(?age,17) → sqwrl:select(?p, ?age) List all persons in an ontology with an age greater than 17.

5 Person(?p) ^ hasAge(?p,?age) ^ swrlb:greaterThan(?age,17) → sqwrl:select(?p, ?age) ^ sqwrl:orderBy(?age) List all persons in an ontology with an age greater than 17 and order the result by age in ascending order. Example SQWRL Query: Ordering Results Also: orderByDecending

6 Important: no way of asserting count in ontology! Example SQWRL Query: Counting Results Car(?c) → sqwrl:count(?c) Count all cars in ontology.

7 Person(?p) ^ hasAge(?p, ?age) → sqwrl:avg(?age) Also: sqwrl:max, sqwrl:min, sqwrl:sum Example SQWRL Query: Aggregating Results Average age of persons in ontology.

8 Example SQWRL Query: Arbitrary OWL Class Expressions (hasChild >= 1)(?x) → sqwrl:select(?x) SQWRL can act as a DL query language Individuals with cardinality restrictions.

9 Semantics (Briefly) Any SWRL body is valid query specification Does not violate OWA Does assume UNA

10 Useful but Relatively Inexpressive Useful but relatively inexpressive. Needs: –Negation As Failure –Disjunction –Complex Counting –Complex Aggregation We have recently added sets to the language to tackle these problems

11 SQWRL: Basic Set Operator Person(?p) ° sqwrl:makeSet(?s, ?p) ^ sqwrl:size(?size, ?s) → sqwrl:select(?size) Count all persons in ontology. Ser operators: sqwrl:isEmpty, sqwrl:union, sqwrl:difference

12 SQWRL: Negation as Failure Drug(?d) ^ BetaBlocker(?b) ° sqwrl:makeSet(?s1, ?d) ^ sqwrl:makeSet(?s2, ?b) ^ sqwrl:difference(?s3, ?s1, ?s2) ^ sqwrl:size(?size, ?s3) → sqwrl:select(?size) List the number of non beta blocker drugs in ontology.

13 SQWRL: Disjunction AntiHypertensive(?d1) ^ BetaBlocker(?d2) ° sqwrl:makeSet(?s1, ?d1) ^ sqwrl:makeSet(?s2, ?d2) ^ sqwrl:union(?s3, ?s1, ?s2) ^ sqwrl:size(?size, ?s3) → sqwrl:select(?size) List the number of beta blocker or anti-hypertensive drugs in ontology.

14 SQWRL: Complex Counting Patient(?p) ^ hasDrug(?p,?d) ° sqwrl:makeSet(?s, ?d) ^ sqwrl:groupBy(?s, ?p) ^ sqwrl:size(?n, ?s) ^ swrlb:greaterThan(?n, 2) → sqwrl:select(?p) List all patients on more than two drugs.

15 SQWRL: Complex Aggregation Patient(?p) ^ hasDrug(?p,?d) ^ hasDose(?d, ?dose) ° sqwrl:makeSet(?s, ?dose) ^ sqwrl:groupBy(?s, ?p, ?d) ^ sqwrl:avg(?avg, ?s) → sqwrl:select(?p, ?d, ?avg) List the average dose of each drug taken by each patient.

16 SQWRL: NAF, Disjunction, Complex Counting and Aggregation Patient(?p) ^ hasDrug(?p,?d) ^ hasDose(?d, ?dose) ^ BetaBlocker(?d1) ^ AntiHypertensive(?d2) ° sqwrl:makeSet(?s1, ?dose) ^ sqwrl:groupBy(?s1, ?p, ?d) ^ sqwrl:makeSet(?s2, ?drug) ^ sqwrl:groupBy(?s2, ?p) ^ sqwrl:makeSet(?s3, ?d1, ?d2) ^ sqwrl:avg(?avg, ?s1) ^ sqwrl:size(?n, ?s2) ^ swrlb:greaterThan(?n, 2) ^ sqwrl:intersection(?s4, ?s2, ?s3) ^ sqwrl:isEmpty(?s4) → sqwrl:select(?p, ?d, ?avg) List the average dose of patients that are on more than two drugs and where none of those drugs is a beta blocker or anti-hypertensive.

17 Advantages of SWRL-Based Query Language No need to invent a new semantics Standard(ish) presentation syntax ( ° is syntactic sugar) Standard serialization Can use existing reasoning infrastructure Can use existing editors On-the-fly query checking in editors For SWRL users, easy to learn Extensible with built-ins (TBox, RDF,XML…) Useful for debugging SWRL rules Queries can interoperate with rules Not SPARQL!

18 Summary Core language features available for 1+ years in Protege-OWL Set operators will be available in month or so Plans for Protege4 port


Download ppt "SQWRL: a Query Language for OWL Martin O’Connor, Amar Das Stanford Center for Biomedical Informatics Research, Stanford University."

Similar presentations


Ads by Google