6. Semantic Web (Web 3.0)
Web Application Development
Web / Cloud Platforms
Web Technology Trends
6
7. Find inter related data more easily
Online analysis
More automation:
allow the computers to do more
Semantic Web: Why?
7
8. Question related to Alzheimers:
What proteins are involved in signal transduction
and are related to pyramidal neurons
Search Engine: 223‘000 hits, 0 results
Linked healthcare data: 32 hits, 32 results
Why Semantic Web: Example
8
Source: Tim Berners-Lee TED Presentation http://www.w3.org/2009/Talks/0204-ted-tbl/
9. Semantic Web
9
Source: http://www.usingmyhead.com/2007/07/31/my-definition-of-the-semantic-web/
10. From a web of documents ... to a web of things
“Things” can be: people, places, videos, events ...
RDFa: meta data markup for linking “things”
uses attributes from XHTML's meta and link
elements
Representation:
Triple: Subject, Predicate, Object
Semantic Web - what it is: markup
10
11. <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML+RDFa 1.0//ENquot;
quot;http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtdquot;>
<html xmlns=quot;http://www.w3.org/1999/xhtmlquot;
xmlns:foaf=quot;http://xmlns.com/foaf/0.1/quot;
xmlns:dc=quot;http://purl.org/dc/elements/1.1/quot; xml:lang=quot;enquot;>
<head>
<title>John's Home Page</title>
<base href=quot;http://example.org/john-d/quot; />
<meta property=quot;dc:creatorquot; content=quot;Jonathan Doequot; />
</head>
<body>
<h1>John's Home Page</h1>
<p>My name is <span property=quot;foaf:nickquot;>John D</span> and I like
<a href=quot;http://www.neubauten.org/quot; rel=quot;foaf:interestquot;
xml:lang=quot;dequot;>Einstürzende Neubauten</a>.
</p>
<p>
My <span rel=quot;foaf:interestquot; resource=quot;urn:ISBN:0752820907quot;>favorite
book</span> is the inspiring <span about=quot;urn:ISBN:0752820907quot;><cite
property=quot;dc:titlequot;>Weaving the Web</cite> by
<span property=quot;dc:creatorquot;>Tim Berners-Lee</span></span>
</p>
XHTML and RDFa Example
11
Source: http://en.wikipedia.org/wiki/RDFa#XHTML.2BRDFa_1.0_example
13. Query the web of related things
like a database with:
SPARQL:
The query language of the semantic Web
Semantic Web - what it is: query language
13
14. The following simple SPARQL query returns all country capitals in Africa:
PREFIX abc: <http://example.com/exampleOntology#>
SELECT ?capital ?country
WHERE {
?x abc:cityname ?capital ;
abc:isCapitalOf ?y .
?y abc:countryname ?country ;
abc:isInContinent abc:Africa .
}
Variables are indicated by a quot;?quot; or quot;$quot; prefix. Bindings for ?capital and the ?
country will be returned. The SPARQL query processor will search for sets
of triples that match these four triple patterns, binding the variables in the
query to the corresponding parts of each triple.
In this query, the prefix quot;abcquot; stands for “http://example.com/
exampleOntology#”.
SPARQL Example
14
Source: http://en.wikipedia.org/wiki/Sparql
18. Content
(Semantic) web of linked
content
Web Content Frameworks Data
Why reinvent the wheel?
Use content technology Storage
Web Content Frameworks
18
20. Drupal: Modular, open source, > 2000 plug-in modules,
standards compliant, interfaces to many web services
Dynamic Content Types and Queries, Taxonomies,
Tagging, Collaboration, Communities, Photo, Video,
Music, Web Interfaces, Blogs, Forums, Programmable
Layouts
Very large, active community
Users: MTV, Sony-BMG, US Govt, NY Observer,
Amazee, Edipresse, DRS, Now Public, Team Sugar,
Harvard, Popular Science, NASA
Web Content Frameworks: Drupal
20
21. Alfresco: Enterprise Content Management, Open Source
Document and Content Management, Workflows,
Collaboration, Interoperability Services, Records
Management, Image Management
Strong backers: SAP Ventures & other Investors
Users: CH Bundesgericht, Kt. Waadt, American Stock
Exchange, Harvard, McGraw Hill, Swisscom Mobile
Labs, Electronic Arts, Shimano, Lausanne City
Enterprise Content Management: Alfresco
21
22. Easy to manipulate web interfaces
Easy to do Web GUIs
Parallel processing:
Functional Programming
Map - Reduce algorithm
Web Programming Languages: Requirements
22
24. Trendy:
Ruby on Rails: DRY, CoC, OO, FP
Python: OO, FP, reflective, clear syntax
Established:
Java, PHP (>= v5): OO, reflective
C++, Eiffel: OO
Trendy Web Programming Languages
24
25. Python: Google, YouTube, NASA, New York
Stock Exchange
Ruby on Rails: Hulu, Twitter, Basecamp
PHP (LAMP): Yahoo, Facebook, Wikipedia,
Lufthansa (GUI), used by 35% of web sites
Java: Amazon, Ebay, Gmail
C++: Google / .Net: MySpace
Web Programming Languages
25
27. Semantic Web (Web 3.0)
Web Application Development
Web Content Frameworks
Web Programming Languages
Web / Cloud Platforms
Web Technology Trends
27
28. Platform as a service:
You can run your Windows/.Net or LAMP (Linux,
Apache, MySQL, PHP), Ruby, Python or other
stack on the computing resources provided as a
service
Amazon AWS: EC2, EBS, S3
Web / Cloud Platforms
28
29. OS: Linux 7, Windows 2
Web server: Apache 7, IIS 2, Lighttpd 2
Scripting: PHP 4, Perl 4, ASP.NET 2, Python 1, Java 1
Database: MySQL 7, SQL Server 1 (possibly 2)
Source: Pingdom: (http://royal.pingdom.com/2007/08/22/what-nine-of-the-world%E2%80%99s-largest-websites-are-running-on/)
Large Web Sites: Platform Trends
29
30. Linux, Apache, MySQL, Programming Language
Large PHP, Python Sites: Yahoo, Google
Ruby: Hulu, Twitter, Basecamp, Scribd
Large .Net Sites: Myspace.com, Live.com
Large Java Sites: eBay, Amazon, Gmail
Large Web Sites: Platform Trends
30
31. Service as a platform:
Google App Engine: Python only
Microsoft Azure (end-2009): Windows, .NET, Live
Mesh, MSSQL, Sharepoint, PHP
Amazon Elastic MapReduce (Hadoop)
Web / Cloud Platforms
31
32. Semantic Web (Web 3.0)
Web Application Development
Web / Cloud Platforms
Follow Up: http://anolim.com/blog/web-technology-trends
Web Technology Trends
32
33. Why are so many big web sites running LAMP,
Python, Ruby on Rails and not Java?
Why is Java preferred in the Enterprise?
Public Web vs. Enterprise differences
Why is the semantic web important?
What are your thoughts?
Q&A, Discussion
33
34. Semantic Web Stack
34
http://www.w3.org/2004/Talks/0923-sb-whoiw3c/slide23-0.html
Notes de l'éditeur
Prodosh Banerjee, Managing Partner, Anolim
Anolim develops web applications and provides services and solutions for:
collaboration, marketing / communications, social media, knowledge sharing, e-commerce
I have been working in IT since 1985 as a manager, consultant, developer
Director & Head of IT, E-Services UBS Assest Management,
Consultant Swiss Exchange, IBM Software Labs
Worked with the Internet since 1996 when I started development of an Internet Banking solution
Show Yahoo semantic search: “dries drupal”
Resource Description Framework in attributes
RDFa uses attributes from XHTML's meta and link elements,
and generalises them so that they are usable on all elements.
Example:
<div xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
about=\"http://www.example.com/books/wikinomics\">
<span property=\"dc:title\">Wikinomics</span>
<span property=\"dc:creator\">Don Tapscott</span>
<span property=\"dc:date\">2006-10-01</span>
</div>
Simple Dublin Core
The Simple Dublin Core Metadata Element Set (DCMES) consists of 15 metadata elements:
1. Title
2. Creator
3. Subject
4. Description
5. Publisher
6. Contributor
7. Date
8. Type
9. Format
10. Identifier
11. Source
12. Language
13. Relation
14. Coverage
15. Rights
Simple Protocol and RDF Query Language
Important to note here is the \"property orientation\" (class matches can be conducted solely through class-attributes / properties - see Duck typing)
To make queries concise, SPARQL allows the definition of prefixes and base URIs in a fashion similar to Turtle. In this query, the prefix \"abc\" stands for “http://example.com/exampleOntology#”.
There are content tools for almost everything
We will look at Drupal, Alfresco
FP has no side effects
FP - running functions in every order produces same results
FP is useful for parallel processing
Map Reduce is used by Google
Map - Reduce: an algorithm for executing packages in parallel
Map: split into parallel processing packages and produce intermediate output
Reduce: combine intermediate output to produce final output
DRY: Don’t repeat yourself
CoC: Convention over Configuration
Reflection: ability to modify code and data
Largest in absolute numbers are Java, C++, C#
small but steady growth in C#, C++ steady, some recent growth in Java
Why are so many big web sites running LAMP, Python, Ruby on Rails and not Java?
Challenge: large number of evolving and new web interfaces. Large communities are great at implementing these interfaces quickly.Established open source projects typically have large communities.
Enterprise: smaller number of stable interfaces: stability and support important