decentralised

Transcription

decentralised
Semantic Web - Introduction
Thomas Markus
ASL ETC
●
[email protected]
●
MSc Cognitive Artificial Intelligence
●
Researcher @ Utrecht University
●
Deventer
●
26
●
Work: EU project: Language Technology for E-learning
●
●
●
●
http://www.ltfll-project.org (no I'm not involved in maintaining this site ;) )
Somewhat involved in:
●
http://freenetproject.org/
●
http://www.hackdeoverheid.nl/
Personal: Ruby (mostly for esthetic reasons)
Work: Java, AXIS2, Widgets, Jquery, Sparql, Neural Networks, Graph optimization,
reading research papers, writing papers, ...
Overview
●
Lots of ugly slides (sorry)
●
What are you doing as web developers?
●
Semantic Web? What is it all about?
●
Basic components
●
'Advanced' components
●
Profit
●
Convinced (some of) you all that it is worth your
time
What are you doing?
●
●
●
Front-end-webdevelopers
(X)HTML, CSS, ECMAScript, PHP, Django,
Rails, Symfony, etc etc etc
Data -> Presentation
Determining skillset
●
PHP, Ruby, Java, C(#|++), ECMAScript, ...
●
XML, DTD, XPATH, XSLT
●
(X)HTML, CSSx
●
SQL, ERD, etc
●
RDF(S), Sparql, OWL, ...
●
Interpreting data
●
Database schema
●
Interpretation
●
Extendability?
●
ORM-mappers
Merging
●
Merging 2 complex client databases?
●
Which database-schema is 'correct'/'leading'?
●
What to do when adding new types of data?
●
The impossible quest for the database schema to
rule them all (my precious...)
Back to presentation
●
DB -> presentation
●
- lose meaning
●
+ readability
Meaning?
●
Formal languages
●
●
●
●
/.*[ab]+[cd]?/
(regular expression
(you should know this))
Knowing under which circumstances a statement is
true (dangerous statement in philosophy)
Syntax (how) & Semantics (what)
Natural language?
●
“Did you see the girl with the telescope?”
Why does the internet work?
●
●
Interoperable standards
●
Communication (TCP/IP, HTTP)
●
Presentation ((X)HTML, CSS, etc)
●
Data formats (JSON, XML, HTML, RSS/ATOM)
Decentralised
●
Next step: Interoperable meaningful content
(which can be processed automatically)
(not an exhaustive list)
Semantic Web: the overall picture
Semantic Web: the overall picture
Current situation (Web 1.0)
●
●
●
●
●
●
●
●
●
●
●
●
●
●
http://www.slideshare.net/HatemMahmoud/web-30-the-semantic-web
Tag1
Tag2
Tag3
Web 2.0-ish
Semantic Web
●
●
●
●
●
●
●
●
●
●
●
●
●
http://www.slideshare.net/HatemMahmoud/web-30-the-semantic-web
The difference
●
●
●
●
●
●
●
●
●
●
●
●
●
●
http://www.slideshare.net/HatemMahmoud/web-30-the-semantic-web
RDF
●
Resource Description Framework
●
W3C Recommendation 22 February 1999
●
“RDF is designed to represent information in a
minimally constraining, flexible way. It can be used in
isolated applications, where individually designed
formats might be more direct and easily understood,
but RDF's generality offers greater value from sharing.
The value of information thus increases as it becomes
accessible to more applications across the entire
Internet.”
RDF Design goals
●
a simple data model
●
formal semantics and provable inference
●
using an extensible URI-based vocabulary
●
using an XML-based syntax
●
supporting use of XML schema datatypes
●
allowing anyone to make statements about any
resource (decentralised)
From: http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Overview
Abstract model
●
Mantra:
1)Subject, Resource, ..
2)Relation, Property, Predicate, ...
3)Object, Value, Literal, ...
•
<URI, URI, Literal or URI>
Example
●
“The individual referred to by employee id 85740 is named Ora Lassila and
has the email address [email protected]. The resource
http://www.w3.org/Home/Lassila was created by this individual.”
Revisiting the URI/URL
●
Currently (Web1/2):
●
Every document/resource on the internet has a URL
(duh)
●
Semantic Web
●
●
Everything has a URI/URL
What is the URL/URI of the city of Utrecht?
Fronteers? Your grandmother? Knights from the
Middle Ages?
Linked Data
1. Use URIs as names for things
2. Use HTTP URIs
3. When someone looks up a URI, provide useful
RDF data about that specific URI
4. Include links to other URIs
RDF syntax
RDFa
Mixing content poll
●
●
Who strongly believes that Javascript should sit
in files always separate from the HTML?
Think about the relation between your metadata and the different types of content.
RDF Databases
●
A collection of triples (Subject-Predicate-Object)
●
Sets of triples seperated using graph URIs
●
Freely extensible / scalable
●
Query language (Sparql)
●
Not mandatory!
●
●
Just put RDF files out there, no DB-backend
required!
Alternatively: generate RDF from your DB on-the-fly
Sparql example
What are all the country capitals in Africa?
Sparql endpoint exposed through HTTP and
results are in XML / JSON (defined as W3C
standard)
Sparql.js
RDF standards/ontologies
●
“Recommended vocabularies”
●
Pick and choose
●
Mix parts of vocabularies that fit your needs
●
Loads of vocabularies available:
–
–
–
–
–
–
–
–
Wine
SCOT (tags)
SIOC (social networks)
FOAF (Friend-Of-A-Friend)
DBpedia.org (all of wikipedia in RDF)
CV
Dublin Core
Virtually everything actually ... (proof on next slide)
Better?
●
How is this better than a key-value store with
some special functions?
●
Couchdb, hbase, Voldemort, ...
●
Use of URI/URLs
–
Web-enabled
●
Finding relations easily without nasty joins
●
Resharing meaningful content (not just blobs)
WTF?
●
Questions so far?
Bored? Go read: http://thedailywtf.com/
Bird's-eye view
Freedom
●
RDF is quite flexible
●
Perhaps a bit too much flexibility...???
●
●
What if you want to specify regularities in your
data?
Spot errors?
RDFS
●
Extension of RDF
●
Basic ontology-toolset
●
RDFS itself is expressed using RDF
●
Support constraining relations/predicates
–
–
–
–
rdfs:domain
rdfs:range
rdfs:subClassOf
rdfs:subPropertyOf
Taxonomy
Game
Computer game
RTS
SC2
FPS
C&C
Q1234
Board game
Chess
Kolonisten van Catan
Not-so-subliminal example
Ontology is a graph not a tree
Reasoning
●
Implicit information
A
Subject
http://pvv.nl
http://www.tweedekamer.nl
http://pvv.nl
http://www.tweedekamer.nl
http://www.geertwilders.nl
http://pvv.nl
Predicate
FOAF:member
FOAF:member
rdf:type
rdf:type
rdf:type
FOAF:name
Object
http://www.geertwilders.nl
http://pvv.nl
FOAF:Group
FOAF:Group
FOAF:Person
“Partij voor de vrijheid”@nl
B
Sparql query:
SELECT DISTINCT ?name ?group
WHERE
{
?group FOAF:member ?person .
?person FOAF:firstname ?name .
}
LIMIT 10
C
A (trivial) example
●
Slides from:
●
http://www.slideshare.net/LeeFeigenbaum/semantic-web-landscape-2009
SELECT ?title WHERE
{
?isbn f:titre “La palais des mirroirs” .
?original f:original ?isbn .
?original a:title ?title .
}
DBpedia
DBpedia
http://linkeddata.org/
Tool support is there
●
Java
●
Ruby
●
Python
●
PHP
●
Haskell
●
ECMAScript
●
C(++)
●
C#
etc....
But why?
●
●
Improvements in interoperability lead to new
exciting often unpredictable developments
●
Search engines
●
Information integration
●
Unambiguous communication
●
New possibilities for user interface design
Chicken or the egg causality dilemma
FIN
●
Questions?
●
Comments?
●
New insights?
[email protected]
Discussion points
●
RDF has been around since 1999..., but
'nobody' uses it? Why?

Similar documents