Developing Web 3 - Henry Story · SOAP Mashups File Servers Social Media Sharing Lightweight...
Transcript of Developing Web 3 - Henry Story · SOAP Mashups File Servers Social Media Sharing Lightweight...
2007 JavaOneSM Conference | Session BOF 6746
Developing Web 3.0
Henry Storyhttp://blogs.sun.com/bblfish
Tim Boudreauhttp://weblogs.java.net/blog/timboudreau/
Nova Spivak & Lew Tuckerhttp://radarnetworks.com/
Web Innovation Timeline
Connections between people
Con
nect
ions
bet
wee
n In
form
atio
n
Social Networking
Groupware
JavascriptWeblogs
Databases
File Systems
HTTPKeyword Search
USENET
Wikis
Websites
Directory Portals
2010 - 2020
Web 1.0
2000 - 2010
1990 - 2000
PC Era1980 - 1990
RSSWidgets
NetOS
PC’s
2020 - 2030
Office 2.0
XML
RDF
SPARQLAJAX
FTP IRC
SOAP
Mashups
File Servers
Social Media Sharing
Lightweight Collaboration
ATOM
Web 3.0
Web 4.0
Semantic SearchSemantic Databases
Distributed Search
Intelligent personal agents
:Source , 2 0 0 7 – . .Radar Networks & Nova Spivack www radarnetworks com
JavaSaaS
Web 2.0 Flash
OWL
HTML
SGML
SQLGopher
Data Web
P2P
World Wide Web
DesktopWindows
MacOS
SWRL
OpenID
BBS
MMO’s
VR
Semantic Web
Intelligent Web
The Future of Productivity
Size of Data, Size of Groups
Indi
vidu
al &
Gro
up P
rodu
ctiv
ity
Databases
2010 - 2020
Web 1.0 2000 - 2010
1990 - 2000
PC Era1980 - 1990
The NetOS
2020 - 2030
Web 3.0
Web 4.0
Web 2.0
The Data Web
The World Wide Web
The DesktopKeyword search
Natural language search
Simple Reasoning
Folksonomies of Tags
Semantic Search
The Semantic Web
The Intelligent Web
Distributed database search
Websites, Directories & Portals
The Social Web
Associative Search
Files & Folders
Folktologies: Folksonomies of data
Intelligent agents
2007 JavaOneSM Conference | Session XXXX | 4
Web 2.7 – Freebase demo
2007 JavaOneSM Conference | Session BOF-6746 | 5
The Semantic Web: It's Dog Simple
2007 JavaOneSM Conference | Session BOF-6746 | 6
Web Arch 101: The URI
2007 JavaOneSM Conference | Session BOF-6746 | 7
REST: Representation State Transfer
2007 JavaOneSM Conference | Session BOF-6746 | 8
REST: REpresentation State Transfer
● A URI refers to a ResourceA URI refers to a Resource
• A Resource can return any A Resource can return any number of Representationsnumber of Representations
● Representations can be Representations can be cached on the webcached on the web
● REST describes web REST describes web architecturearchitecture
2007 JavaOneSM Conference | Session BOF-6746 | 9
A Relational Database Table
2007 JavaOneSM Conference | Session BOF-6746 | 10
Consists Of Relations...
• Limitations> relations are local not
universal> there is no consistent
way to get the meaning of a relation
2007 JavaOneSM Conference | Session BOF-6746 | 11
Webifying the database
• Limitations> relations are
universal> click on the url to
get it's meaning
2007 JavaOneSM Conference | Session BOF-6746 | 12
RDF: Resource Description Framework
2007 JavaOneSM Conference | Session BOF-6746 | 1 3
RDF: with namespaces
2007 JavaOneSM Conference | Session BOF-6746 | 14
RDF: syntax and semantics
2007 JavaOneSM Conference | Session BOF-6746 | 15
Advantages: simplicity
● URIs: the only way to identify resources world wide
● REST: the most scalable and simplest way to set up a universal information space
● RDF:● you can't do it with less that a triple ● syntax independence● clickable data
2007 JavaOneSM Conference | Session BOF-6746 | 16
An example...
2007 JavaOneSM Conference | Session BOF-6746 | 17
in N3
card:me foaf:name “Henry Story” .card:me foaf:mbox <mailto:[email protected]> .card:me foaf:mbox <mailto:[email protected]> .card:me foaf:blog <http://blogs.sun.com/bblfish> .
2007 JavaOneSM Conference | Session BOF-6746 | 18
in N3, with a little syntactic sugar
card:me foaf:name “Henry Story” ; foaf:mbox <mailto:[email protected]> , <mailto:[email protected]> ; foaf:blog <http://blogs.sun.com/bblfish> .
2007 JavaOneSM Conference | Session BOF-6746 | 19
with an extra foaf:img relation
2007 JavaOneSM Conference | Session BOF-6746 | 20
relations to classes
2007 JavaOneSM Conference | Session BOF-6746 | 21
the Person class, in N3
foaf:Person owl:Class; :comment "A person."; :isDefinedBy foaf: ; :label "Person"; :subClassOf con:Person, foaf:Agent; owl:disjointWith foaf:Document, foaf:Organization, foaf:Project; vs:term_status "stable" .
2007 JavaOneSM Conference | Session BOF-6746 | 22
relations between classes...
2007 JavaOneSM Conference | Session BOF-6746 | 23
the foaf:img relation defined
:img a owl:ObjectProperty; rdfs:comment “””An image that can be used to represent some thing (ie. those depictions w
hich are particularly representative of something, eg. one's photo on a homepage).”””;
rdfs:isDefinedBy foaf: ; rdfs:label "image"; rdfs:domain :Person; rdfs:range :Image; rdfs:subPropertyOf :depiction; vs:term_status "testing" .
2007 JavaOneSM Conference | Session BOF-6746 | 24
relations between classes
2007 JavaOneSM Conference | Session BOF-6746 | 25
DOAP: Description of a Project
2007 JavaOneSM Conference | Session BOF-6746 | 26
A project with a home page
2007 JavaOneSM Conference | Session BOF-6746 | 27
and a repository...
2007 JavaOneSM Conference | Session BOF-6746 | 28
The Ontology Layer
2007 JavaOneSM Conference | Session XXXX | 29
DOAP integration with NetBeans
2007 JavaOneSM Conference | Session BOF-6746 | 30
Universal Drag and Drop
2007 JavaOneSM Conference | Session BOF-6746 | 31
Baetle: Bug And Enhancement Tracking LanguagE
2007 JavaOneSM Conference | Session BOF-6746 | 32
a SPARQL query
PREFIX : <http://baetle.googlecode.com/svn/ns/#>
SELECT *
WHERE {
?jar :contains ?c . FILTER REGEX(str(?c),'OffsetIterator.class$')
}
LIMIT 10
2007 JavaOneSM Conference | Session BOF-6746 | 33
Uses of Baetle
● Open source software is ● creating a global software space, with dependencies
between projects● is meshing software from many different sources
● But we are not meshing the data about the software!
● Baetle can link: ● bugs across repositories● bugs to source code● source code to binaries
2007 JavaOneSM Conference | Session BOF-6746 | 34
500 Semantic Tools: 50% in Java
http://www.mkbergman.com/?p=347 (view in Firefox)
2007 JavaOneSM Conference | Session BOF-6746 | 35
500 Semantic Tools
● Databases ● Kowari, Sesame, Jena, Oracle 10g● SQL to RDF mappers: d2rq, openlink
● Editors: Protege, SWOOP, TopBraid Composer, vi● OO – RDF mappers: JRDF, elmo, som(m)mer, ...● metadata extractors: aduna autofocus● reasoners: eulersharp, ...● semantic wikis: too many
2007 JavaOneSM Conference | Session BOF-6746 | 36
why semantic wikis
● How do you find all famous people who lived in SF in the last century?
● Tim O'Reilly understood the Semantic Web by looking at freebase.
2007 JavaOneSM Conference | Session BOF-6746 | 37
Semantic Wikis
● http://freebase.com : a silicon valley startup that has made a very user friendly semantic wiki using web 2.0 technology
● http://dbpedia.org/ : extracted all the data from wikipedia into rdf and makes it searchable. Permits structured query across articles and relationships.
● http://ikewiki.salzburgresearch.at/: an open source semantic wiki written in Java
The Semantic Desktop
Henry StoryStaff Engineer, Semantic Web R&DMax Advanced DevelopmentSun Microsystems
The Problem to Solve
How can Unix/Linux compete with Apple's Spotlight functionality?
How can all the open source desktop applications communicate in an integrated yet completely distributed way?
For Open Source software to do this, it needs to work with an architecture that is much better and more flexible than anything that has hitherto been developed, and it needs to do this in an Open Standards way. This is what various research topics on Semantic Desktops are exploring.
Footnote position, 12 pts.
The Logical Components
• A Hard Drive full of data• A crawler that knows to
extract basic metadata from each file type
• An RDF database • A SPARQL query end
point• Applications that find
their data by querying the end point
Advantages
• Decouples client from query interface
• Standards based (SPARQL is on W3C standards track)
• RDF URIs for identifiers: data can be anywhere on the web
Aperture Java Library
A library that does most of what is needed• Crawling of information sources: file systems,
websites, mail boxes• MIME type identification• Full-text and metadata extraction of various file
formats• Expansion of archives• Indexing and querying of crawled and extracted
information (to be done)Aperture: http://aperture.sourceforge.net/SemanticDesktop: http://semanticdesktop.org/
2007 JavaOneSM Conference | Session BOF-6746 | 43
Semantic Desktop
● http://www.semanticdesktop.org : a semantic desktop project with 40 developers, mostly in Java, working with kde
● an rdf metadata extractorhttp://www.aduna-software.com/solutions/autofocus/overview.view
● Beatnik address book,...
2007 JavaOneSM Conference | Session BOF-6746 | 44
Scoble gets the semantic web...
● Scoble the person who introduced blogging at Microsoft said of Radar Networks that he now understand the Semantic Web.
2007 JavaOneSM Conference | Session BOF-6746 | 45
More ...
● Semantic Conference in San Jose, May 20-24 http://semantic-conference.com/
● Web 3.0 Semantics? Silicon Valley Meets the World Experts: http://sfbay.craigslist.org/eve/323866033.html
● My weblog: http://blogs.sun.com/bblfish
● Nova Spivack's: http://novaspivack.typepad.com/
● PlanetRDF: http://planetrdf.com/
2007 JavaOneSM Conference | Session BOF 6746
Developing Web 3.0
Henry StoryStaff Engineer, Sem Web R&D
http://blogs.sun.com/bblfish/Sun Microsystems