1 semantic query, rules, tools (inference, triple stores, etc) peter fox (rpi) esip winter meeting...

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

Upload: andrea-powell

Post on 11-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 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

1

Semantic query, rules, tools (Inference, triple stores, etc)

Peter Fox (RPI)

ESIP Winter Meeting

Washington D.C., 2009, Jan 6, 4-5:30pm

Page 2: 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

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

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

3

Semantic Web Layers

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

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

4

Terminology• Ontology (n.d.). The Free On-line Dictionary of

Computing. 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.org

– Primer: http://www.ics.forth.gr/isl/swprimer/

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

5

Ontology Spectrum

Catalog/ID

SelectedLogical

Constraints(disjointness,

inverse, …)

Terms/glossary

Thesauri“narrower

term”relation

Formalis-a

Frames(properties)

Informalis-a

Formalinstance Value

Restrs.

GeneralLogical

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

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

6

Ontology - declarative knowledge• The triple: {subject-object-predicate}

interferometer is-a optical instrumentFabry-Perot is-a interferometerOptical instrument has focal lengthOptical instrument is-a instrumentInstrument has instrument operating modeData archive has measured parameterSO2 concentration is-a concentrationConcentration 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

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

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/ )

– RDFQuery for RDF– SeRQL for RDF (SeSAME)– OWL-QL for OWL

(http://projects.semwebcentral.org/projects/owl-ql/ )

– XQUERY for XML

• Few as yet for natural language representations (ROO – Dolbear, et al., …)

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

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

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

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

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

Query examples

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?url

FROM <bloggers.rdf>

WHERE {

?contributor foaf:name "Jon Foobar" .

?contributor foaf:weblog ?url .

}

10

Returns a table in ‘url’ (can use $)

namespace

Triple patterns usingTurtle syntax

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

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

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

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

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

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: <http://xmlns.com/foaf/0.1/> " +

"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

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

More complex queries@prefix foaf: <http://xmlns.com/foaf/0.1/> .

_:a foaf:name "Jon Foobar" ;

foaf:mbox <mailto:[email protected]> ;

foaf:depiction <http://foobar.xx/2005/04/jon.jpg> .

_:b foaf:name "A. N. O'Ther" ;

foaf:mbox <mailto:[email protected]> ;

foaf:depiction <http://example.net/photos/an-2005.jpg> .

_:c foaf:name "Liz Somebody" ;

foaf:mbox_sha1sum "3f01fa9929df769aff173f57dec2fe0c2290aeea"

_:d foaf:name "M Benn" ;

foaf:depiction <http://mbe.nn/pics/me.jpeg> . 14

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

Querying FOAF data with an optional block

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?name ?depiction

WHERE {

?person foaf:name ?name .

OPTIONAL {

?person foaf:depiction ?depiction .

} .

}

| name | depiction |

| "A. N. O'Ther" | <http://example.net/photos/an-2005.jpg> |

| "Jon Foobar" | <http://foobar.xx/2005/04/jon.jpg> |

| "Liz Somebody" | |

| "M Benn" | <http://mbe.nn/pics/me.jpeg>

15

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

Query with alternative matches, and its results

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?name ?mbox

WHERE {

?person foaf:name ?name .

{

{ ?person foaf:mbox ?mbox } UNION { ?person foaf:mbox_sha1sum ?mbox }

}

}

| name | mbox |

| "Jon Foobar" | <mailto:[email protected]> |

| "A. N. O'Ther" | <mailto:[email protected]> |

| "Liz Somebody" | "3f01fa9929df769aff173f57dec2fe0c2290aeea" |16

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

Filter to retrieve RSS feed items published in April 2005

PREFIX rss: <http://purl.org/rss/1.0/>

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

PREFIX dc: <http://purl.org/dc/elements/1.1/>

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

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

Find people described in two named FOAF graphs

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?name

FROM NAMED <jon-foaf.rdf>

FROM NAMED <liz-foaf.rdf>

WHERE {

GRAPH <jon-foaf.rdf> {

?x rdf:type foaf:Person .

?x foaf:name ?name .

} .

GRAPH <liz-foaf.rdf> {

?y rdf:type foaf:Person .

?y foaf:name ?name .

} .

} 18

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

Which graph describes different people

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?name ?graph_uri

FROM NAMED <jon-foaf.rdf>

FROM NAMED <liz-foaf.rdf>

WHERE {

GRAPH ?graph_uri {

?x rdf:type foaf:Person .

?x foaf:name ?name .

}

}

| name | graph_uri |

| "Liz Somebody" | <file://.../jon-foaf.rdf> |

| "A. N. O'Ther" | <file://.../jon-foaf.rdf> |

| "Jon Foobar" | <file://.../liz-foaf.rdf> |

| "A. N. O'Ther" | <file://.../liz-foaf.rdf> | 19

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

Personalized feed by query filterPREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX rss: <http://purl.org/rss/1.0/>

PREFIX dc: <http://purl.org/dc/elements/1.1/>

SELECT ?title ?known_name ?link

FROM <http://planetrdf.com/index.rdf>

FROM NAMED <phil-foaf.rdf>

WHERE {

GRAPH <phil-foaf.rdf> {

?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

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

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

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

Final examplePREFIX dc: <http://purl.org/dc/elements/1.1/>

PREFIX rss: <http://purl.org/rss/1.0/>

SELECT ?link ?title

FROM <http://rss.slashdot.org/Slashdot/slashdotScience>

FROM <http://www.nature.com/nprot/current_issue/rss/index.html>

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

Page 23: 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-page reference guide• http://www.dajobe.org/2005/04-sparql/

SPARQLreference-1.8-us.pdf

23

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

24

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

ontology

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

25

Semantic Web with Rules• Metalog• RuleML• SWRL• WRL• Cwm• N3 - http://hydrogen.informatik.tu-

cottbus.de/wiki/index.php/N3_Notation • Jess• Jena• RIF

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

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

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

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.

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

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.

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

29

Rule Interchange Format (RIF)• Leading candidate for W3 Recommendation

• Interlingua (similar to KIF)

• http://www.w3.org/2005/rules/wiki/RIF_Working_Group

• Tools starting (just) to emerge

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

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

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

More RIF testing• testResult(QueryLiteral,ResultLiteral) test if the second literal is

an answer of the query literal• testResults(Literal,Var,[<BindingList>]) test if the list of binding

results for the variable in the literal can be derived• testResultsOrder(Literal,Var,[<BindingList>]) 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

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

Testing class membershipDocument(

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

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

XML for conclusion<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE Document [

<!ENTITY rif "http://www.w3.org/2007/rif#">

<!ENTITY xs "http://www.w3.org/2001/XMLSchema#">

<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#">

]>

<Atom xmlns="&rif;">

<op>

<Const type="&rif;iri">http://example.org/family#isFather</Const>

</op>

<args>

<Const type="&rif;iri">http://example.org/family#Uwe</Const>

<Const type="&rif;iri">http://example.org/family#Adrian</Const>

</args>

</Atom>

<!--XML document generated on Tue Dec 30 12:08:16 EST 2008-->33

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

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

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

35

Examples<ex:Driver rdf:about="http://example.com/John">

<ex:state>New York</ex:state>

<ex:hasTrainingCertificate rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</ex:hasTrainingCertificate>

</ex:Driver>

@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.

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

A driver is young if has between 18 and 25 years old.

<ex:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">21</ex:age><br>

</ex:Driver>

@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

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

Negation<ex:Driver rdf:about="http://example.com/John">

<ex:name>Jojn Smith</ex:name>

</ex:Driver>

@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

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

Multiple rules, split disjunction<ex:Driver rdf:about="http://example.com/John">

<ex:state>Vancouver</ex:state>

<ex:accidentsNumber rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</ex:accidentsNumber>

</ex:Driver>

@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

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

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)

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

Inference structure

40

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

Lastly and briefly• Jess rules (LISP-like)

– Jess rules engine - http://herzberg.ca.sandia.gov/jess/

– http://www.jessrules.com/jess/docs/Jess71p2.pdf

41

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

Implementation• Cover language representation choices, and

knowledge engineering

• Pull apart the use case

• Tools and services

• Architecture considerations and design choices

42

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

Languages• OWL

• RDFS

• SKOS

• RIF

• SPARQL

• OWL-S

43

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

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

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

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 axiomatisation45

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

OWL requirementsDesirable 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 support46

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

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(Dn) 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

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

48

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

OWL Class Constructors

49

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

OWL axioms

50

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

SKOS properties• skos:note

e.g. ‘Anything goes.’

• skos:definitione.g. ‘A long curved fruit with a yellow skin and soft, sweet white flesh inside.’

• skos:examplee.g. ‘A bunch of bananas.’

• skos:scopeNotee.g. ‘Historically members of a sheriff's retinue armed with pikes who escorted judges

at assizes.’

• skos:historyNotee.g. ‘Deleted 1986. See now Detention, Institutionalization (Persons), or

Hospitalization.’

• skos:editorialNotee.g. ‘Confer with Mr. X. re deletion.’

• skos:changeNotee.g. ‘Promoted “love” to preferred label, demoted “affection” to alternative label, Joe

Bloggs, 2005-08-09.’

51

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

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

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

OWL 2• http://www.w3.org/2007/OWL/wiki/

OWL_Working_Group

• http://www.w3.org/2007/OWL/wiki/Image:Owl2-refcard_2008-09-24.pdf

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

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.)