• Save
SemanticWeb Nuts 'n Bolts
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,512
On Slideshare
3,508
From Embeds
4
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
5

Embeds 4

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

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • XPath doesn’t work

Transcript

  • 1. SemanticWeb: Nuts ‘n Bolts Leibniz Center Meeting, November 2007 Rinke Hoekstra
  • 2. Overview
    • The Semantic Web
    • Identification
    • Languages and Integration
    • Storage and Querying
    • Browsing and Viewing
    • ... does it really exist?
  • 3. 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
  • 4. The Semantic Web Ideology
    • Partial solutions are great too!
    • Layer cake
    OWL
  • 5. 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’
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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>
  • 11. 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>
  • 12. 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.
  • 13. 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.
  • 14. Languages: Important Message
    • RDF statements are:
      • Triples <subject, predicate,object>
      • Distributed
      • Always about something else
      • ... but can be about other RDF triples as well.
  • 15. 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
  • 16. Integration: 303 See Other
  • 17. 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
  • 18. 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; .
  • 19. 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>
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. Browsing: Facets
    • Multi-dimensional search
    • User filters available information
    • Context dependent
    • Facet
      • UI element
      • Values of a property
      • Number of results
    • Query building
  • 25. 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
  • 26. /facet
  • 27. Longwell
  • 28. Viewing
    • Tables are boring!
    • Different data? Different presentation:
      • URI/URL
      • Images
      • Strings
      • Coordinates
    • Filtering data
    • Aggregating data
  • 29. 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
  • 30. 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 ] ) .
  • 31. 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 .
  • 32. 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!
  • 33. Compelling Example?
    • Yahoo Pipes
    • http://pipes.yahoo.com
    • Aggregate, select, filter feeds
    • Feeds can be any data
  • 34. Yahoo Pipes Editing
  • 35. Yahoo Pipes Result
  • 36. 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