• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
SemanticWeb Nuts 'n Bolts
 

SemanticWeb Nuts 'n Bolts

on

  • 2,925 views

 

Statistics

Views

Total Views
2,925
Views on SlideShare
2,921
Embed Views
4

Actions

Likes
4
Downloads
0
Comments
0

3 Embeds 4

http://www.slideshare.net 2
http://health.medicbd.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • XPath doesn’t work

SemanticWeb Nuts 'n Bolts SemanticWeb Nuts 'n Bolts Presentation Transcript

  • SemanticWeb: Nuts ‘n Bolts Leibniz Center Meeting, November 2007 Rinke Hoekstra
  • Overview
    • The Semantic Web
    • Identification
    • Languages and Integration
    • Storage and Querying
    • Browsing and Viewing
    • ... does it really exist?
  • The Semantic Web adds...
    • Machine understandable semantics
    • Explicit metadata
    • Ontology on the web:
      • shared understanding of a domain
    • Logic
      • Explanation --> Confidence
      • Reasoning
        • Expressiveness vs. Computational Efficiency
  • The Semantic Web Ideology
    • Partial solutions are great too!
    • Layer cake
    OWL
  • Identification: URI’s and Namespaces
    • URI: Universal Resource Identifier
      • ... Just an identifier
        • http://www.leibnizcenter.org/people#joost
      • URL: Universal Resource Location
        • http://www.leibnizcenter.org/people#joost
      • URN: Universal Resource Name
        • urn:leibnizcenter:people:joost
      • IRI: Internationalized Resource Identifier http://www.l èî ß ñ ¡zç é nt ë r.ørg/p é øple#jøøst
    • Namespace
      • A ‘space’ in which all locally defined names are unique, e.g.:
        • http://www.leibnizcenter.org/people#joost
        • http://www.hcs.science.uva.nl/staff#joost
      • Basis for `trust’
  • Languages: XML, XML Schema, XPath & XSLT
    • Meta-language for markup
    • XML: Structured metadata
      • Elements & attributes
      • Semantics through nesting
        • Ordered labeled tree
      • Constraints on values
      • Order of elements important
    • XML Schema: Defines structure
      • Types
      • Built-in datatypes
    • XPath: Traverse structure
    • XSLT: Transform structure
  • Languages: RDF & RDF Schema
    • RDF: Data-model
      • Triples: object-attribute-value
      • Has an XML syntax, but also others (!)
        • Semantics is independent of order of elements
      • Independent of domain of use
      • Graph, not tree
    • RDF(S): Defines vocabulary
      • Introduces classes
      • Makes semantic information machine accessible
  • Languages: RDF
    • Resource
      • ‘ things’ on the web
      • Have a URI ( rdf:ID, rdf:about )
    • Literal
    • Property
      • Also a resource
      • Describes relations
    • Statement
      • Also a resource
      • Triple: <resource,property,value>
      • Asserts the property of a resource
    • Reification
      • Statements about statements
      • Contrast: traditional meta-classes
  • Languages: RDF Schema
    • Distinction between individual objects & classes
      • rdfs:Class , rdf:type
    • Subclasses:
      • rdfs:subClassOf
      • Subclass hierarchies
      • Inheritance of properties
    • Global restrictions on properties
      • rdf:domain and rdf:range
    • Subproperties:
      • rdfs:subPropertyOf
    • Metadata
      • rdfs:seeAlso , rdfs:isDefinedBy , rdfs:comment , rdfs:label
  • Languages: RDF/XML Code Example
    • <?xml version=“1.0” encoding=“utf-8”?>
    • <rdf:RDF
    • xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
    • xmlns:uva=“http://www.uva.nl/rdf#”
    • xmlns=“http://www.uva.nl/people”>
    • <rdf:Description rdf:about=“http://www.uva.nl/people#joost”>
    • <uva:teaches rdf:resource=“http://www.uva.nl/courses#kr2007”/>
    • </rdf:Description>
    • <rdf:Description rdf:ID=“#joost”>
    • <uva:name>Joost Breuker</uva:name>
    • </rdf:Description>
    • </rdf:RDF>
  • Languages: RDF(S)/XML Code Example.
    • <rdf:RDF
    • xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
    • xmlns:rdfs=&quot;http://www.w3.org/TR/rdf-schema/&quot;
    • xmlns:uva=“http://www.uva.nl/rdf#”
    • xmlns=“http://www.uva.nl/people”>
    • <rdf:Description rdf:ID=“#joost”>
    • <rdf:type rdf:resource=“http://www.uva.nl/rdf#Professor”/>
    • <uva:name>Joost Breuker</uva:name>
    • <uva:teaches rdf:resource=“http://www.uva.nl/courses#kr2007”/>
    • </rdf:Description>
    • <uva:Course rdf:about=“http://www.uva.nl/courses#kr2007”/>
    • <rdfs:Class rdf:about=“http://www.uva.nl/rdf#Professor”>
    • <rdfs:subClassOf rdf:resource=“http://www.uva.nl/rdf#StaffMember”/>
    • </rdfs:Class>
    • <rdf:Property 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”/>
    • </rdf:Property>
    • </rdf:RDF>
  • Languages: RDF notations
    • Different ways of writing RDF
      • RDF/XML
      • RDF/XML Abbrev
      • N3
        • Turtle only allows valid RDF-graphs
        • Ntriple one triple per line, fully qualified id’s.
  • Languages: N3
    • @prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
    • @prefix rdfs:<http://www.w3.org/TR/rdf-schema/>.
    • @prefix uva:<http://www.uva.nl/rdf#>.
    • @prefix courses:<http://www.uva.nl/courses#>.
    • @prefix :<http://www.uva.nl/people#>.
    • uva:Professor a rdfs:Class;
    • rdfs:subClassOf uva:StaffMember.
    • uva:teaches a rdf:Property;
    • rdfs:domain uva:Professor;
    • rdfs:range uva:Course.
    • :joost a uva:Professor;
    • uva:name &quot;Joost Breuker”^^xsd:string;
    • uva:teaches courses:kr2007.
    • courses:kr2007 a uva:Course.
  • Languages: Important Message
    • RDF statements are:
      • Triples <subject, predicate,object>
      • Distributed
      • Always about something else
      • ... but can be about other RDF triples as well.
  • Integration
    • How to add this ‘meta’ to my ‘data’?
    • Three options:
      • Oldfashioned 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
  • Integration: 303 See Other
  • Integration: Inline
    • RDFa
      • Attributes on XHTML elements
      • http://www.w3.org/TR/xhtml-rdfa-primer
      • Standard XHTML:
        • Predicate: @rel, @rev
        • Object: @href, @src (embedded)
      • RDFa:
        • Subject: @about
        • Predicate: @property
        • Object: @resource (not clickable)
        • Datatype: @datatype
        • Alternative: @content
        • RDF Type: @instanceof
  • Integration: RDFa Example
    • In XHTML:
    • <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
    • <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML+RDFa 1.0//EN&quot;
    • &quot;http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd&quot;>
    • <html xmlns:cal=&quot;http://www.w3.org/2002/12/cal/ical#&quot;>
    • <head><title>Jo's Friends and Family Blog</title></head>
    • <body>
    • <p instanceof=&quot;cal:Vevent&quot;>
    • I'm holding
    • <span property=&quot;cal:summary&quot;>one last summer Barbecue</span>,
    • on
    • <span property=&quot;cal:dtstart&quot; content=&quot;20070916T1600-0500&quot;>
    • September 16th at 4pm.
    • </span>
    • </p>
    • </body>
    • </html>
    • In RDF:
    • _:blanknode0
    • rdf:type cal:Vevent;
    • cal:summary &quot;last summer Barbecue&quot;;
    • cal:dtstart &quot;20070916T1600-0500&quot; .
  • Integration: GRDDL
    • Gleaning Resource Descriptions from Dialects of Languages
    • http://www.w3.org/TR/grddl/
    • In HTML/XML instance documents:
    • <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;
    • xmlns:grddl='http://www.w3.org/2003/g/data-view#'
    • grddl:transformation=&quot;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=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;>
    • <rdf:Description rdf:about=&quot;http://www.metalex.eu/latest&quot;>
    • <data-view:namespaceTransformation
    • rdf:resource=”http://www.metalex.eu/grddl/metalex2owl.xsl&quot; />
    • </rdf:Description>
    • </rdf:RDF>
    • </xsd:appinfo>
    • </xsd:annotation>
  • Storage (on the web)
    • As documents
      • .rdf, .n3, .turtle, .html
    • In a RDF triple-store
      • Sesame ( http://www.openrdf.org )
      • Jena/Joseki ( http://jena.sourceforge.net )
    • RDF(S)/OWL reasoning
      • Jena’s OntModel
      • Sesame OWLIM Sail module
    • SPARQL Endpoints
      • Results as JSON (JavaScript Object Notation)
    • http://draco.leibnizcenter.org:8180/openrdf-sesame
  • Querying
    • Many languages
      • SPARQL, nRQL, SeRQL, etc.
    • SPARQL:
      • http://www.w3.org/TR/rdf-sparql-query/
    • Example
    • PREFIX course: <http://www.uva.nl/courses#>
    • PREFIX uva: <http://www.uva.nl/rdf#>
    • SELECT ?name
    • WHERE
    • { ?x uva:teaches course:kr2007.
    • ?x uva:name ?name }
    • ?x binds with <http://www.uva.nl/people#joost>
    • ?name binds with “Joost Breuker”^^xsd:string
  • Querying: SPARQL
    • Construct
    • PREFIX course: <http://www.uva.nl/courses#>
    • PREFIX uva: <http://www.uva.nl/rdf#>
    • CONSTRUCT { ?x uva:teaches course:kr2008 }
    • WHERE { ?x uva:teaches course:kr2007 }
    • Filtering
      • Strings (regexp), Integers (values)
    • Grouping, patterns, collections, optionals
  • Browsing and Viewing
    • How to unlock your RDF to users?
      • Custom applications (e.g. Legal Atlas)
      • Generic RDF Browsers
    • How to present your RDF to users?
      • Custom applications
      • Generic RDF Visualisation
  • Browsing: Facets
    • Multi-dimensional search
    • User filters available information
    • Context dependent
    • Facet
      • UI element
      • Values of a property
      • Number of results
    • Query building
  • Browsing
    • MIT Longwell
      • http://simile.mit.edu/longwell/demo/libraries
    • /facet
      • http://slashfacet.semanticweb.org
    • Flamenco
    • RDFBrowser
    • Exhibit
    • LENA
      • http://draco.leibnizcenter.org:8180/lena
  • /facet
  • Longwell
  • Viewing
    • Tables are boring!
    • Different data? Different presentation:
      • URI/URL
      • Images
      • Strings
      • Coordinates
    • Filtering data
    • Aggregating data
  • 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 rendered
  • 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 ] ) .
  • 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 &quot;imageWithThickBorder&quot;^^fresnel:styleClass ;
    • fresnel:group :foafGroup .
    • :urlFormat rdf:type fresnel:Format ;
    • fresnel:propertyFormatDomain foaf:homepage ;
    • fresnel:propertyFormatDomain foaf:mbox ;
    • fresnel:value fresnel:externalLink ;
    • fresnel:labelStyle &quot;basicLabel&quot;^^fresnel:styleClass ;
    • fresnel:valueStyle &quot;basicUrl&quot;^^fresnel:styleClass ;
    • fresnel:group :foafGroup .
  • Million dollar question
    • ... does the SemanticWeb really exist?
    • Semantics: yes
    • Web: mwoah
      • Friend-of-a-Friend (FOAF) http://www.ldodds.com/foaf/foaf-a-matic
      • RSS feeds (pingbacks etc.)
      • Web 2.0: Tagging
    • However
      • The nuts ‘n bolts are ready,
      • And we’ve got the data!
  • Compelling Example?
    • Yahoo Pipes
    • http://pipes.yahoo.com
    • Aggregate, select, filter feeds
    • Feeds can be any data
  • Yahoo Pipes Editing
  • Yahoo Pipes Result
  • Resources
    • http://www.w3.org RDF(S), N3, OWL, SPARQL, RDFa, GRDDL, XML, XMLSchema, XSLT, CSS, XPath, fresnel...
    • http://www.semanticweb.org /facet, other resources
    • http://www.planetrdf.com Aggregated RSS feed of the cool & famous