Ks2009 Semanticweb In Action

Preview:

DESCRIPTION

 

Citation preview

The Semantic Web in ActionKennissystemen, November 2009

Rinke Hoekstra

Overview

• The Semantic Web– Languages and Integration– Storage and Querying

• Linked (Open) Data– Scalability issues– Browsing and Viewing

• DEMOs• … if there’s time …

– OWL in Action04/10/2023 2

The Semantic Web Ideology

• Identity is everything• Partial solutions are great too!• Layer cake

04/10/2023 3

OWL

Semantic Web

• Intially• `Metadata’ for web pages

• Since ~2006• `Web of Data’• Semantic web as data source in its own right

• Linked Data

• A ‘Databaseesque’ Web• RDF Triple stores• Query languages

04/10/2023 4

Languages

• Multiple Languages– RDF, RDFS and OWL

• Multiple Syntaxes– RDF/XML, Turtle (Restricted N3), Ntriple– Functional Syntax, Manchester Syntax, OWL XML

• RDF– Triples <subject, predicate,object>– Distributed– Always about something else– ... but can be about other RDF triples as well.

04/10/2023 5

Languages: RDF(S)/XML<rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:rdfs="http://www.w3.org/TR/rdf-schema/" xmlns:owl=“http://www.w3.org/2002/07/owl#” xmlns:uva=“http://www.uva.nl/rdf#” xmlns=“http://www.uva.nl/people”> <rdf:Description rdf:ID=“#radboud”> <rdf:type rdf:resource=“http://www.uva.nl/rdf#AssociateProfessor”/> <uva:name>Radboud Winkels</uva:name> <uva:teaches rdf:resource=“http://www.uva.nl/courses#ks2009”/> </rdf:Description> <uva:Course rdf:about=“http://www.uva.nl/courses#ks2009”/> <rdfs:Class rdf:about=“http://www.uva.nl/rdf#AssociateProfessor”> <rdfs:subClassOf rdf:resource=“http://www.uva.nl/rdf#StaffMember”/> </rdfs:Class> <owl:ObjectProperty rdf:about=“http://www.uva.nl/rdf#teaches”> <rdfs:domain rdf:resource=“http://www.uva.nl/rdf#Professor”/> <rdfs:range rdf:resource=“http://www.uva.nl/rdf#Course”/> </owl:ObjectProperty></rdf:RDF>

04/10/2023 6

Languages: Turtle@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs:<http://www.w3.org/TR/rdf-schema/>.@prefix owl:<http://www.w3.org/2002/07/owl#>.@prefix uva:<http://www.uva.nl/rdf#>.@prefix courses:<http://www.uva.nl/courses#>.@prefix :<http://www.uva.nl/people#>.

uva:AssociateProfessor a rdfs:Class;rdfs:subClassOf uva:StaffMember.

uva:teaches a owl:ObjectProperty;rdfs:domain uva:AssociateProfessor;rdfs:range uva:Course.

:radboud a uva:AssociateProfessor;uva:name ”Radboud Winkels”^^xsd:string;uva:teaches courses:ks2009.

courses:ks2009 a uva:Course.

04/10/2023 7

Languages: FS

04/10/2023 8

Namespace(=<http://www.uva.nl/people#>)Namespace(owl=<http://www.w3.org/2002/07/owl#>)Namespace(uva=<http://www.uva.nl/rdf#>)Namespace(courses=<http://www.uva.nl/courses#>)

Declaration(Class(uva:Course))Declaration(Class(uva:StaffMember))Declaration(Class(uva:AssociateProfessor))SubClassOf(uva:AssociateProfessor uva:StaffMember)

Declaration(DataProperty(uva:name))Declaration(ObjectProperty(uva:teaches))ObjectPropertyDomain(uva:teaches uva:AssociateProfessor)ObjectPropertyRange(uva2:teaches uva:Course)

Declaration(Individual(courses:ks2009))Declaration(Individual(radboud))ObjectPropertyAssertion(uva:teaches radboud courses:ks2009)DataPropertyAssertion(uva:name radboud "Radboud Winkels")

Integration

• How to add this ‘meta’ to my ‘data’?• Three options:

– Old fashioned HTML:<link rel='meta' type='application/rdf+xml' href='http://www.leibnizcenter.org/~hoekstra/foaf.rdf' title='FOAF'>

– HTTP 303 `see other’http://www.w3.org/TR/swbp-vocab-pub/

– Inline (RDFa/GRDDL)

04/10/2023 9

Integration: 303 See Other (Demo)http://www.metalex.eu/metalex

04/10/2023 10

Integration: Inline

• RDFa– Attributes on XHTML elements– http://www.w3.org/TR/xhtml-rdfa-primer

• GRDDL– Gleaning Resource Descriptions from Dialects of

Languages– Explicit reference to (XSL) transformation– http://www.w3.org/TR/grddl/

04/10/2023 11

Integration: RDFa Example• In XHTML:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html xmlns:cal="http://www.w3.org/2002/12/cal/ical#"> <head><title>Jo's Friends and Family Blog</title></head> <body> <p instanceof="cal:Vevent"> I'm holding <span property="cal:summary">one last summer Barbecue</span>, on <span property="cal:dtstart" content="20070916T1600-0500"> September 16th at 4pm. </span> </p> </body></html>

• In RDF:_:blanknode0 rdf:type cal:Vevent; cal:summary ”one last summer Barbecue"; cal:dtstart "20070916T1600-0500" .

04/10/2023 12

Integration: GRDDL• In HTML/XML instance documents:<html xmlns="http://www.w3.org/1999/xhtml" xmlns:grddl='http://www.w3.org/2003/g/data-view#' grddl:transformation="glean_title.xsl

http://www.w3.org/2001/sw/grddl-wg/td/getAuthor.xsl”>

• In XML Schema documents: <xsd:annotation> <xsd:appinfo> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://www.metalex.eu/latest"> <grddl:namespaceTransformation rdf:resource=”http://www.metalex.eu/grddl/metalex2owl.xsl" /></rdf:Description>

</rdf:RDF> </xsd:appinfo> </xsd:annotation>

04/10/2023 13

Storage (on the web)

• As documents– .rdf, .n3, .turtle, .html

• RDF triple stores– Sesame, Joseki, 4Store, AllegroGraph, OpenLink

Virtuoso, SDB/TDB, Open Calais, SWI Prolog – Reasoners ‘on top’, or via DIG

• Pellet, OWLIM, etc.

• SPARQL Endpoints– Results as JSON, XML, CSV etc.

04/10/2023 14

Querying

• Originally many languages– SPARQL, nRQL, SeRQL, etc.

• SPARQL: – http://www.w3.org/TR/rdf-sparql-query/

• ExamplePREFIX course: <http://www.uva.nl/courses#>PREFIX uva: <http://www.uva.nl/rdf#>SELECT ?nameWHERE { ?x uva:teaches course:ks2007. ?x uva:name ?name }

?x binds with <http://www.uva.nl/people#radboud> ?name binds with “Radboud Winkels”^^xsd:string

04/10/2023 15

Querying (2)

• SPARQL 1.0– select, construct, from, optional, filter– Negation via unbound variable

• SPARQL 1.1– update, negation, aggregation, subqueries

04/10/2023 16

THE WEB OF DATA… does it exist?

04/10/2023 17

Linked Open Data

04/10/2023 18

04/10/2023 19November 2009: 13.1 Billion triples, 142 Million links

But there’s more

• Late additions…– New York Times archives

• Now 5k names, with 4 references to LOD• Will grow to > 30k

– Reuters– OpenCalais automated tagging

• Soon to come– Data.gov (via RPI)– Whitehouse.gov (via Drupal)– Data.gov.uk (directly)– European Parliament (MetaLex+RDFa)

04/10/2023 20

Scalability

• How to deal with massive amounts of data?

• Consequences for reasoning– Billion Triple Challenge– (864.8 Million Triples)

• Consequences for querying– Table lookups, joins etc.

• … and what about …– Dealing with change, provenance, trust?

04/10/2023 21

A rough idea…

• I can crash a DL reasoner using an ontology of ~15 classes and 5 individuals (honestly)

• What if my ontology contains thousands of classes and billions of individuals?

04/10/2023 22

Reasoning• When?

– Realtime vs. in advance

• Lightweight reasoning (RDFS, OWL 2 RL)– Implementable using forward chaining rules– Still problems with scalability

• Distributed reasoning (DAS-3)– MaRVIN

• ‘SpeedDate’ distrubution of triples across nodes

– MapReduce• Full closure of BTC in 57 minutes• Output: 30B triples

• And what to do with the results?

04/10/2023 23

2 Degrees from Kevin BaconPREFIX p: http://dbpedia.org/property/SELECT ?film1 ?actor1 ?film2 ?actor2WHERE {

?film1 p:starring <http://dbpedia.org/resource/Kevin_Bacon> . ?film1 p:starring ?actor1 . ?film2 p:starring ?actor1 . ?film2 p:starring ?actor2 .}

04/10/2023 24

DBPedia: 150M triples

Rough idea…

• 1 Billion triples in MySQL– Load time

• … a couple of hours

– Simple table lookup (one-variable query)• … about 5 minutes

– Single join (two-variable query)• … a couple of hours

• Better indexes?– Harddisk access times are the bottleneck (9ms)

• More targeted reasoning, querying, federation.

04/10/2023 25

LET’S SUPPOSE THAT ALL WORKSViewing the web of data

04/10/2023 26

Browsing and Viewing

• How to unlock your RDF/OWL to users?– Custom applications (PizzaFinder)– Generic RDF Browsers (Faceted Browsing)

• How to present your RDF/OWL to users?– Custom applications (TopBraid Geo)– Generic RDF Visualisation (Fresnel Lenses)

04/10/2023 27

Browsing: Facets• Multi-dimensional search• User filters available information• Context dependent• Facet

– UI element– Values of a property– Number of results

• Query building

04/10/2023 28

Browsing• MIT Longwell

– http://simile.mit.edu/longwell/demo/libraries• /facet

– http://slashfacet.semanticweb.org• Flamenco• RDFBrowser• Exhibit

– http://simile.mit.edu/exhibit• LENA• OpenAcademia

– http://vu.openacademia.org

04/10/2023 29

Viewing

• Tables are boring!• Different data? Different presentation:

– URI/URL– Images– Strings– Coordinates

• Filtering data• Aggregating data

04/10/2023 30

Viewing: Fresnel

• RDF specification of– What data to present, and– How to present it

• http://www.w3.org/2005/04/fresnel-info

• Lenses– Group information

(class membership, SPARQL result)• Formats

– Specify how property values should be rendered04/10/2023 31

Viewing: Fresnel lens:foafPersonDefaultLens rdf:type fresnel:Lens ; fresnel:purpose fresnel:defaultLens ; fresnel:classLensDomain foaf:Person ; fresnel:group :foafGroup ; fresnel:showProperties ( foaf:name foaf:surname foaf:depiction ) .

:knowsLens rdf:type fresnel:Lens ; fresnel:classLensDomain foaf:Person ; fresnel:group :foafGroup ; fresnel:showProperties ( foaf:name foaf:surname foaf:mbox [ rdf:type fresnel:PropertyDescription ; fresnel:property foaf:knows ; fresnel:sublens :foafPersonDefaultLens ] ) .

04/10/2023 32

Viewing: Fresnel format:foafGroup rdf:type fresnel:Group ; fresnel:stylesheetLink <http://www.example.org/example.css> .

:depictFormat rdf:type fresnel:Format ; fresnel:propertyFormatDomain foaf:depiction ; fresnel:label fresnel:none ; fresnel:value fresnel:image ; fresnel:valueStyle "imageWithThickBorder"^^fresnel:styleClass ; fresnel:group :foafGroup .

:urlFormat rdf:type fresnel:Format ; fresnel:propertyFormatDomain foaf:homepage ; fresnel:propertyFormatDomain foaf:mbox ; fresnel:value fresnel:externalLink ; fresnel:labelStyle "basicLabel"^^fresnel:styleClass ; fresnel:valueStyle "basicUrl"^^fresnel:styleClass ; fresnel:group :foafGroup .

04/10/2023 33

SOME DEMOS

04/10/2023 36

OWL IN ACTION

04/10/2023 37

OWL in Action

• What OWL can do…• Traditional

– Straightforward classification tasks• Extensions

– Explanation & Justification– Probabilistic Reasoning

• Advanced (Law)– Temporal reasoning (Klarman et al., 2008)– Legal reasoning (van de Ven et al., 2008)

04/10/2023 38

Legal assessment• Case input

– Individual case description• Match

– Case is matched against a set of norms• Resolve conflicts

– Where multiple norms apply, the system determines whether and which norms have priority over others

• Final verdict

University library regulationsNorms qualify a situation

1a) Students registered at this university are allowed to check out a book from this library

1b) Students registered at other universities are allowed to check out a book from this library provided that they are enrolled in at least one course given at this university.

1c) Students who have checked out more than five books are not allowed to check out another book.

Expected subsumption hierarchy:• Art1c ⊑ Art1a, Art1c ⊑ Art1b

AmyC {Amy :Student, book_1 :Library_Book, … , book_6 :Library_BookAmy checks_out book_1, … , Amy checks_out book_6}

Norms in LKIF Core

A Default Norm0) Default: Checking out books is disallowed.

Default_GC⊑ Generic_Case⊑ ∃disallowed_by.{defaultnorm}≡ ∃checks_out.Library_Book

Default_Norm

⊑ Prohibition ⊑ ∀disallows.Default_GC≡ {defaultnorm}

Article 1a1a) Students registered at this university are allowed to

check out a book from this library.

Art1a_GC⊑ Generic_Case⊑ ∃allowed_by.art1a≡ Registered_Student ⊓

∃checks_out.Library_Book Art1a_Permission

⊑ Permission⊑ ∀allows.Art1a_GC≡ {art1a}

Article 1c1c) Students who have checked out more than five books are not

allowed to check out another book.

Art1c_GC_F⊑ Generic_Case⊑ ∃disallowed_by.{art1c}≡ Registered_Student ⊓ ≥ 6 checks_out.Library_Book

Art1c_GC_P⊑ Generic_Case⊑ ∃allowed_by.{art1c}≡ Registered_Student ⊓

∃checks_out.Library_Book≤ 5 checks_out.Library_Book

Art1c_Prohibition ⊑ Prohibition⊑ ∀disallows.Art1c_GC_F ⊓ ∀allows.Art1c_GC_P ≡ {art1c}

Resources

• http://www.w3.orgRDF(S), N3, OWL, SPARQL, RDFa, GRDDL, XML, XMLSchema, XSLT, CSS, XPath, fresnel...

• http://www.semanticweb.org/facet, other resources

• http://www.planetrdf.comAggregated RSS feed of the cool & famous

• NEW: OWL 2– http://www.w3.org/TR/owl-overview

04/10/2023 46

Recommended