SQWRL: Semantic Querying for OWL and SWRL Rule Languages

SQWRL: Semantic Querying for OWL and SWRL Rule Languages
paly

This article discusses the benefits of using SQWRL, a semantic query language, to enhance the capabilities of OWL and SWRL rule languages for biomedical informatics research.

  • Uploaded on | 3 Views
  • carllos carllos

About SQWRL: Semantic Querying for OWL and SWRL Rule Languages

PowerPoint presentation about 'SQWRL: Semantic Querying for OWL and SWRL Rule Languages'. This presentation describes the topic on This article discusses the benefits of using SQWRL, a semantic query language, to enhance the capabilities of OWL and SWRL rule languages for biomedical informatics research.. The key topics included in this slideshow are SQWRL, OWL, SWRL, semantic querying, biomedical informatics,. Download this presentation absolutely free.

Presentation Transcript


1. SQWRL: a Query Language for OWL Martin OConnor, 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

Related