Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Semantic query, rules, tools (Inference, triple stores, etc) Peter Fox (RPI) ESIP Winter Meeting Washington D.C., 2009, Jan 6, 4-5:30pm.

Similar presentations


Presentation on theme: "1 Semantic query, rules, tools (Inference, triple stores, etc) Peter Fox (RPI) ESIP Winter Meeting Washington D.C., 2009, Jan 6, 4-5:30pm."— Presentation transcript:

1 1 Semantic query, rules, tools (Inference, triple stores, etc) Peter Fox (RPI) ESIP Winter Meeting Washington D.C., 2009, Jan 6, 4-5:30pm

2 2 Semantic Web Methodology and Technology Development Process Establish and improve a well-defined methodology vision for Semantic Technology based application development Leverage controlled vocabularies, et c. Use Case Small Team, mixed skills Analysis Adopt Technology Approach Leverage Technology Infrastructure Rapid Prototype Open World: Evolve, Iterate, Redesign, Redeploy Use Tools Science/Expert Review & Iteration Develop model/ ontology

3 3 Semantic Web Layers http://www.w3.org/2003/Talks/1023-iswc-tbl/slide26-0.html, http://flickr.com/photos/pshab/291147522/

4 4 Terminology Ontology (n.d.). The Free On-line Dictionary of Computing. http://dictionary.reference.com/browse/ontology http://dictionary.reference.com/browse/ontology –An explicit formal specification of how to represent the objects, concepts and other entities that are assumed to exist in some area of interest and the relationships that hold among them. Semantic Web –An extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation, www.semanticweb.orgwww.semanticweb.org –Primer: http://www.ics.forth.gr/isl/swprimer/http://www.ics.forth.gr/isl/swprimer/

5 5 Ontology Spectrum Catalog/ ID Selected Logical Constraints (disjointness, inverse, …) Terms/ glossary Thesauri “narrower term” relation Formal is-a Frames (properties) Informal is-a Formal instance Value Restrs. General Logical constraints Originally from AAAI 1999- Ontologies Panel by Gruninger, Lehmann, McGuinness, Uschold, Welty; – updated by McGuinness. Description in: www.ksl.stanford.edu/people/dlm/papers/ontologies-come-of-age-abstract.html

6 6 Ontology - declarative knowledge The triple: {subject-object-predicate} interferometer is-a optical instrument Fabry-Perot is-a interferometer Optical instrument has focal length Optical instrument is-a instrument Instrument has instrument operating mode Data archive has measured parameter SO2 concentration is-a concentration Concentration is-a parameter A query: select all optical instruments which have operating mode vertical An inference: infer operating modes for a Fabry- Perot Interferometer which measures neutral temperature

7 7 What is Query? http://esw.w3.org/topic/SPARQL Languages –SPARQL for RDF (http://www.sparql.org/ and http://www.w3.org/TR/rdf-sparql-query/ )http://www.sparql.org/ http://www.w3.org/TR/rdf-sparql-query/ –RDFQuery for RDF –SeRQL for RDF (SeSAME) –OWL-QL for OWL (http://projects.semwebcentral.org/projects/owl- ql/ )http://projects.semwebcentral.org/projects/owl- ql/ –XQUERY for XML Few as yet for natural language representations (ROO – Dolbear, et al., …)

8 SPARQL W3 Recommendation, Jan 2008 SPARQL has 4 result forms: –SELECT – Return a table of results. –CONSTRUCT – Return an RDF graph, based on a template in the query. –DESCRIBE – Return an RDF graph, based on what the query processor is configured to return. –ASK – Ask a boolean query. The SELECT form directly returns a table DESCRIBE and CONSTRUCT use the outcome of matching to build RDF graphs. 8

9 SPARQL Solution Modifiers Pattern matching produces a set of solutions. This set can be modified in various ways: –Projection - keep only selected variables –OFFSET/LIMIT - chop the number solutions (best used with ORDER BY) –ORDER BY - sorted results –DISTINCT - yield only one row for one combination of variables and values. The solution modifiers OFFSET/LIMIT and ORDER BY always apply to all result forms. 9

10 Query examples PREFIX foaf: http://xmlns.com/foaf/0.1/ SELECT ?url FROM WHERE { ?contributor foaf:name "Jon Foobar". ?contributor foaf:weblog ?url. } 10 Returns a table in ‘url’ (can use $) namespace Triple patterns using Turtle syntax

11 What happens These triples together comprise a graph pattern. The query attempts to match the triples of the graph pattern to the model. Each matching binding of the graph pattern's variables to the model's nodes becomes a query solution, and the values of the variables named in the SELECT clause become part of the query results. In this example, the first triple in the WHERE clause's graph pattern matches a node with a foaf:name property of "Jon Foobar," and binds it to the variable named contributor. In the bloggers.rdf model, contributor will match the foaf:Agent blank-node at the top of the figure. The graph pattern's second triple matches the object of the contributor's foaf:weblog property. This is bound to the url variable, forming a query solution. 11

12 Using SPARQL with Jena Jena calls RDF graphs "models" and triples "statements" because that is what they were called at the time the Jena API was first designed ARQ's query engine can also parse queries expressed in RDQL or its own internal query language. ARQ is under active development, and is not yet part of the standard Jena distribution. http://jena.sourceforge.net/ARQ/Tutorial/data.html Can also use SPARQL from the command line 12

13 com.hp.hpl.jena.query package // Open the bloggers RDF graph from the filesystem InputStream in = new FileInputStream(new File("bloggers.rdf")); // Create an empty in-memory model and populate it from the graph Model model = ModelFactory.createMemModelMaker().createModel(); model.read(in,null); // null base URI, since model URIs are absolute in.close(); // Create a new query String queryString = "PREFIX foaf: " + "SELECT ?url " + "WHERE {" + " ?contributor foaf:name \"Jon Foobar\". " + " ?contributor foaf:weblog ?url. " + " }”; Query query = QueryFactory.create(queryString); // Execute the query and obtain results QueryExecution qe = QueryExecutionFactory.create(query, model); ResultSet results = qe.execSelect(); // Output query results ResultSetFormatter.out(System.out, results, query); // Important - free up resources used running the query qe.close(); 13

14 More complex queries @prefix foaf:. _:a foaf:name "Jon Foobar" ; foaf:mbox ; foaf:depiction. _:b foaf:name "A. N. O'Ther" ; foaf:mbox ; foaf:depiction. _:c foaf:name "Liz Somebody" ; foaf:mbox_sha1sum "3f01fa9929df769aff173f57dec2fe0c2290aeea" _:d foaf:name "M Benn" ; foaf:depiction. 14

15 Querying FOAF data with an optional block PREFIX foaf: SELECT ?name ?depiction WHERE { ?person foaf:name ?name. OPTIONAL { ?person foaf:depiction ?depiction. }. } | name | depiction | | "A. N. O'Ther" | | | "Jon Foobar" | | | "Liz Somebody" | | | "M Benn" | 15

16 Query with alternative matches, and its results PREFIX foaf: PREFIX rdf: SELECT ?name ?mbox WHERE { ?person foaf:name ?name. { { ?person foaf:mbox ?mbox } UNION { ?person foaf:mbox_sha1sum ?mbox } } | name | mbox | | "Jon Foobar" | | | "A. N. O'Ther" | | | "Liz Somebody" | "3f01fa9929df769aff173f57dec2fe0c2290aeea" | 16

17 Filter to retrieve RSS feed items published in April 2005 PREFIX rss: PREFIX xsd: PREFIX dc: SELECT ?item_title ?pub_date WHERE { ?item rss:title ?item_title. ?item dc:date ?pub_date. FILTER xsd:dateTime(?pub_date) >= "2005-04- 01T00:00:00Z"^^xsd:dateTime && xsd:dateTime(?pub_date) < "2005-05- 01T00:00:00Z"^^xsd:dateTime } 17

18 Find people described in two named FOAF graphs PREFIX foaf: PREFIX rdf: SELECT ?name FROM NAMED WHERE { GRAPH { ?x rdf:type foaf:Person. ?x foaf:name ?name. }. GRAPH { ?y rdf:type foaf:Person. ?y foaf:name ?name. }. } 18

19 Which graph describes different people PREFIX foaf: PREFIX rdf: SELECT ?name ?graph_uri FROM NAMED WHERE { GRAPH ?graph_uri { ?x rdf:type foaf:Person. ?x foaf:name ?name. } | name | graph_uri | | "Liz Somebody" | | | "A. N. O'Ther" | | | "Jon Foobar" | | | "A. N. O'Ther" | | 19

20 Personalized feed by query filter PREFIX foaf: PREFIX rss: PREFIX dc: SELECT ?title ?known_name ?link FROM FROM NAMED WHERE { GRAPH { ?me foaf:name "Phil McCarthy". ?me foaf:knows ?known_person. ?known_person foaf:name ?known_name. }. ?item dc:creator ?known_name. ?item rss:title ?title. ?item rss:link ?link. ?item dc:date ?date. } ORDER BY DESC[?date] LIMIT 10 20

21 Returning as XML SPARQL allows query results to be returned as XML, in a simple format known as the SPARQL Variable Binding Results XML Format. This schema-defined format acts as a bridge between RDF queries and XML tools and libraries. There are a number of potential uses for this capability. You could transform the results of a SPARQL query into a Web page or RSS feed via XSLT, access the results via XPath, or return the result document to a SOAP or AJAX client. To output query results as XML, use the ResultSetFormatter.outputAsXML() method, or specify --results rs/xml on the command line. 21

22 Final example PREFIX dc: PREFIX rss: SELECT ?link ?title FROM WHERE { ?i rss:link?link. ?i dc:date?date. FILTER (?date > "2008-08-31") ?i rss:description?desc. FILTER regex(?desc,"biolog| mathematic","i") ?i rss:title?title } 22

23 2-page reference guide http://www.dajobe.org/2005/04- sparql/SPARQLreference-1.8-us.pdfhttp://www.dajobe.org/2005/04- sparql/SPARQLreference-1.8-us.pdf 23

24 24 Using Protégé SPARQL plug-in to run queries on your ontology

25 25 Semantic Web with Rules Metalog RuleML SWRL WRL Cwm N3 - http://hydrogen.informatik.tu- cottbus.de/wiki/index.php/N3_Notationhttp://hydrogen.informatik.tu- cottbus.de/wiki/index.php/N3_Notation Jess Jena RIF

26 26 Rules - expressing logic Notation - e.g. Horn rules –(P1 ∧ P2 ∧...) → C –parent(?x,?y) ∧ brother(?y,?z) ⇒ uncle(?x,?z) –for any X, Y and Z: if Y is a parent of X, and Z is a brother of Y then Z is the uncle of X

27 27 Examples from http://www.w3.org/Submission/SWRL/ A simple use of these rules would be to assert that the combination of the hasParent and hasBrother properties implies the hasUncle property. Informally, this rule could be written as: –hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3) In the abstract syntax the rule would be written like: –Implies(Antecedent(hasParent(I-variable(x1) I- variable(x2)) hasBrother(I-variable(x2) I- variable(x3)))Consequent(hasUncle(I-variable(x1) I- variable(x3)))) From this rule, if John has Mary as a parent and Mary has Bill as a brother then John has Bill as an uncle.

28 28 Examples An even simpler rule would be to assert that Students are Persons, as in –Student(?x1) ⇒ Person(?x1).Implies(Antecedent(Student(I- variable(x1)))Consequent(Person(I-variable(x1)))) –However, this kind of use for rules in OWL just duplicates the OWL subclass facility. It is logically equivalent to write instead Class(Student partial Person) or SubClassOf(Student Person) –which would make the information directly available to an OWL reasoner.

29 29 Rule Interchange Format (RIF) Leading candidate for W3 Recommendation Interlingua (similar to KIF) http://www.w3.org/2005/rules/wiki/RIF_Worki ng_Grouphttp://www.w3.org/2005/rules/wiki/RIF_Worki ng_Group Tools starting (just) to emerge

30 Test an interchanged RIF rule set testQuery(Literal) test the literal (= rule head or fact) testNotQuery(Literal) negatively test the literal with default negation testNegQuery(Literal) negatively test the literal with explicit negation testNumberOfResults(Literal, Number) test number of results derived for the literal = stated value testNumberOfResults(Literal, Var, Number) test number of results for the variable in the literal testNumberOfResultsMore(Literal,Number) test number of results for the literal > given value testNumberOfResultsLess(Literal,Number) test number of results for the literal < given value testNumberOfResultsMore(Literal,Var,Number) test number of results for the variable in the literal > given value testNumberOfResultsLess(Literal,Var,Number) test number of results for the variable in the literal < given value 30

31 More RIF testing testResult(QueryLiteral,ResultLiteral) test if the second literal is an answer of the query literal testResults(Literal,Var,[ ]) test if the list of binding results for the variable in the literal can be derived testResultsOrder(Literal,Var,[ ]) test if the list of ordered binding results for the variable in the literal can be derived testQueryTime(Literal, MaxTime) test if the literal can be derived in less than the stated time in milliseconds testNotQueryTime(Literal, MaxTime) test if the literal can be derived negatively by default in less than the stated time in milliseconds testNegQueryTime(Literal, MaxTime) test if the literal can be derived strongly negative in less than the stated time in milliseconds getQueryTime(Literal, Time) get the query time for the literal getNotQueryTime(Literal,Time) get the default negated query time for the literal getNegQueryTime(Literal,Time) get the explicitly negated query time for the literal 31

32 Testing class membership Document( Prefix(fam http://example.org/family#) Group ( Forall ?X ?Y ( fam:isFatherOf(?Y ?X) :- And (fam:isSonOf(?X ?Y) fam:isMale(?Y) ?X#fam:Child ?Y#fam:Parent ) ) fam:isSonOf(fam:Adrian fam:Uwe) fam:isMale(fam:Adrian) fam:isMale(fam:Uwe) fam:Adrian#fam:Child fam:Uwe#fam:Parent ) Conclusion: fam:isFather(fam:Uwe fam:Adrian) 32

33 XML for conclusion <!DOCTYPE Document [ ]> http://example.org/family#isFather http://example.org/family#Uwe http://example.org/family#Adrian 33

34 Language options that you can implement JenaRules is based on RDF(S) and uses the triple representation of RDF descriptions (see also N3 Notation and Turtle Syntax). 34

35 35 Examples New York true @prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# @prefix ex: http://example.com/ @prefix xs: http://www.w3.org/2001/XMLSchema# [eligibleDriver: (?d rdf:type ex:EligibleDriver) <- (?d rdf:type ex:Driver) (?d ex:state "New York") (?d ex:hasTrainingCertificate "true"^^xs:boolean)] Any driver living in New York and having training driver certificate is eligible for insurance.

36 A driver is young if has between 18 and 25 years old. 21 @prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# @prefix ex: http://example.com/ @prefix xs: http://www.w3.org/2001/XMLSchema# [youngDriver: (?d rdf:type ex:YoungDriver) <- (?d rdf:type ex:Driver) (?d ex:age ?a) greaterThan(?a,18) lessThan(?a,25)] 36

37 Negation Jojn Smith @prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# @prefix ex: http://example.com/ [eligibleDriver: (?d rdf:type ex:TypicalDriver) <- (?d rdf:type ex:Driver) noValue(?d rdf:type ex:YoungDriver) noValue(?d rdf:type ex:SeniorDriver)] 37

38 Multiple rules, split disjunction Vancouver 1 @prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# @prefix ex: http://example.com/ [eligibleDriver_1: (?d rdf:type ex:EligibleDriver) <- (?d rdf:type ex:Driver) (?d ex:state "New York") (?d ex:accidentsNumber ?an) lessThan(?an,2)] [eligibleDriver_2: (?d rdf:type ex:EligibleDriver) <- (?d rdf:type ex:Driver) (?d ex:state "Vancouver") (?d ex:accidentsNumber ?an) lessThan(?an,2)] 38

39 39 Using Protégé SWRL plugin for editing rules Jena (instructions for running the rule engine and using inference: http://hydrogen.informatik.tu- cottbus.de/wiki/index.php/JenaRules)

40 Inference structure 40

41 Lastly and briefly Jess rules (LISP-like) –Jess rules engine - http://herzberg.ca.sandia.gov/jess/ http://herzberg.ca.sandia.gov/jess/ –http://www.jessrules.com/jess/docs/Jess71p2.pdfhttp://www.jessrules.com/jess/docs/Jess71p2.pdf 41

42 Implementation Cover language representation choices, and knowledge engineering Pull apart the use case Tools and services Architecture considerations and design choices 42

43 Languages OWL RDFS SKOS RIF SPARQL OWL-S 43

44 RDFS Note: XMLS not an ontology language –Changes format of DTDs (document schemas) to be XML –Adds an extensible type hierarchy Integers, Strings, etc. Can define sub-types, e.g., positive integers RDFS is recognisable as an ontology language –Classes and properties –Sub/super-classes (and properties) –Range and domain (of properties) 44

45 However RDFS too weak to describe resources in sufficient detail –No localized range and domain constraints Can’t say that the range of hasChild is person when applied to persons and elephant when applied to elephants –No existence/cardinality constraints Can’t say that all instances of person have a mother that is also a person, or that persons have exactly 2 parents –No transitive, inverse or symmetrical properties Can’t say that isPartOf is a transitive property, that hasPart is the inverse of isPartOf or that touches is symmetrical –… Difficult to provide reasoning support –No “native” reasoners for non-standard semantics –May be possible to reason via First Order axiomatisation 45

46 OWL requirements Desirable features identified for Web Ontology Language: Extends existing Web standards –Such as XML, RDF, RDFS Easy to understand and use –Should be based on familiar KR idioms Formally specified Of “adequate” expressive power Possible to provide automated reasoning support 46

47 The OWL language: Three species of OWL –OWL full is union of OWL syntax and RDF –OWL DL restricted to FOL fragment (¼ DAML+OIL) –OWL Lite is “easier to implement” subset of OWL DL Semantic layering –OWL DL ¼ OWL full within DL fragment –DL semantics officially definitive OWL DL based on SHIQ Description Logic –In fact it is equivalent to SHOIN (D n ) DL OWL DL Benefits from many years of DL research –Well defined semantics –Formal properties well understood (complexity, decidability) –Known reasoning algorithms –Implemented systems (highly optimized) 47

48 48

49 OWL Class Constructors 49

50 OWL axioms 50

51 SKOS properties skos:note e.g. ‘Anything goes.’ skos:definition e.g. ‘A long curved fruit with a yellow skin and soft, sweet white flesh inside.’ skos:example e.g. ‘A bunch of bananas.’ skos:scopeNote e.g. ‘Historically members of a sheriff's retinue armed with pikes who escorted judges at assizes.’ skos:historyNote e.g. ‘Deleted 1986. See now Detention, Institutionalization (Persons), or Hospitalization.’ skos:editorialNote e.g. ‘Confer with Mr. X. re deletion.’ skos:changeNote e.g. ‘Promoted “love” to preferred label, demoted “affection” to alternative label, Joe Bloggs, 2005-08-09.’ 51

52 SKOS core and RDFS/OWL Disjoint? –Should skos:Concept be disjoint with … rdf:Property ? rdfs:Class ? owl:Class ? DL? –Should SKOS Core be an OWL DL ontology? Means not allowing flexibility in range of documentation props –It is now (2008)! 52

53 OWL 2 http://www.w3.org/2007/OWL/wiki/OWL_Wor king_Grouphttp://www.w3.org/2007/OWL/wiki/OWL_Wor king_Group http://www.w3.org/2007/OWL/wiki/Image:Owl 2-refcard_2008-09-24.pdfhttp://www.w3.org/2007/OWL/wiki/Image:Owl 2-refcard_2008-09-24.pdf

54 54 Tutorial Summary Many different options for ontology querying - none are standard RDF query is most advanced Inference needs and choice will depend on descriptive requirements (e.g. DL, Full, RDF, etc.)


Download ppt "1 Semantic query, rules, tools (Inference, triple stores, etc) Peter Fox (RPI) ESIP Winter Meeting Washington D.C., 2009, Jan 6, 4-5:30pm."

Similar presentations


Ads by Google