SlideShare une entreprise Scribd logo
1  sur  112
Télécharger pour lire hors ligne
Building and Consuming
the Web of Data
ITWS 4310 (Fall 2013)

John S. Erickson, Ph.D ❇ Tetherless World Constellation ❇ RPI
A Lecture in Two Parts...
● Understanding...
● Consuming...
● Building...
● Doing Science with...
...the Web of Data
Objectives
●
●
●
●

Deeper understanding of Web architecture
Understand the Semantic Web stack
Apply Linked Data principles & practices
Build cool applications

● Contribute to the Web of Data
● Make better IT management decisions
Part I: Consuming the Web of Data
1. From the Web of Documents to the Web of Data
2. Linked Data: Building Blocks of the Web (of data)
3. Mashups: Consuming Linked Data
Web Architecture
It's quite simple, really! ;)
●
●
●

A standard system for identifying resources
Standard formats for representing resources
A standard protocol for exchanging resources

Relevant core standards:
●
●
●

URIs (URLs): Uniform Resource Identifiers
HTML: Hypertext Markup Language
HTTP: Hypertext Transfer Protocol
Architecture of the World Wide Web, Volume One http://www.w3.org/TR/webarch/
Data Mining: Mapping the Blogosphere http://bit.ly/18MuXdD
Identifying Web Resources (1)
●

●
●

A global identification system is essential
○ to share information about resources
○ to reason about resources
○ to modify or exchange resources
Resources are anything that can be linked to or spoken of
○ Documents, cat videos, people, ideas...
Not all resources are "on" the Web
○ They might be referenced from the Web...
○ ...while not being retrievable from it
○ These are (so called) "information resources"

Les Carr, et.al. http://slidesha.re/142MFrV
Identifying Web Resources (2)
●
●

●

A global standard is required; the URI is it
Others systems are possible...
○ ...but added value of a single global system of identifiers is high
○ Enables linking, bookmarking and other functions across
heterogeneous applications
How are URI used?
○ All resources have URIs associated with them
○ Each URI identifies a single resource in a context- independent
manner
○ URIs act as names and (usually) addresses
○ In general URIs are "opaque"

Uniform Resource Identifier (URI): Generic Syntax (RFC 3986) http://www.ietf.org/rfc/rfc3986.txt
Identifying Web Resources (3)
●
●

●

"URIs identify and URLs locate..."
○ ...and identify
URLs are URIs aligned with protocols
○ URLs include the "access mechanism" or "network location", e.g. http:
// or ftp://
○ How to "dereference" the URI and retrieve the thing
URL examples
○ ftp://ftp.is.co.za/rfc/rfc1808.txt
○ http://www.ietf.org/rfc/rfc2396.txt
○ mailto:John.Doe@example.com
○ telnet://192.0.2.16:80/

Uniform Resource Identifier (URI): Generic Syntax (RFC 3986) http://www.ietf.org/rfc/rfc3986.txt
Representing Resources (1)
●
●

●

●

Resources are manifest as digital files
○ More precisely: serializations that look like files...
The Web recognizes a (growing) set of {file | serialization} formats
○ The original and workhorse is HTML...
○ ...but there are many others
Retrievable resources on the web serve multiple purposes
○ Resources encode information and data
○ Resources aggregate links to other resources
This is what makes The Web(tm) a "web..."
Resources (nodes)
aggregate links to
other resources to
create a Web
Retrieving Resources (1)
● Review: URLs refer to retrievable resources
○ ie URIs that specify some protocol for retrieval
● The original and most common Web protocol is HTTP
● Specialized protocols are possible but resources may
appear "off the grid..."
● More common case is HTTP w different formats...
URIs, HTTP, many formats...

http://www.w3.org/2006/Talks/0521-sb-AC-management/ReCTechStack-bg.png
Principles for creating a healthy Web
●

Use URIs as names for things

●

Use HTTP URIs so people can look up those names

●

When someone looks up a URI, return useful information
○

●

use standard representation formats to express it

Include links to other URIs, so consumers can discover more things
○

By "consumers" we mean people or applications

Why is linking important???

Tim Berners-Lee http://www.w3.org/DesignIssues/LinkedData.html
Implications of a well-connected Web
Links to other nodes
are a "vote" of quality
and/or relevance

Google PageRank
PageRank https://en.wikipedia.org/wiki/PageRank
What's this "Semantic Web?"
...and where can I get one???
Semantic Web?

“Web of meaning”

Web of Data
Linking ideas...
Linked Data

meaning
:
ideas
:
data
Semantic Web Building Blocks
RDF: Resource Description Framework
predicate
subject

object
RDF: Resource Description Framework
predicate
subject

object

“has creator”
“article”

“James
Hendler”
doi:10.1109/MC.2009.30

http://purl.org/dc/elements/1.1/creator

http://dbpedia.
org/resource/James_Hendler
http://purl.org/dc/elements/1.1/creator
http://dx.doi.org//10.1109/MC.2009.30
http://dbpedia.org/resource/James_Hendler
doi:10.1109/MC.2009.30

http://purl.org/dc/elements/1.1/creator

http://dbpedia.
org/resource/James_Hendler
http://purl.org/dc/elements/1.1/creator
http://dx.doi.org//10.1109/MC.2009.30
http://dbpedia.org/resource/James_Hendler
We're missing something...
● Check: URIs for names: S, P, O can be URIs
● Check: HTTP URIs: all of our examples are resolvable
● Now: "Return something useful" when we resolve URIs
○ How do we serialize RDF?
○ How do we retrieve RDF?

Let's go to the graph...
Source: Programming the Web
http://bit.ly/1aZwr40
"Raw" Triples

Via the W3C RDF VCalidator Service:
http://www.w3.org/RDF/Validator/
N-Triples...
<http://kiwitobes.com/toby.rdf#ts>
<http://kiwitobes.com/toby.rdf#ts>
<http://kiwitobes.com/toby.rdf#ts>
<http://kiwitobes.com/toby.rdf#ts>
<http://kiwitobes.com/toby.rdf#ts>
<http://kiwitobes.com/toby.rdf#ts>
1/Person>.

<http://xmlns.com/foaf/0.1/homepage> <http://kiwitobes.com/>.
<http://xmlns.com/foaf/0.1/nick> "kiwitobes".
<http://xmlns.com/foaf/0.1/name> "Toby Segaran".
<http://xmlns.com/foaf/0.1/mbox> <mailto:toby@segaran.com>.
<http://xmlns.com/foaf/0.1/interest> <http://semprog.com>.
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.

<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/knows> _:jamie .
<http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/knows> <http://semprog.com/people/colin>.
_:jamie <http://xmlns.com/foaf/0.1/name> "Jamie Taylor".
_:jamie <http://xmlns.com/foaf/0.1/mbox> <mailto:jamie@semprog.com>.
_:jamie <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>.
<http://semprog.com/people/colin> <http://xmlns.com/foaf/0.1/name> "Colin Evans".
<http://semprog.com/people/colin> <http://xmlns.com/foaf/0.1/mbox> <mailto:colin@semprog.com>.
<http://semprog.com/people/colin> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.
1/Person>.
<http://semprog.com> <http://www.w3.org/2000/01/rdf-schema#label> "Semantic Programming".
<http://semprog.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document>.
N3...
@prefix
@prefix
@prefix
@prefix
@prefix

foaf: <http://xmlns.com/foaf/0.1/>.
rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
semperp: <http://semprog.com/people/>.
tobes: <http://kiwitobes.com/toby.rdf#>.

tobes:ts a foaf:Person;
foaf:homepage <http://kiwitobes.com/>;
foaf:interest <http://semprog.com>;
foaf:knows semperp:colin,
[ a foaf:Person;
foaf:mbox <mailto:jamie@semprog.com>;
foaf:name "Jamie Taylor"];
foaf:mbox <mailto:toby@segaran.com>;
foaf:name "Toby Segaran";
foaf:nick "kiwitobes".
<http://semprog.com> a foaf:Document;
rdfs:label "Semantic Programming".
semperp:colin a foaf:Person;
foaf:mbox <mailto:colin@semprog.com>;
foaf:name "Colin Evans".
RDFa...
:
<div xmlns:foaf="http://xmlns.com/foaf/0.1/" about="http://kiwitobes.com/toby.rdf#ts" typeof="foaf:Person">
Name: <span property="foaf:name">Toby Segaran</span><br/>
Nickname: <span property="foaf:nick">kiwitobes</span><br/>
Interests: <a rel="foaf:interest" href="http://semprog.org">
<span property="rdfs:label">Semantic Programming</span></a>
Homepage: <a rel="foaf:homepage" href="http://kiwkitobes.com/">KiwiTobes</a><p/>

Friends:<br/>
<ul rel="foaf:knows">
<li about="http://semprog.com/people/colin"
typeof="foaf:Person" property="foaf:name">Colin Evans</li>
<li typeof="foaf:Person">
<span property="foaf:name">Jamie Taylor</span><br/>
Email: <a rel="foaf:mbox" href="mailto:jamie@semprog.com">
jamie@semprog.com</a><br/>
</li>
</ul>
</div>
:
RDF/XML...

<rdf:RDF
xmlns:foaf='http://xmlns.com/foaf/0.1/'
xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'>
<foaf:Person rdf:about="http://kiwitobes.com/toby.rdf#ts">
<foaf:name>Toby Segaran</foaf:name>
<foaf:homepage rdf:resource="http://kiwitobes.com/"/>
<foaf:nick>kiwitobes</foaf:nick>
<foaf:mbox rdf:resource="mailto:toby@segaran.com"/>
<foaf:interest>
<foaf:Document rdf:about="http://semprog.com">
<rdfs:label>Semantic Programming</rdfs:label>
</foaf:Document>
</foaf:interest>
<foaf:knows>
<foaf:Person rdf:about="http://semprog.com/people/colin">
<foaf:name>Colin Evans</foaf:name>
<foaf:mbox rdf:resource="mailto:colin@semprog.com"/>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Jamie Taylor</foaf:name>
<foaf:mbox rdf:resource="mailto:jamie@semprog.com"/>
</foaf:Person>
</foaf:knows>
</foaf:Person>
</rdf:RDF>
{

JSON-LD...

"@graph": [
{
"@id": "http://kiwitobes.com/toby.rdf#ts"
,
"@type": "http://xmlns.com/foaf/0.1/Person"
,
"http://xmlns.com/foaf/0.1/homepage": {
"@id": "http://kiwitobes.com/"
},
"http://xmlns.com/foaf/0.1/interest": {
"@id": "http://semprog.com"
},
"http://xmlns.com/foaf/0.1/knows": [
{
"@type": "http://xmlns.com/foaf/0.1/Person"
,
"http://xmlns.com/foaf/0.1/mbox": {
"@id": "mailto:jamie@semprog.com"
},
"http://xmlns.com/foaf/0.1/name": "Jamie Taylor"
},
{
"@id": "http://semprog.com/people/colin"
}
],
"http://xmlns.com/foaf/0.1/mbox": {
"@id": "mailto:toby@segaran.com"
},
"http://xmlns.com/foaf/0.1/name": "Toby Segaran"
,
"http://xmlns.com/foaf/0.1/nick": "kiwitobes"
},
{
"@id": "http://semprog.com/people/colin"
,
"@type": "http://xmlns.com/foaf/0.1/Person"
,
"http://xmlns.com/foaf/0.1/mbox": {
"@id": "mailto:colin@semprog.com"
},
"http://xmlns.com/foaf/0.1/name": "Colin Evans"
},
{
"@id": "http://semprog.com"
,
"@type": "http://xmlns.com/foaf/0.1/Document"
,
"http://www.w3.org/2000/01/rdf-schema#label": "Semantic
Programming"
}
]
}
RDF/JSON...
{
"http://kiwitobes.com/toby.rdf#ts": {
"http://xmlns.com/foaf/0.1/nick": [
{
"type": "literal",
"value": "kiwitobes"
}
],
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type": [
{
"type": "uri",
"value": "http://xmlns.com/foaf/0.1/Person"
}
],
"http://xmlns.com/foaf/0.1/interest": [
{
"type": "uri",
"value": "http://semprog.com"
}
],
"http://xmlns.com/foaf/0.1/knows": [
{
"type": "uri",
"value": "http://semprog.com/people/colin"
},
{
"type": "bnode",
"value": "_:N40b366148cfc4c48a80f4e15acbd2858"
}
],
"http://xmlns.com/foaf/0.1/mbox": [
{
"type": "uri",
"value": "mailto:toby@segaran.com"
}
],

"http://xmlns.com/foaf/0.1/homepage": [
{
"type": "uri",
"value": "http://kiwitobes.com/"
}
],
"http://xmlns.com/foaf/0.1/name": [
{
"type": "literal",
"value": "Toby Segaran"
}
]
},
"http://semprog.com/people/colin": {
"http://xmlns.com/foaf/0.1/mbox": [
{
"type": "uri",
"value": "mailto:colin@semprog.com"
}
],
"http://xmlns.com/foaf/0.1/name": [
{
"type": "literal",
"value": "Colin Evans"
}
],
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type": [
{
"type": "uri",
"value": "http://xmlns.com/foaf/0.1/Person"
}
]
},
"_:N40b366148cfc4c48a80f4e15acbd2858": {
"http://xmlns.com/foaf/0.1/mbox": [
{
"type": "uri",
"value": "mailto:jamie@semprog.com"
}
],

"http://xmlns.com/foaf/0.1/name": [
{
"type": "literal",
"value": "Jamie Taylor"
}
],
"http://www.w3.org/1999/02/22-rdf-syntaxns#type": [
{
"type": "uri",
"value": "http://xmlns.com/foaf/0.1/Person"
}
]
},
"http://semprog.com": {
"http://www.w3.org/1999/02/22-rdf-syntaxns#type": [
{
"type": "uri",
"value": "http://xmlns.com/foaf/0.
1/Document"
}
],
"http://www.w3.org/2000/01/rdf-schema#label": [
{
"type": "literal",
"value": "Semantic Programming"
}
]
}
}
RDF Serialization: Summary
●
●
●
●
●
●

N-Triples: Verbose, "pedagogical"
N3: Concise, in common use;
RDFa: Commonly used for embedded RDF
RDF/XML: Some use in government & "enterprise"
JSON-LD: Fast-rising LD standard
RDF/JSON: Older convention for LD applications
Things we still haven't discussed...
●
●
●
●

How to retrieve this "linked data" of which I speak
How (and where?) to query RDF "graphs"
How to use LD in applications
How to create visualizations & "mashups"

Also:
● How to create and publish linked data...
Consuming Linked Data
●
●
●
●

Querying RDF: SPARQL
Endpoints and triple stores
"Mashing" data in the query
Mashing data in the application
Anatomy of a Mashup

Demo: http://logd.tw.rpi.edu/demo/building-logd-visualizations/agi-per-capita-v2.html (use Firefox)
Deep Dive: LOGD Mashup Tutorial
1.

Choose data (two datasets from Data.gov)
○
○

2.

Define queries to retrieve desired results from endpoint
○
○

3.
4.
5.

http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.sparql
Submit this URI to http://logd.tw.rpi.edu/sparql

Define basic HTML layout
Insert visualization code (e.g. Google visualization)
Pass static data
○

6.

"State Library Agency Survey: Fiscal Year 2006"
"Tax Year 2007 County Income Data"

http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.js

Revise to pass dynamic data from live SPARQL queries

http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
Choose Datasets from Data.gov
Converted RDF on TWC LOGD Portal
SPARQL: pattern matching over RDF
graphs
http://bit.ly/RumkhW

?s

dbpedia2:blackboard

?blackboard
http://bit.ly/RumkhW

?s

dbpedia2:blackboard

?blackboard
http://bit.ly/RumkhW

?s

dbpedia2:blackboard

?blackboard
http://dbpedia.org/resource/Double,_Double,_Boy_in_Trouble
LOGD Tutorial SPARQL Query
# this query returns the agi and population data from two data.gov datasets
SELECT distinct ?state_abbv ?agi ?population
WHERE {
GRAPH <http://logd.tw.rpi.edu/source/data-gov/dataset/353/version/1st-anniversary>{
?s1
?s1
}
GRAPH
?s2
?s2
?s2
?s2
}

<http://logd.tw.rpi.edu/source/data-gov/dataset/353/vocab/raw/popu_st>
?population.
<http://logd.tw.rpi.edu/source/data-gov/dataset/353/vocab/raw/pub_fips> ?state_fipscode .
<http://logd.tw.rpi.edu/source/data-gov/dataset/1356/version/2009-Dec-03> {
<http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/state_abbrv>
?state_abbv .
<http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/county_code> "000" .
<http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/agi>
?agi.
<http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/state_code> ?state_fipscode .

}
order by ?state_fipscode
SPARQL Query (results)
SPARQL Query results (JSON)
google.visualization.Query.setResponse({version:0.6,status:'ok',reqId:0,table:{cols:[{id:'state_abbv',
label:'state_abbv',type:'string'},{id:'agi',label:'agi',type:'number'},{id:'population',label:'population',
type:'number'}],rows:[{c:
[{v:'AL'},{v:92162773},{v:4599030}]},{c:[{v:'AK'},{v:17312636},{v:670053}]},{c:
[{v:'AZ'},{v:134442007},{v:6166318}]},{c:[{v:'AR'},{v:49783294},{v:2810872}]},{c:[{v:'CA'},{v:913619942},{v:
36457549}]},{c:[{v:'CO'},{v:128175529},{v:4753377}]},{c:[{v:'CT'},{v:122697142},{v:3504809}]},{c:[{v:'DE'},
{v:22983204},{v:853476}]},{c:[{v:'DC'},{v:18177370},{v:581530}]},{c:[{v:'FL'},{v:429785960},{v:18089888}]},
{c:[{v:'GA'},{v:199864840},{v:9363941}]},{c:[{v:'HI'},{v:30592983},{v:1285498}]},{c:[{v:'ID'},{v:30292717},
{v:1466465}]},{c:[{v:'IL'},{v:339217881},{v:12831970}]},{c:[{v:'IN'},{v:140616570},{v:6313520}]},{c:
[{v:'IA'},{v:68946837},{v:2982085}]},{c:[{v:'KS'},{v:65216515},{v:2764075}]},{c:[{v:'KY'},{v:81721206},{v:
4206074}]},{c:[{v:'LA'},{v:84029967},{v:4287768}]},{c:[{v:'ME'},{v:28954363},{v:1321574}]},{c:[{v:'MD'},{v:
168647138},{v:5615727}]},{c:[{v:'MA'},{v:202226349},{v:6437193}]},{c:[{v:'MI'},{v:227233854},{v:10095643}]},
{c:[{v:'MN'},{v:143482070},{v:5167101}]},{c:[{v:'MS'},{v:47387966},{v:2910540}]},{c:[{v:'MO'},{v:131166510},
{v:5842713}]},{c:[{v:'MT'},{v:20045504},{v:944632}]},{c:[{v:'NE'},{v:41569440},{v:1768331}]},{c:[{v:'NV'},
{v:65272642},{v:2495529}]},{c:[{v:'NH'},{v:38175000},{v:1314895}]},{c:[{v:'NJ'},{v:283024874},{v:8724560}]},
{c:[{v:'NM'},{v:38144029},{v:1954599}]},{c:[{v:'NY'},{v:513598458},{v:19306183}]},{c:[{v:'NC'},{v:
195374554},{v:8856505}]},{c:[{v:'ND'},{v:14923738},{v:635867}]},{c:[{v:'OH'},{v:259099675},{v:11478006}]},
{c:[{v:'OK'},{v:70394493},{v:3579212}]},{c:[{v:'OR'},{v:85591882},{v:3700758}]},{c:[{v:'PA'},{v:313289892},
{v:12440621}]},{c:[{v:'RI'},{v:26532233},{v:1067610}]},{c:[{v:'SC'},{v:88615194},{v:4321249}]},{c:[{v:'SD'},
{v:17825580},{v:781919}]},{c:[{v:'TN'},{v:126270760},{v:6038803}]},{c:[{v:'TX'},{v:504386602},{v:
23507783}]},{c:[{v:'UT'},{v:55426179},{v:2550063}]},{c:[{v:'VT'},{v:15246152},{v:623908}]},{c:[{v:'VA'},{v:
217677476},{v:7642884}]},{c:[{v:'WA'},{v:175730868},{v:6395798}]},{c:[{v:'WV'},{v:32243697},{v:1818470}]},
{c:[{v:'WI'},{v:140516394},{v:5556506}]},{c:[{v:'WY'},{v:15216840},{v:515004}]}]}})

http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.js
SPARQL Query results (JSON)
google.visualization.Query.setResponse({version:0.6,status:'ok',reqId:0,table:{
cols:[{id:'state_abbv',
label:'state_abbv',type:'string'},{id:'agi',label:'agi',type:'number'},{id:'population',
label:'population',type:'number'}],rows:[{c:[{v:'AL'},{v:92162773},{v:4599030}]},{c:[{v:'AK'},{v:
17312636},{v:670053}]},{c:[{v:'AZ'},{v:134442007},{v:6166318}]},{c:[{v:'AR'},{v:49783294},{v:2810872}]},{c:
[{v:'CA'},{v:913619942},{v:36457549}]},{c:[{v:'CO'},{v:128175529},{v:4753377}]},{c:[{v:'CT'},{v:122697142},
{v:3504809}]},{c:[{v:'DE'},{v:22983204},{v:853476}]},{c:[{v:'DC'},{v:18177370},{v:581530}]},{c:[{v:'FL'},{v:
429785960},{v:18089888}]},{c:[{v:'GA'},{v:199864840},{v:9363941}]},{c:[{v:'HI'},{v:30592983},{v:1285498}]},
{c:[{v:'ID'},{v:30292717},{v:1466465}]},{c:[{v:'IL'},{v:339217881},{v:12831970}]},{c:[{v:'IN'},{v:
140616570},{v:6313520}]},{c:[{v:'IA'},{v:68946837},{v:2982085}]},{c:[{v:'KS'},{v:65216515},{v:2764075}]},{c:
[{v:'KY'},{v:81721206},{v:4206074}]},{c:[{v:'LA'},{v:84029967},{v:4287768}]},{c:[{v:'ME'},{v:28954363},{v:
1321574}]},{c:[{v:'MD'},{v:168647138},{v:5615727}]},{c:[{v:'MA'},{v:202226349},{v:6437193}]},{c:[{v:'MI'},
{v:227233854},{v:10095643}]},{c:[{v:'MN'},{v:143482070},{v:5167101}]},{c:[{v:'MS'},{v:47387966},{v:
2910540}]},{c:[{v:'MO'},{v:131166510},{v:5842713}]},{c:[{v:'MT'},{v:20045504},{v:944632}]},{c:[{v:'NE'},{v:
41569440},{v:1768331}]},{c:[{v:'NV'},{v:65272642},{v:2495529}]},{c:[{v:'NH'},{v:38175000},{v:1314895}]},{c:
[{v:'NJ'},{v:283024874},{v:8724560}]},{c:[{v:'NM'},{v:38144029},{v:1954599}]},{c:[{v:'NY'},{v:513598458},{v:
19306183}]},{c:[{v:'NC'},{v:195374554},{v:8856505}]},{c:[{v:'ND'},{v:14923738},{v:635867}]},{c:[{v:'OH'},{v:
259099675},{v:11478006}]},{c:[{v:'OK'},{v:70394493},{v:3579212}]},{c:[{v:'OR'},{v:85591882},{v:3700758}]},
{c:[{v:'PA'},{v:313289892},{v:12440621}]},{c:[{v:'RI'},{v:26532233},{v:1067610}]},{c:[{v:'SC'},{v:88615194},
{v:4321249}]},{c:[{v:'SD'},{v:17825580},{v:781919}]},{c:[{v:'TN'},{v:126270760},{v:6038803}]},{c:[{v:'TX'},
{v:504386602},{v:23507783}]},{c:[{v:'UT'},{v:55426179},{v:2550063}]},{c:[{v:'VT'},{v:15246152},{v:623908}]},
{c:[{v:'VA'},{v:217677476},{v:7642884}]},{c:[{v:'WA'},{v:175730868},{v:6395798}]},{c:[{v:'WV'},{v:32243697},
{v:1818470}]},{c:[{v:'WI'},{v:140516394},{v:5556506}]},{c:[{v:'WY'},{v:15216840},{v:515004}]}]}})

http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.js
Defining HTML Layout
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AGI per Capita Map</title>
</head>
<body>
<div>AGI per Capita Map: average adjusted gross income per person in
dollar amount in US states.</div>
<div id='map_canvas'>Loading Map ...</div>
</body>
</html>
http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
Visualization Code...
1.

Load the appropriate Google Visualization API packages (in this case, the GeoMap package).

2.

Define a callback function for loading visualization code, which is called upon the loading of the HTML page.

3.

Obtain data from a given source to pass to our GeoMap instance. The Google Visualization API is designed to accept data
in the form of specially-formatted JSON (represented by a URI) which can then be fed to a JSON processing function.

4.

Following a call to the JSON processor, verify that it successfully processed the passed file.

5.

Get back a response from the query processor, containing the data from the JSON file.

6.

Define a data table to store the response data in. This process starts by defining header entries of the form TABLE.
addColumn(DATATYPE, NAME).

7.

For each entry in the response, create a new data table row for the corresponding data.

8.

Define a configuration for the GeoMap instance to be visualized, containing information such as resolution.

9.

Define the GeoMap instance in the HTML div with id='map_canvas', using the configuration from Step 8 and data table
from Step 7.

http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
Visualization Code...
1.

Load the appropriate Google Visualization API packages (in this case, the GeoMap package).

2.

Define a callback function for loading visualization code, which is called upon the loading of the HTML page.

3.

Obtain data from a given source to pass to our GeoMap instance. The Google Visualization API is designed to accept data
in the form of specially-formatted JSON (represented by a URI) which can then be fed to a JSON processing function.

4.

Following a call to the JSON processor, verify that it successfully processed the passed file.

5.

Get back a response from the query processor, containing the data from the JSON file.

6.

Define a data table to store the response data in. This process starts by defining header entries of the form TABLE.
addColumn(DATATYPE, NAME).

7.

For each entry in the response, create a new data table row for the corresponding data.

8.

Define a configuration for the GeoMap instance to be visualized, containing information such as resolution.

9.

Define the GeoMap instance in the HTML div with id='map_canvas', using the configuration from Step 8 and data table
from Step 7.

http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
Dynamic Visualizations
Loading data using SPARQL queries
//load data using SPARQL query
var sparqlproxy = "http://logd.tw.rpi.edu/ws/sparqlproxy.php";
var queryloc = "http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353population-1356-agi.sparql";
var service = "http://logd.tw.rpi.edu/sparql";
var queryurl = sparqlproxy
+ "?" + "output=gvds"
+ "&service-uri=" + encodeURIComponent(service)
+ "&query-uri=" + encodeURIComponent(queryloc) ;
Next: Building the Web of Data
●
●
●
●
●

Converting datasets to RDF
Hosting: Triplestores & endpoints
Enterprise use cases
Advanced techiques
Web Science...
Part II: Building the Web of Data
Thursday, 14 Nov 2013
But first...
$6000
RPI Contact:
Dominic DiFranzo
difrad@rpi.edu
Register:
http://bit.ly/1apZJv5

●
●

●

Stem the “twin epidemic” of obesity and diabetes
Use participants’ own design expertise, creativity, and
most importantly experiences to engage health experts
and open data leaders with mobile/web-based tools
Help New Yorkers get control of their health by
providing better access to resources in their community
Part II: Building the Web of Data
1. Review: the Web of Data
2. Publishing the Web of Data
3. Engineering the Web of Data in the Enterprise
4. Enterprise Applications of Semantic Technologies
5. Advanced "Semantic Web" concepts
6. Web Science: Observing and (re)Engineering the Web
Review: Web Architecture
First Principles of the Web...
●
●
●

A standard system for identifying resources
Standard formats for representing resources
A standard protocol for exchanging resources

Relevant core standards:
●
●
●

URIs (URLs): Uniform Resource Identifiers
HTML: Hypertext Markup Language
HTTP: Hypertext Transfer Protocol
Review: Linked Data Principles
●

Use URIs as names for things

●

Use HTTP URIs so people can look up those names

●

When someone looks up a URI, return useful information
○

●

use standard representation formats to express it

Include links to other URIs, so consumers can discover more things
○

By "consumers" we mean people or applications

Tim Berners-Lee http://www.w3.org/DesignIssues/LinkedData.html
Now: Publishing the Web of Data
Recall our triples from previous lecture...
Publishing the Web of Data
Recall our triples from previous lecture...

To be useful, this data must be
loaded in a triple store and
published via a web-accessible
SPARQL endpoint
Industrial-strength Triple stores
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

AllegroGraph (1+Trillion)
OpenLink Virtuoso v6.1 - 15.4B+ explicit; uncounted virtual/inferred
BigOWLIM (12B explicit, 20B total); 100,000 queries per $1
Garlik 4store (15B)
Bigdata(R) (12.7B)
YARS2 (7B)
Jena TDB (1.7B)
Jena SDB (650M)
TWC uses Virtuoso
Mulgara (500M)
RDF gateway (262M)
Jena with PostgreSQL (200M)
Kowari (160M)
3store with MySQL 3 (100M)
Sesame (70M)
Others who claim to go big

Open Source edition
Industrial-strength Triple stores
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

AllegroGraph (1+Trillion)
OpenLink Virtuoso v6.1 - 15.4B+ explicit; uncounted virtual/inferred
BigOWLIM (12B explicit, 20B total); 100,000 queries per $1
Garlik 4store (15B)
Bigdata(R) (12.7B)
YARS2 (7B)
Jena TDB (1.7B)
Jena SDB (650M)
You can install Apache
Mulgara (500M)
RDF gateway (262M)
Jena with PostgreSQL (200M)
Kowari (160M)
3store with MySQL 3 (100M)
Sesame (70M)
Others who claim to go big

Jena yourselves!
Publishing: RDBMS to RDF
●
●
●

Advantage: Leveraging "legacy"
sources
Challenge: Complexity...
Example: D2RQ Platform
○ D2RQ Mapping Language
○ D2RQ Engine
○ D2R Server

See also: http://d2rq.org/
Publishing: Linked Data API
Motivations:
●
●
●

SPARQL, RDF have high learning curves
RDF support in the common web
development tool stacks is scarce
Solution is the Linked Data API

Advantages:
●
●
●
●

Easy to use web API on linked data
Allows publisher to provide URIs for lists of
things
Allows users to get back the data as JSON,
XML, or RDF
Easy to filter data using simple URL query
parameters

Makes it easy to create web applications over the
published data using standard tools
https://code.google.com/p/linked-data-api/wiki/Specification
Linked Data
API Example
UK Bathing Water Data Explorer
Live: http://environment.data.gov.uk/lab/bwq-web

Details: http://www.epimorphics.com/web/projects/bathing-water-quality
Architecture of Linked Data Applications
● The Crawling Pattern
● The On-The-Fly Dereferencing Pattern
● The Query Federation Pattern
The architecture of a Linked Data application
depends on its driving use case
The Crawling Pattern
●
●
●
●
●
●

Applications "crawl" the Web of Data in advance by traversing RDF links
Integrate and cleanse discovered data
Provide higher layers of the application with an integrated view of the original data
Mimics the architecture of classical Web search engines like Google and Yahoo
Suitable for implementing applications on top of an open, growing set of sources
○ new data sources are discovered by the crawler at run-time.
Separates the tasks of building up the cache and using cache later
○ enables applications to execute complex queries with reasonable performance over large
amounts of data

Disadvantages:
●
●

Data is replicated
Applications may work with stale data; crawler only re-crawls sources at certain intervals

The crawling pattern is implemented by Linked Data search engines
"Crawling Pattern" in the Wild
Google Rich Snippets
The On-The-Fly Dereferencing Pattern
●
●

URIs are dereferenced and links are followed the moment the application requires the data
Applications never process stale data

Disadvantages:
●
●
●

More complex operations are very slow as they might involve dereferencing thousands of URIs
in the background
Architectures have been proposed for answering complex queries over the Web of Data by
relying on on-the-fly dereferencing pattern
Results show that data currency and a very high degree of completeness are achieved at the
price of very slow query execution

The crawling pattern is implemented by Linked Data browsers
"On-the-fly" examples
●
●

Our previous example (dynamic version)
Tabulator, Marbles
The Query Federation Pattern
●
●
●

Relies on sending complex queries (or parts) directly to a fixed set of data sources.
Useful if data sources provide SPARQL endpoints in addition to serving their data on the Web
via dereferenceable URIs
Enables applications to work with current data without needing to replicate complete data
sources locally

Disadvantages:
●
●
●

Finding performant query execution plans for join queries over larger numbers of data sources
is complex (i.e. a research topic)
Query performance slows down significantly when number of data sources grows
Query federation pattern should only be used in situations where the number of data sources
is known to be small

Applications could follow links between data sources, examine voiD descriptions provided by these
data sources and then include data sources which provide SPARQL endpoints into their list of targets
for federated queries
http://linkeddatabook.com/editions/1.0/
Query Federation Example
SELECT ?birthDate ?spouseName ?movieTitle ?
movieDate {
{ SERVICE <http://dbpedia.org/sparql>
{ SELECT ?birthDate ?spouseName WHERE {

Application Code

?actor rdfs:label "Arnold Schwarzenegger"
@en ;
dbpo:birthDate ?birthDate ;
dbpo:spouse ?spouseURI .
?spouseURI rdfs:label ?spouseName .
FILTER ( lang(?spouseName) = "en" )

Federated
SPARQL Service

e.g. Jena ARQ

} } }
{ SERVICE <http://data.linkedmdb.org/sparql>
{ SELECT ?actor ?movieTitle ?movieDate WHERE {
?actor imdb:actor_name "Arnold
Schwarzenegger".
?movie imdb:actor ?actor ;
dcterms:title ?movieTitle ;
dcterms:date ?movieDate .
} } } }

See also bobdc.org http://bit.ly/HLdQ4S

DBPedia.org

LinkedMDB.org
Enterprise Use Cases

http://www.w3.org/2001/sw/sweo/public/UseCases/
Enterprise Use Cases
"Enterprise Energy Intelligence" (DERI)
"A Semantic Web Content Repository for Clinical Research"
(Cleveland Clinic)

http://www.w3.org/2001/sw/sweo/public/UseCases/
Cleveland Clinic Use Case
●

●

●

●

Improve the Clinic’s ability to use patient data for generating new
knowledge to improve future patient care through outcomes-based and
longitudinal clinical research.
Leverage expressiveness and versatility of formats to provide
individual patients an appropriate terminology and accessible view of
summary data.
Over 4 years, Cleveland Clinic has developed a representational
methodology for bridging data collection, document management, and
knowledge representation.
The result is a unified content repository called SemanticDB.

http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
Cleveland Clinic Use Case
●
●

●
●

SemanticDB internally deployed for production on top of an open source
XML & RDF content repository and Firefox (with extensions).
Methodology realized through a core set of terms that facilitate creation of
a domain vocabulary (or domain model)
○ instances of the vocabulary managed automatically by the system.
Patient records available as both uniform, structured markup and RDF.
Coordinated use of both representation languages enables a variety of
operations on patient record:
○ form-based data entry, transformation to reporting formats, document
validation, targeted inference, and querying
○ Operations can be dispatched on the patient record documents and
RDF graphs over a uniform set of interfaces.

http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
DERI "Enterprise Energy Intelligence"

http://dgsit.deri.ie/?q=node/15 and http://slidesha.re/195Gnrr
http://slidesha.re/195Gnrr
http://slidesha.re/195Gnrr
http://slidesha.re/195Gnrr
http://slidesha.re/195Gnrr
More about "Enterprise Linked Data"
Part I: Why Link Enterprise Data?
●
●

Semantic Web and the Linked Data Enterprise
The Role of Community-Driven Data Curation for Enterprises

Part II: Approval and Support of Linked Data Projects
●
●

Preparing for a Linked Data Enterprise
Selling and Building Linked Data: Drive Value and Gain Momentum

Part III: Techniques for Linking Enterprise Data
●
●
●
●

Enhancing Enterprise 2.0 Ecosystems Using Semantic Web and Linked Data
Technologies
Linking XBRL Financial Data
Scalable Reasoning Techniques for Semantic Enterprise Data
Reliable and Persistent Identification of Linked Data Elements

Part IV: Success Stories
●
●
●
●
●
http://3roundstones.com/led_book/led-contents.html

Linked Data for Fighting Global Hunger
Enterprise Linked Data as Core Business Infrastructure
Standardizing Legal Content with OWL and RDF
A Role for Semantic Web Technologies in Patient Record Data Collection
Use of Semantic Web technologies on the BBC Web Sites
Advanced Concepts
●
●
●
●
●

Vocabulary design/RDFS
Knowledge Organization
Ontology design
Provenance
Inference
Advanced Concepts
●
●
●
●
●

Vocabulary design/RDFS
Knowledge Organization
Ontology design
Provenance
Inference

For a poetic (and humorous!) consideration of the
evolution of the "Semantic Layer Cake" see:
Jim Hendler, "My Take on the Semantic Web Layer
Cake." http://bit.ly/195L70i
http://bit.ly/195LrMz
Inference: Discovering New Relationships
On the Semantic Web, data is modeled as a set of (named) relationships between resources
●

●

●
●

●

Inference means using automatic procedures to generate new relationships
○ based on the data...
○ ...and some additional information in the form of a vocabulary or a set of rules
The new relationships may explicitly added to the set of data, or may be returned at query
time (implementation issue)
The source of additional information is defined through vocabularies or rule sets
Both approaches draw upon knowledge representation techniques
○ Ontologies provide classification methods, putting an emphasis on defining 'classes',
'subclasses', on how individual resources can be associated to such classes, and
characterizing the relationships among classes and their instances
○ Rules define mechanisms for discovering and generating new relationships based on
existing ones, much like logic programs (Prolog)
In the Semantic Web toolkit, RDFS, OWL, or SKOS are used for defining ontologies
○ RIF covers rule based approaches
Vocabulary Design: W3C RDFS (1)
●

RDF Vocabulary Description Language

●

RDF has no mechanism for:
○
○

●

describing properties
describing the relationships between properties and other resources

RDF Schema defines classes and properties for describing classes,
properties and other resources

●

RDF Schema vocabulary descriptions are written in RDF

http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
RDF Schema: Classes
●

rdfs:Resource ...is the class of everything

●

rdfs:Class ...declares a resource as a class for other resources

●

rdfs:Literal ...literal values such as strings and integers

●

rdfs:Datatype ...the class of datatypes

●

rdf:XMLLiteral ...the class of XML literal values

●

rdf:Property ...the class of properties

http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
RDF Schema: Properties
●

rdfs:domain ...declares the class of the subject in a triple whose second component is the predicate.

●

rdfs:range ...declares the class or datatype of the object in a triple whose second part is the predicate
○

ex:employer rdfs:domain foaf:Person

○

ex:employer rdfs:range foaf:Organization

●

rdf:type ...state that resource is an instance of a class

●

rdfs:subClassOf ...allows to declare hierarchies of classes.
○

e.g. "Every Person is an Agent": foaf:Person rdfs:subClassOf foaf:Agent

●

rdfs:subPropertyOf ...states that all resources related by one property are also related by another

●

rdfs:label ...used to provide a human-readable version of a resource's name

●

rdfs:comment ...provides a human-readable description of a resource

●

rdfs:seeAlso ...indicates a resource that might provide additional information about the subject resource.

●

rdfs:isDefinedBy ...indicates a resource defining the subject resource

http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
Knowledge Organization 1: W3C OWL
●
●

Web Ontology Language
RDFS too weak to describe resources in sufficient detail
○

○

○

●

No localised range and domain constraints
■ Can’t say that the range of hasChild is person when applied to persons and elephant
when applied to elephants
No existence/cardinality constraints
■ Can’t say that all instances of person have a mother that is also a person, or that
persons have exactly 2 parents
No transitive, inverse or symmetrical properties
■ Can’t say that isPartOf is a transitive property, that hasPart is the inverse of isPartOf
or that touches is symmetrical

Difficult to provide reasoning support
○

No “native” reasoners for non-standard semantics

http://www.w3.org/2007/OWL/wiki/OWL_Working_Group or http://bit.ly/195WANj
Knowledge Organization 1: W3C OWL
Desirable features identified for Web Ontology Language:
●
●
●
●
●

Extends existing Web standards
○ Such as XML, RDF, RDFS
Easy to understand and use
○ Should be based on familiar KR* idioms
Formally specified
Of “adequate” expressive power
Possible to provide automated reasoning support

KR* = knowledge representation

http://www.w3.org/2007/OWL/wiki/OWL_Working_Group or http://bit.ly/195WANj or http://bit.ly/1960964
OWL Tools: Protege-OWL Editor

http://protege.stanford.edu/overview/protege-owl.html
Knowledge Organization 2: W3C SKOS
●
●
●

●

Simple Knowledge Organization System
An application of RDFS and OWL
Provides a way to represent controlled vocabularies, taxonomies and
thesauri
○ controlled vocabulary: a list of terms which a community or
organization has agreed upon
○ taxonomy: a controlled vocabulary organized in a hierarchy
○ thesaurus: a taxonomy with more information about each concept
including preferred and alternative terms.
○ A thesaurus may also contain relationships to related concepts
SKOS is an OWL ontology; it can be written out in any RDF syntax

http://www.w3.org/2004/02/skos/ or http://slidesha.re/1etWDue or http://bit.ly/1etYLlE
Provenance: The W3C PROV Model
●
●

A set of W3C recommendations and notes on modelling provenance
PROV-O is the "core..."

http://www.w3.org/TR/prov-primer/
Provenance in a Nutshell
●

prov:Entity is a physical, digital, conceptual, or other kind
of thing with some fixed aspects; entities may be real or
imaginary

●

prov:Activity is something that occurs over a period of
time and acts upon or with entities; it may include
consuming, processing, transforming, modifying,
relocating, using, or generating entities

●

prov:Agent is something that bears some form of
responsibility for an activity taking place, for the
existence of an entity, or for another agent's
activity

These three classes provide a basis for the rest of PROV-O

http://www.w3.org/TR/prov-primer/ or http://www.provbook.org/
Inference and W3C RIF
●

●

●
●

Production Rules
○ Analogous to instruction in a program: If a certain condition holds, then some action is
carried out
○ Example: "If a customer has flown more than 100,000 miles, then upgrade him to Gold
Member status."
Declarative Rules
○ Stating a fact about the world
○ Understood as sentences of the form "If P, then Q"
○ Example: "If a person is currently president of the United
States of America, then his or her current residence is the
White House."
There are many rule systems, esp. in the expert systems domain
The W3C Rule Interchange Format is an interchange format
between existing rule systems

http://www.w3.org/TR/2013/NOTE-rif-primer-20130205/
The Future....
The Future (from the past)
What is Web Science?
● Positions the World Wide Web as an object of scientific
study unto itself
● Recognizes the Web as a transformational, disruptive
technology
● Its practitioners focus on understanding the Web...
○ ...its components, facets and characteristics
● The Web Science Method: “the process of designing
things in a very large space..."
What does Web Science ask?
● What processes have driven the Web’s growth?
○ Will they persist?
● How does large-scale structure emerge from a simple set of
protocols?
● How does the Web function as a socio-technical system?
● What drives the viral uptake of certain Web phenomena?
Bottom line: What might fragment the Web?
Clare Hooper, et.al. http://bit.ly/R813sC
To Probe Further...
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

●

TWC Linking Open Government Data Portal http://logd.tw.rpi.edu
○
Esp: Linking Open Government Data Tutorials: http://logd.tw.rpi.edu/tutorials
Heath & Bizer, "Linked Data." http://bit.ly/1dxKxNe
Cambridge Semantics, Semantic University http://bit.ly/1cvy9Mv
David Wood, "Intro to Linked Data: Modelling" http://slidesha.re/HUmihT
David Wood, "Intro to Linked Data: Context" http://slidesha.re/1fGhQPv
David Wood, "Intro to Linked Data: SPARQL" http://slidesha.re/1eUd8Qz
Rob Stiles, "Linked Data, RDF and SPARQL" http://slidesha.re/17xVIqq
Ivan Herman, "An Introduction to Semantic Web and Linked Data" http://slidesha.re/1aHREyv
"Linked Data for the Enterprise" http://slidesha.re/1cvyqyS
"Semantic Enterprise 2.0" http://slidesha.re/19vkl5u
"Smart Enterprises" http://slidesha.re/1aXlncX
"Linked data management" http://slidesha.re/19pHmTw GOOD!
"Enterprise Data Meets Web Data" http://slidesha.re/1ifx9AU
DERI, "Enterprise Energy Management using a Linked Dataspace for Energy Intelligence" http://slidesha.re/195Gnrr
"Enhancement and Integration of Corporate Social Software Using the Semantic Web" http://bit.ly/1fGi7BW
"Enabling Semantic Web technologies in the Enterprise 2.0 environment" http://slidesha.re/19vkl5u
Workshop on Enterprise Semantic Web http://www.wasabi-ws.org/ esp: http://bit.ly/18zMhlp
Best Buy examples (Jay Myers) http://www.slideshare.net/jaymmyers
"Querying Semantic Web Databases" http://bit.ly/17vyXy9
From "Big Data" to "Smart Data" (e.g. Ontotext example) http://slidesha.re/16s1iI7
"How to publish linked data on the web" http://bit.ly/1cvzcfe
○
Supersceded by: " Linked Data: Evolving the Web into a Global Data Space" http://linkeddatabook.com/editions/1.
0/
"Practical Cross-dataset Queries on the Web of Data" http://slidesha.re/1ifxsvy

Contenu connexe

Tendances

Exploration, visualization and querying of linked open data sources
Exploration, visualization and querying of linked open data sourcesExploration, visualization and querying of linked open data sources
Exploration, visualization and querying of linked open data sourcesLaura Po
 
Linked data as a library data platform
Linked data as a library data platformLinked data as a library data platform
Linked data as a library data platformJindřich Mynarz
 
Quick Linked Data Introduction
Quick Linked Data IntroductionQuick Linked Data Introduction
Quick Linked Data IntroductionMichael Hausenblas
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic WebTomek Pluskiewicz
 
WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410Arnaud Le Hors
 
From the Semantic Web to the Web of Data: ten years of linking up
From the Semantic Web to the Web of Data: ten years of linking upFrom the Semantic Web to the Web of Data: ten years of linking up
From the Semantic Web to the Web of Data: ten years of linking upDavide Palmisano
 
Keystone Summer School 2015: Mauro Dragoni, Ontologies For Information Retrieval
Keystone Summer School 2015: Mauro Dragoni, Ontologies For Information RetrievalKeystone Summer School 2015: Mauro Dragoni, Ontologies For Information Retrieval
Keystone Summer School 2015: Mauro Dragoni, Ontologies For Information RetrievalMauro Dragoni
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic  Web and Linked DataAn introduction to Semantic  Web and Linked Data
An introduction to Semantic Web and Linked DataGabriela Agustini
 
Digital Tools for Academic Research
Digital Tools for Academic ResearchDigital Tools for Academic Research
Digital Tools for Academic Researchorganognosi
 
Linked Data Tutorial
Linked Data TutorialLinked Data Tutorial
Linked Data TutorialSören Auer
 
Madrid Building blocks of Linked Data
Madrid Building blocks of Linked DataMadrid Building blocks of Linked Data
Madrid Building blocks of Linked DataVictor de Boer
 
DBpedia Tutorial - Feb 2015, Dublin
DBpedia Tutorial - Feb 2015, DublinDBpedia Tutorial - Feb 2015, Dublin
DBpedia Tutorial - Feb 2015, Dublinm_ackermann
 
Linking Open Government Data at Scale
Linking Open Government Data at Scale Linking Open Government Data at Scale
Linking Open Government Data at Scale Bernadette Hyland-Wood
 
DBpedia/association Introduction The Hague 12.2.2016
DBpedia/association Introduction The Hague 12.2.2016DBpedia/association Introduction The Hague 12.2.2016
DBpedia/association Introduction The Hague 12.2.2016Sebastian Hellmann
 
Linked Open Data for Libraries
Linked Open Data for LibrariesLinked Open Data for Libraries
Linked Open Data for LibrariesLukas Koster
 
Archives Hub - Data in :: Data out
Archives Hub - Data in :: Data outArchives Hub - Data in :: Data out
Archives Hub - Data in :: Data outJane Stevenson
 

Tendances (20)

Library Linked Data and the Future of Bibliographic Control
Library Linked Data and the Future of Bibliographic ControlLibrary Linked Data and the Future of Bibliographic Control
Library Linked Data and the Future of Bibliographic Control
 
Exploration, visualization and querying of linked open data sources
Exploration, visualization and querying of linked open data sourcesExploration, visualization and querying of linked open data sources
Exploration, visualization and querying of linked open data sources
 
Linked data as a library data platform
Linked data as a library data platformLinked data as a library data platform
Linked data as a library data platform
 
Quick Linked Data Introduction
Quick Linked Data IntroductionQuick Linked Data Introduction
Quick Linked Data Introduction
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic Web
 
WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410
 
From the Semantic Web to the Web of Data: ten years of linking up
From the Semantic Web to the Web of Data: ten years of linking upFrom the Semantic Web to the Web of Data: ten years of linking up
From the Semantic Web to the Web of Data: ten years of linking up
 
Keystone Summer School 2015: Mauro Dragoni, Ontologies For Information Retrieval
Keystone Summer School 2015: Mauro Dragoni, Ontologies For Information RetrievalKeystone Summer School 2015: Mauro Dragoni, Ontologies For Information Retrieval
Keystone Summer School 2015: Mauro Dragoni, Ontologies For Information Retrieval
 
Linking library data
Linking library dataLinking library data
Linking library data
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic  Web and Linked DataAn introduction to Semantic  Web and Linked Data
An introduction to Semantic Web and Linked Data
 
Digital Tools for Academic Research
Digital Tools for Academic ResearchDigital Tools for Academic Research
Digital Tools for Academic Research
 
Linked Data Tutorial
Linked Data TutorialLinked Data Tutorial
Linked Data Tutorial
 
Madrid Building blocks of Linked Data
Madrid Building blocks of Linked DataMadrid Building blocks of Linked Data
Madrid Building blocks of Linked Data
 
DBpedia Tutorial - Feb 2015, Dublin
DBpedia Tutorial - Feb 2015, DublinDBpedia Tutorial - Feb 2015, Dublin
DBpedia Tutorial - Feb 2015, Dublin
 
Linking Open Government Data at Scale
Linking Open Government Data at Scale Linking Open Government Data at Scale
Linking Open Government Data at Scale
 
Semantic web Santhosh N Basavarajappa
Semantic web   Santhosh N BasavarajappaSemantic web   Santhosh N Basavarajappa
Semantic web Santhosh N Basavarajappa
 
DBpedia/association Introduction The Hague 12.2.2016
DBpedia/association Introduction The Hague 12.2.2016DBpedia/association Introduction The Hague 12.2.2016
DBpedia/association Introduction The Hague 12.2.2016
 
Introducing linked data
Introducing linked dataIntroducing linked data
Introducing linked data
 
Linked Open Data for Libraries
Linked Open Data for LibrariesLinked Open Data for Libraries
Linked Open Data for Libraries
 
Archives Hub - Data in :: Data out
Archives Hub - Data in :: Data outArchives Hub - Data in :: Data out
Archives Hub - Data in :: Data out
 

Similaire à ITWS 4310: Building and Consuming the Web of Data (Fall 2013)

Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015Cason Snow
 
Linked Data for Czech Legislation
Linked Data for Czech LegislationLinked Data for Czech Legislation
Linked Data for Czech LegislationMartin Necasky
 
Linked Data MLA 2015
Linked Data MLA 2015Linked Data MLA 2015
Linked Data MLA 2015Cason Snow
 
Linked data MLA 2015
Linked data MLA 2015Linked data MLA 2015
Linked data MLA 2015Cason Snow
 
Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011 Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011 Jane Stevenson
 
Linked Energy Data Generation
Linked Energy Data GenerationLinked Energy Data Generation
Linked Energy Data GenerationFilip Radulovic
 
Information Extraction and Linked Data Cloud
Information Extraction and Linked Data CloudInformation Extraction and Linked Data Cloud
Information Extraction and Linked Data CloudDhaval Thakker
 
Linked data and Semantic Web Applications for Libraries
Linked data and Semantic Web Applications for LibrariesLinked data and Semantic Web Applications for Libraries
Linked data and Semantic Web Applications for LibrariesVikas Bhushan
 
Linked Open Data Fundamentals for Libraries, Archives and Museums
Linked Open Data Fundamentals for Libraries, Archives and MuseumsLinked Open Data Fundamentals for Libraries, Archives and Museums
Linked Open Data Fundamentals for Libraries, Archives and Museumstrevorthornton
 
Linked Data and Libraries: What? Why? How?
Linked Data and Libraries: What? Why? How?Linked Data and Libraries: What? Why? How?
Linked Data and Libraries: What? Why? How?Emily Nimsakont
 
Linked Data Overview - AGI Technical SIG
Linked Data Overview - AGI Technical SIGLinked Data Overview - AGI Technical SIG
Linked Data Overview - AGI Technical SIGChris Ewing
 

Similaire à ITWS 4310: Building and Consuming the Web of Data (Fall 2013) (20)

ITWS Capstone: Engineering a Semantic Web (Fall 2022)
ITWS Capstone: Engineering a Semantic Web (Fall 2022)ITWS Capstone: Engineering a Semantic Web (Fall 2022)
ITWS Capstone: Engineering a Semantic Web (Fall 2022)
 
Intro to Web Science (Oct 2022)
Intro to Web Science (Oct 2022)Intro to Web Science (Oct 2022)
Intro to Web Science (Oct 2022)
 
Intro to Web Science (Fall 2013)
Intro to Web Science (Fall 2013)Intro to Web Science (Fall 2013)
Intro to Web Science (Fall 2013)
 
Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015
 
Linked Data to Improve the OER Experience
Linked Data to Improve the OER ExperienceLinked Data to Improve the OER Experience
Linked Data to Improve the OER Experience
 
Linked Data
Linked DataLinked Data
Linked Data
 
Linked Data for Czech Legislation
Linked Data for Czech LegislationLinked Data for Czech Legislation
Linked Data for Czech Legislation
 
Linked Data MLA 2015
Linked Data MLA 2015Linked Data MLA 2015
Linked Data MLA 2015
 
Linked data MLA 2015
Linked data MLA 2015Linked data MLA 2015
Linked data MLA 2015
 
Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011 Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011
 
Linked Energy Data Generation
Linked Energy Data GenerationLinked Energy Data Generation
Linked Energy Data Generation
 
Information Extraction and Linked Data Cloud
Information Extraction and Linked Data CloudInformation Extraction and Linked Data Cloud
Information Extraction and Linked Data Cloud
 
Linked data and Semantic Web Applications for Libraries
Linked data and Semantic Web Applications for LibrariesLinked data and Semantic Web Applications for Libraries
Linked data and Semantic Web Applications for Libraries
 
Linked Open Data Fundamentals for Libraries, Archives and Museums
Linked Open Data Fundamentals for Libraries, Archives and MuseumsLinked Open Data Fundamentals for Libraries, Archives and Museums
Linked Open Data Fundamentals for Libraries, Archives and Museums
 
Linked Data
Linked DataLinked Data
Linked Data
 
Linked Data and Libraries: What? Why? How?
Linked Data and Libraries: What? Why? How?Linked Data and Libraries: What? Why? How?
Linked Data and Libraries: What? Why? How?
 
Quick Introduction to the Semantic Web, RDFa & Microformats
Quick Introduction to the Semantic Web, RDFa & MicroformatsQuick Introduction to the Semantic Web, RDFa & Microformats
Quick Introduction to the Semantic Web, RDFa & Microformats
 
Publishing Linked Data using Schema.org
Publishing Linked Data using Schema.orgPublishing Linked Data using Schema.org
Publishing Linked Data using Schema.org
 
Linked (Open) Data
Linked (Open) DataLinked (Open) Data
Linked (Open) Data
 
Linked Data Overview - AGI Technical SIG
Linked Data Overview - AGI Technical SIGLinked Data Overview - AGI Technical SIG
Linked Data Overview - AGI Technical SIG
 

Plus de Rensselaer Polytechnic Institute

Plus de Rensselaer Polytechnic Institute (6)

ITWS Capstone (RPI, Fall 2013)
ITWS Capstone (RPI, Fall 2013)ITWS Capstone (RPI, Fall 2013)
ITWS Capstone (RPI, Fall 2013)
 
ITWS Capstone Lecture (Spring 2013)
ITWS Capstone Lecture (Spring 2013)ITWS Capstone Lecture (Spring 2013)
ITWS Capstone Lecture (Spring 2013)
 
The Semantic Web: RPI ITWS Capstone (Fall 2012)
The Semantic Web: RPI ITWS Capstone (Fall 2012)The Semantic Web: RPI ITWS Capstone (Fall 2012)
The Semantic Web: RPI ITWS Capstone (Fall 2012)
 
First they have to find it: Getting Open Government Data Discovered and Used
First they have to find it: Getting Open Government Data Discovered and UsedFirst they have to find it: Getting Open Government Data Discovered and Used
First they have to find it: Getting Open Government Data Discovered and Used
 
Where is the World is my Open Government Data?
Where is the World is my Open Government Data?Where is the World is my Open Government Data?
Where is the World is my Open Government Data?
 
The Future of DSpace: Making it Personal (Making it Social)
The Future of DSpace: Making it Personal (Making it Social)The Future of DSpace: Making it Personal (Making it Social)
The Future of DSpace: Making it Personal (Making it Social)
 

Dernier

A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 

Dernier (20)

INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 

ITWS 4310: Building and Consuming the Web of Data (Fall 2013)

  • 1. Building and Consuming the Web of Data ITWS 4310 (Fall 2013) John S. Erickson, Ph.D ❇ Tetherless World Constellation ❇ RPI
  • 2. A Lecture in Two Parts... ● Understanding... ● Consuming... ● Building... ● Doing Science with... ...the Web of Data
  • 3. Objectives ● ● ● ● Deeper understanding of Web architecture Understand the Semantic Web stack Apply Linked Data principles & practices Build cool applications ● Contribute to the Web of Data ● Make better IT management decisions
  • 4. Part I: Consuming the Web of Data 1. From the Web of Documents to the Web of Data 2. Linked Data: Building Blocks of the Web (of data) 3. Mashups: Consuming Linked Data
  • 5. Web Architecture It's quite simple, really! ;) ● ● ● A standard system for identifying resources Standard formats for representing resources A standard protocol for exchanging resources Relevant core standards: ● ● ● URIs (URLs): Uniform Resource Identifiers HTML: Hypertext Markup Language HTTP: Hypertext Transfer Protocol
  • 6. Architecture of the World Wide Web, Volume One http://www.w3.org/TR/webarch/
  • 7. Data Mining: Mapping the Blogosphere http://bit.ly/18MuXdD
  • 8. Identifying Web Resources (1) ● ● ● A global identification system is essential ○ to share information about resources ○ to reason about resources ○ to modify or exchange resources Resources are anything that can be linked to or spoken of ○ Documents, cat videos, people, ideas... Not all resources are "on" the Web ○ They might be referenced from the Web... ○ ...while not being retrievable from it ○ These are (so called) "information resources" Les Carr, et.al. http://slidesha.re/142MFrV
  • 9. Identifying Web Resources (2) ● ● ● A global standard is required; the URI is it Others systems are possible... ○ ...but added value of a single global system of identifiers is high ○ Enables linking, bookmarking and other functions across heterogeneous applications How are URI used? ○ All resources have URIs associated with them ○ Each URI identifies a single resource in a context- independent manner ○ URIs act as names and (usually) addresses ○ In general URIs are "opaque" Uniform Resource Identifier (URI): Generic Syntax (RFC 3986) http://www.ietf.org/rfc/rfc3986.txt
  • 10. Identifying Web Resources (3) ● ● ● "URIs identify and URLs locate..." ○ ...and identify URLs are URIs aligned with protocols ○ URLs include the "access mechanism" or "network location", e.g. http: // or ftp:// ○ How to "dereference" the URI and retrieve the thing URL examples ○ ftp://ftp.is.co.za/rfc/rfc1808.txt ○ http://www.ietf.org/rfc/rfc2396.txt ○ mailto:John.Doe@example.com ○ telnet://192.0.2.16:80/ Uniform Resource Identifier (URI): Generic Syntax (RFC 3986) http://www.ietf.org/rfc/rfc3986.txt
  • 11. Representing Resources (1) ● ● ● ● Resources are manifest as digital files ○ More precisely: serializations that look like files... The Web recognizes a (growing) set of {file | serialization} formats ○ The original and workhorse is HTML... ○ ...but there are many others Retrievable resources on the web serve multiple purposes ○ Resources encode information and data ○ Resources aggregate links to other resources This is what makes The Web(tm) a "web..."
  • 12. Resources (nodes) aggregate links to other resources to create a Web
  • 13. Retrieving Resources (1) ● Review: URLs refer to retrievable resources ○ ie URIs that specify some protocol for retrieval ● The original and most common Web protocol is HTTP ● Specialized protocols are possible but resources may appear "off the grid..." ● More common case is HTTP w different formats...
  • 14. URIs, HTTP, many formats... http://www.w3.org/2006/Talks/0521-sb-AC-management/ReCTechStack-bg.png
  • 15. Principles for creating a healthy Web ● Use URIs as names for things ● Use HTTP URIs so people can look up those names ● When someone looks up a URI, return useful information ○ ● use standard representation formats to express it Include links to other URIs, so consumers can discover more things ○ By "consumers" we mean people or applications Why is linking important??? Tim Berners-Lee http://www.w3.org/DesignIssues/LinkedData.html
  • 16. Implications of a well-connected Web Links to other nodes are a "vote" of quality and/or relevance Google PageRank PageRank https://en.wikipedia.org/wiki/PageRank
  • 17. What's this "Semantic Web?" ...and where can I get one???
  • 18. Semantic Web? “Web of meaning” Web of Data Linking ideas... Linked Data meaning : ideas : data
  • 20. RDF: Resource Description Framework predicate subject object
  • 21. RDF: Resource Description Framework predicate subject object “has creator” “article” “James Hendler”
  • 24. We're missing something... ● Check: URIs for names: S, P, O can be URIs ● Check: HTTP URIs: all of our examples are resolvable ● Now: "Return something useful" when we resolve URIs ○ How do we serialize RDF? ○ How do we retrieve RDF? Let's go to the graph...
  • 25. Source: Programming the Web http://bit.ly/1aZwr40
  • 26. "Raw" Triples Via the W3C RDF VCalidator Service: http://www.w3.org/RDF/Validator/
  • 27. N-Triples... <http://kiwitobes.com/toby.rdf#ts> <http://kiwitobes.com/toby.rdf#ts> <http://kiwitobes.com/toby.rdf#ts> <http://kiwitobes.com/toby.rdf#ts> <http://kiwitobes.com/toby.rdf#ts> <http://kiwitobes.com/toby.rdf#ts> 1/Person>. <http://xmlns.com/foaf/0.1/homepage> <http://kiwitobes.com/>. <http://xmlns.com/foaf/0.1/nick> "kiwitobes". <http://xmlns.com/foaf/0.1/name> "Toby Segaran". <http://xmlns.com/foaf/0.1/mbox> <mailto:toby@segaran.com>. <http://xmlns.com/foaf/0.1/interest> <http://semprog.com>. <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0. <http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/knows> _:jamie . <http://kiwitobes.com/toby.rdf#ts> <http://xmlns.com/foaf/0.1/knows> <http://semprog.com/people/colin>. _:jamie <http://xmlns.com/foaf/0.1/name> "Jamie Taylor". _:jamie <http://xmlns.com/foaf/0.1/mbox> <mailto:jamie@semprog.com>. _:jamie <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>. <http://semprog.com/people/colin> <http://xmlns.com/foaf/0.1/name> "Colin Evans". <http://semprog.com/people/colin> <http://xmlns.com/foaf/0.1/mbox> <mailto:colin@semprog.com>. <http://semprog.com/people/colin> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0. 1/Person>. <http://semprog.com> <http://www.w3.org/2000/01/rdf-schema#label> "Semantic Programming". <http://semprog.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document>.
  • 28. N3... @prefix @prefix @prefix @prefix @prefix foaf: <http://xmlns.com/foaf/0.1/>. rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. rdfs: <http://www.w3.org/2000/01/rdf-schema#>. semperp: <http://semprog.com/people/>. tobes: <http://kiwitobes.com/toby.rdf#>. tobes:ts a foaf:Person; foaf:homepage <http://kiwitobes.com/>; foaf:interest <http://semprog.com>; foaf:knows semperp:colin, [ a foaf:Person; foaf:mbox <mailto:jamie@semprog.com>; foaf:name "Jamie Taylor"]; foaf:mbox <mailto:toby@segaran.com>; foaf:name "Toby Segaran"; foaf:nick "kiwitobes". <http://semprog.com> a foaf:Document; rdfs:label "Semantic Programming". semperp:colin a foaf:Person; foaf:mbox <mailto:colin@semprog.com>; foaf:name "Colin Evans".
  • 29. RDFa... : <div xmlns:foaf="http://xmlns.com/foaf/0.1/" about="http://kiwitobes.com/toby.rdf#ts" typeof="foaf:Person"> Name: <span property="foaf:name">Toby Segaran</span><br/> Nickname: <span property="foaf:nick">kiwitobes</span><br/> Interests: <a rel="foaf:interest" href="http://semprog.org"> <span property="rdfs:label">Semantic Programming</span></a> Homepage: <a rel="foaf:homepage" href="http://kiwkitobes.com/">KiwiTobes</a><p/> Friends:<br/> <ul rel="foaf:knows"> <li about="http://semprog.com/people/colin" typeof="foaf:Person" property="foaf:name">Colin Evans</li> <li typeof="foaf:Person"> <span property="foaf:name">Jamie Taylor</span><br/> Email: <a rel="foaf:mbox" href="mailto:jamie@semprog.com"> jamie@semprog.com</a><br/> </li> </ul> </div> :
  • 30. RDF/XML... <rdf:RDF xmlns:foaf='http://xmlns.com/foaf/0.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'> <foaf:Person rdf:about="http://kiwitobes.com/toby.rdf#ts"> <foaf:name>Toby Segaran</foaf:name> <foaf:homepage rdf:resource="http://kiwitobes.com/"/> <foaf:nick>kiwitobes</foaf:nick> <foaf:mbox rdf:resource="mailto:toby@segaran.com"/> <foaf:interest> <foaf:Document rdf:about="http://semprog.com"> <rdfs:label>Semantic Programming</rdfs:label> </foaf:Document> </foaf:interest> <foaf:knows> <foaf:Person rdf:about="http://semprog.com/people/colin"> <foaf:name>Colin Evans</foaf:name> <foaf:mbox rdf:resource="mailto:colin@semprog.com"/> </foaf:Person> </foaf:knows> <foaf:knows> <foaf:Person> <foaf:name>Jamie Taylor</foaf:name> <foaf:mbox rdf:resource="mailto:jamie@semprog.com"/> </foaf:Person> </foaf:knows> </foaf:Person> </rdf:RDF>
  • 31. { JSON-LD... "@graph": [ { "@id": "http://kiwitobes.com/toby.rdf#ts" , "@type": "http://xmlns.com/foaf/0.1/Person" , "http://xmlns.com/foaf/0.1/homepage": { "@id": "http://kiwitobes.com/" }, "http://xmlns.com/foaf/0.1/interest": { "@id": "http://semprog.com" }, "http://xmlns.com/foaf/0.1/knows": [ { "@type": "http://xmlns.com/foaf/0.1/Person" , "http://xmlns.com/foaf/0.1/mbox": { "@id": "mailto:jamie@semprog.com" }, "http://xmlns.com/foaf/0.1/name": "Jamie Taylor" }, { "@id": "http://semprog.com/people/colin" } ], "http://xmlns.com/foaf/0.1/mbox": { "@id": "mailto:toby@segaran.com" }, "http://xmlns.com/foaf/0.1/name": "Toby Segaran" , "http://xmlns.com/foaf/0.1/nick": "kiwitobes" }, { "@id": "http://semprog.com/people/colin" , "@type": "http://xmlns.com/foaf/0.1/Person" , "http://xmlns.com/foaf/0.1/mbox": { "@id": "mailto:colin@semprog.com" }, "http://xmlns.com/foaf/0.1/name": "Colin Evans" }, { "@id": "http://semprog.com" , "@type": "http://xmlns.com/foaf/0.1/Document" , "http://www.w3.org/2000/01/rdf-schema#label": "Semantic Programming" } ] }
  • 32. RDF/JSON... { "http://kiwitobes.com/toby.rdf#ts": { "http://xmlns.com/foaf/0.1/nick": [ { "type": "literal", "value": "kiwitobes" } ], "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": [ { "type": "uri", "value": "http://xmlns.com/foaf/0.1/Person" } ], "http://xmlns.com/foaf/0.1/interest": [ { "type": "uri", "value": "http://semprog.com" } ], "http://xmlns.com/foaf/0.1/knows": [ { "type": "uri", "value": "http://semprog.com/people/colin" }, { "type": "bnode", "value": "_:N40b366148cfc4c48a80f4e15acbd2858" } ], "http://xmlns.com/foaf/0.1/mbox": [ { "type": "uri", "value": "mailto:toby@segaran.com" } ], "http://xmlns.com/foaf/0.1/homepage": [ { "type": "uri", "value": "http://kiwitobes.com/" } ], "http://xmlns.com/foaf/0.1/name": [ { "type": "literal", "value": "Toby Segaran" } ] }, "http://semprog.com/people/colin": { "http://xmlns.com/foaf/0.1/mbox": [ { "type": "uri", "value": "mailto:colin@semprog.com" } ], "http://xmlns.com/foaf/0.1/name": [ { "type": "literal", "value": "Colin Evans" } ], "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": [ { "type": "uri", "value": "http://xmlns.com/foaf/0.1/Person" } ] }, "_:N40b366148cfc4c48a80f4e15acbd2858": { "http://xmlns.com/foaf/0.1/mbox": [ { "type": "uri", "value": "mailto:jamie@semprog.com" } ], "http://xmlns.com/foaf/0.1/name": [ { "type": "literal", "value": "Jamie Taylor" } ], "http://www.w3.org/1999/02/22-rdf-syntaxns#type": [ { "type": "uri", "value": "http://xmlns.com/foaf/0.1/Person" } ] }, "http://semprog.com": { "http://www.w3.org/1999/02/22-rdf-syntaxns#type": [ { "type": "uri", "value": "http://xmlns.com/foaf/0. 1/Document" } ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "type": "literal", "value": "Semantic Programming" } ] } }
  • 33. RDF Serialization: Summary ● ● ● ● ● ● N-Triples: Verbose, "pedagogical" N3: Concise, in common use; RDFa: Commonly used for embedded RDF RDF/XML: Some use in government & "enterprise" JSON-LD: Fast-rising LD standard RDF/JSON: Older convention for LD applications
  • 34. Things we still haven't discussed... ● ● ● ● How to retrieve this "linked data" of which I speak How (and where?) to query RDF "graphs" How to use LD in applications How to create visualizations & "mashups" Also: ● How to create and publish linked data...
  • 35. Consuming Linked Data ● ● ● ● Querying RDF: SPARQL Endpoints and triple stores "Mashing" data in the query Mashing data in the application
  • 36. Anatomy of a Mashup Demo: http://logd.tw.rpi.edu/demo/building-logd-visualizations/agi-per-capita-v2.html (use Firefox)
  • 37. Deep Dive: LOGD Mashup Tutorial 1. Choose data (two datasets from Data.gov) ○ ○ 2. Define queries to retrieve desired results from endpoint ○ ○ 3. 4. 5. http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.sparql Submit this URI to http://logd.tw.rpi.edu/sparql Define basic HTML layout Insert visualization code (e.g. Google visualization) Pass static data ○ 6. "State Library Agency Survey: Fiscal Year 2006" "Tax Year 2007 County Income Data" http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.js Revise to pass dynamic data from live SPARQL queries http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
  • 39. Converted RDF on TWC LOGD Portal
  • 40. SPARQL: pattern matching over RDF graphs
  • 44.
  • 45.
  • 47. LOGD Tutorial SPARQL Query # this query returns the agi and population data from two data.gov datasets SELECT distinct ?state_abbv ?agi ?population WHERE { GRAPH <http://logd.tw.rpi.edu/source/data-gov/dataset/353/version/1st-anniversary>{ ?s1 ?s1 } GRAPH ?s2 ?s2 ?s2 ?s2 } <http://logd.tw.rpi.edu/source/data-gov/dataset/353/vocab/raw/popu_st> ?population. <http://logd.tw.rpi.edu/source/data-gov/dataset/353/vocab/raw/pub_fips> ?state_fipscode . <http://logd.tw.rpi.edu/source/data-gov/dataset/1356/version/2009-Dec-03> { <http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/state_abbrv> ?state_abbv . <http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/county_code> "000" . <http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/agi> ?agi. <http://logd.tw.rpi.edu/source/data-gov/dataset/1356/vocab/raw/state_code> ?state_fipscode . } order by ?state_fipscode
  • 49. SPARQL Query results (JSON) google.visualization.Query.setResponse({version:0.6,status:'ok',reqId:0,table:{cols:[{id:'state_abbv', label:'state_abbv',type:'string'},{id:'agi',label:'agi',type:'number'},{id:'population',label:'population', type:'number'}],rows:[{c: [{v:'AL'},{v:92162773},{v:4599030}]},{c:[{v:'AK'},{v:17312636},{v:670053}]},{c: [{v:'AZ'},{v:134442007},{v:6166318}]},{c:[{v:'AR'},{v:49783294},{v:2810872}]},{c:[{v:'CA'},{v:913619942},{v: 36457549}]},{c:[{v:'CO'},{v:128175529},{v:4753377}]},{c:[{v:'CT'},{v:122697142},{v:3504809}]},{c:[{v:'DE'}, {v:22983204},{v:853476}]},{c:[{v:'DC'},{v:18177370},{v:581530}]},{c:[{v:'FL'},{v:429785960},{v:18089888}]}, {c:[{v:'GA'},{v:199864840},{v:9363941}]},{c:[{v:'HI'},{v:30592983},{v:1285498}]},{c:[{v:'ID'},{v:30292717}, {v:1466465}]},{c:[{v:'IL'},{v:339217881},{v:12831970}]},{c:[{v:'IN'},{v:140616570},{v:6313520}]},{c: [{v:'IA'},{v:68946837},{v:2982085}]},{c:[{v:'KS'},{v:65216515},{v:2764075}]},{c:[{v:'KY'},{v:81721206},{v: 4206074}]},{c:[{v:'LA'},{v:84029967},{v:4287768}]},{c:[{v:'ME'},{v:28954363},{v:1321574}]},{c:[{v:'MD'},{v: 168647138},{v:5615727}]},{c:[{v:'MA'},{v:202226349},{v:6437193}]},{c:[{v:'MI'},{v:227233854},{v:10095643}]}, {c:[{v:'MN'},{v:143482070},{v:5167101}]},{c:[{v:'MS'},{v:47387966},{v:2910540}]},{c:[{v:'MO'},{v:131166510}, {v:5842713}]},{c:[{v:'MT'},{v:20045504},{v:944632}]},{c:[{v:'NE'},{v:41569440},{v:1768331}]},{c:[{v:'NV'}, {v:65272642},{v:2495529}]},{c:[{v:'NH'},{v:38175000},{v:1314895}]},{c:[{v:'NJ'},{v:283024874},{v:8724560}]}, {c:[{v:'NM'},{v:38144029},{v:1954599}]},{c:[{v:'NY'},{v:513598458},{v:19306183}]},{c:[{v:'NC'},{v: 195374554},{v:8856505}]},{c:[{v:'ND'},{v:14923738},{v:635867}]},{c:[{v:'OH'},{v:259099675},{v:11478006}]}, {c:[{v:'OK'},{v:70394493},{v:3579212}]},{c:[{v:'OR'},{v:85591882},{v:3700758}]},{c:[{v:'PA'},{v:313289892}, {v:12440621}]},{c:[{v:'RI'},{v:26532233},{v:1067610}]},{c:[{v:'SC'},{v:88615194},{v:4321249}]},{c:[{v:'SD'}, {v:17825580},{v:781919}]},{c:[{v:'TN'},{v:126270760},{v:6038803}]},{c:[{v:'TX'},{v:504386602},{v: 23507783}]},{c:[{v:'UT'},{v:55426179},{v:2550063}]},{c:[{v:'VT'},{v:15246152},{v:623908}]},{c:[{v:'VA'},{v: 217677476},{v:7642884}]},{c:[{v:'WA'},{v:175730868},{v:6395798}]},{c:[{v:'WV'},{v:32243697},{v:1818470}]}, {c:[{v:'WI'},{v:140516394},{v:5556506}]},{c:[{v:'WY'},{v:15216840},{v:515004}]}]}}) http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.js
  • 50. SPARQL Query results (JSON) google.visualization.Query.setResponse({version:0.6,status:'ok',reqId:0,table:{ cols:[{id:'state_abbv', label:'state_abbv',type:'string'},{id:'agi',label:'agi',type:'number'},{id:'population', label:'population',type:'number'}],rows:[{c:[{v:'AL'},{v:92162773},{v:4599030}]},{c:[{v:'AK'},{v: 17312636},{v:670053}]},{c:[{v:'AZ'},{v:134442007},{v:6166318}]},{c:[{v:'AR'},{v:49783294},{v:2810872}]},{c: [{v:'CA'},{v:913619942},{v:36457549}]},{c:[{v:'CO'},{v:128175529},{v:4753377}]},{c:[{v:'CT'},{v:122697142}, {v:3504809}]},{c:[{v:'DE'},{v:22983204},{v:853476}]},{c:[{v:'DC'},{v:18177370},{v:581530}]},{c:[{v:'FL'},{v: 429785960},{v:18089888}]},{c:[{v:'GA'},{v:199864840},{v:9363941}]},{c:[{v:'HI'},{v:30592983},{v:1285498}]}, {c:[{v:'ID'},{v:30292717},{v:1466465}]},{c:[{v:'IL'},{v:339217881},{v:12831970}]},{c:[{v:'IN'},{v: 140616570},{v:6313520}]},{c:[{v:'IA'},{v:68946837},{v:2982085}]},{c:[{v:'KS'},{v:65216515},{v:2764075}]},{c: [{v:'KY'},{v:81721206},{v:4206074}]},{c:[{v:'LA'},{v:84029967},{v:4287768}]},{c:[{v:'ME'},{v:28954363},{v: 1321574}]},{c:[{v:'MD'},{v:168647138},{v:5615727}]},{c:[{v:'MA'},{v:202226349},{v:6437193}]},{c:[{v:'MI'}, {v:227233854},{v:10095643}]},{c:[{v:'MN'},{v:143482070},{v:5167101}]},{c:[{v:'MS'},{v:47387966},{v: 2910540}]},{c:[{v:'MO'},{v:131166510},{v:5842713}]},{c:[{v:'MT'},{v:20045504},{v:944632}]},{c:[{v:'NE'},{v: 41569440},{v:1768331}]},{c:[{v:'NV'},{v:65272642},{v:2495529}]},{c:[{v:'NH'},{v:38175000},{v:1314895}]},{c: [{v:'NJ'},{v:283024874},{v:8724560}]},{c:[{v:'NM'},{v:38144029},{v:1954599}]},{c:[{v:'NY'},{v:513598458},{v: 19306183}]},{c:[{v:'NC'},{v:195374554},{v:8856505}]},{c:[{v:'ND'},{v:14923738},{v:635867}]},{c:[{v:'OH'},{v: 259099675},{v:11478006}]},{c:[{v:'OK'},{v:70394493},{v:3579212}]},{c:[{v:'OR'},{v:85591882},{v:3700758}]}, {c:[{v:'PA'},{v:313289892},{v:12440621}]},{c:[{v:'RI'},{v:26532233},{v:1067610}]},{c:[{v:'SC'},{v:88615194}, {v:4321249}]},{c:[{v:'SD'},{v:17825580},{v:781919}]},{c:[{v:'TN'},{v:126270760},{v:6038803}]},{c:[{v:'TX'}, {v:504386602},{v:23507783}]},{c:[{v:'UT'},{v:55426179},{v:2550063}]},{c:[{v:'VT'},{v:15246152},{v:623908}]}, {c:[{v:'VA'},{v:217677476},{v:7642884}]},{c:[{v:'WA'},{v:175730868},{v:6395798}]},{c:[{v:'WV'},{v:32243697}, {v:1818470}]},{c:[{v:'WI'},{v:140516394},{v:5556506}]},{c:[{v:'WY'},{v:15216840},{v:515004}]}]}}) http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353-population-1356-agi.js
  • 51. Defining HTML Layout <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>AGI per Capita Map</title> </head> <body> <div>AGI per Capita Map: average adjusted gross income per person in dollar amount in US states.</div> <div id='map_canvas'>Loading Map ...</div> </body> </html> http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
  • 52. Visualization Code... 1. Load the appropriate Google Visualization API packages (in this case, the GeoMap package). 2. Define a callback function for loading visualization code, which is called upon the loading of the HTML page. 3. Obtain data from a given source to pass to our GeoMap instance. The Google Visualization API is designed to accept data in the form of specially-formatted JSON (represented by a URI) which can then be fed to a JSON processing function. 4. Following a call to the JSON processor, verify that it successfully processed the passed file. 5. Get back a response from the query processor, containing the data from the JSON file. 6. Define a data table to store the response data in. This process starts by defining header entries of the form TABLE. addColumn(DATATYPE, NAME). 7. For each entry in the response, create a new data table row for the corresponding data. 8. Define a configuration for the GeoMap instance to be visualized, containing information such as resolution. 9. Define the GeoMap instance in the HTML div with id='map_canvas', using the configuration from Step 8 and data table from Step 7. http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
  • 53. Visualization Code... 1. Load the appropriate Google Visualization API packages (in this case, the GeoMap package). 2. Define a callback function for loading visualization code, which is called upon the loading of the HTML page. 3. Obtain data from a given source to pass to our GeoMap instance. The Google Visualization API is designed to accept data in the form of specially-formatted JSON (represented by a URI) which can then be fed to a JSON processing function. 4. Following a call to the JSON processor, verify that it successfully processed the passed file. 5. Get back a response from the query processor, containing the data from the JSON file. 6. Define a data table to store the response data in. This process starts by defining header entries of the form TABLE. addColumn(DATATYPE, NAME). 7. For each entry in the response, create a new data table row for the corresponding data. 8. Define a configuration for the GeoMap instance to be visualized, containing information such as resolution. 9. Define the GeoMap instance in the HTML div with id='map_canvas', using the configuration from Step 8 and data table from Step 7. http://logd.tw.rpi.edu/tutorial/building_logd_visualizations
  • 54. Dynamic Visualizations Loading data using SPARQL queries //load data using SPARQL query var sparqlproxy = "http://logd.tw.rpi.edu/ws/sparqlproxy.php"; var queryloc = "http://logd.tw.rpi.edu/demo/building-logd-visualizations/mashup-353population-1356-agi.sparql"; var service = "http://logd.tw.rpi.edu/sparql"; var queryurl = sparqlproxy + "?" + "output=gvds" + "&service-uri=" + encodeURIComponent(service) + "&query-uri=" + encodeURIComponent(queryloc) ;
  • 55. Next: Building the Web of Data ● ● ● ● ● Converting datasets to RDF Hosting: Triplestores & endpoints Enterprise use cases Advanced techiques Web Science...
  • 56. Part II: Building the Web of Data Thursday, 14 Nov 2013
  • 58. $6000
  • 59. RPI Contact: Dominic DiFranzo difrad@rpi.edu Register: http://bit.ly/1apZJv5 ● ● ● Stem the “twin epidemic” of obesity and diabetes Use participants’ own design expertise, creativity, and most importantly experiences to engage health experts and open data leaders with mobile/web-based tools Help New Yorkers get control of their health by providing better access to resources in their community
  • 60. Part II: Building the Web of Data 1. Review: the Web of Data 2. Publishing the Web of Data 3. Engineering the Web of Data in the Enterprise 4. Enterprise Applications of Semantic Technologies 5. Advanced "Semantic Web" concepts 6. Web Science: Observing and (re)Engineering the Web
  • 61. Review: Web Architecture First Principles of the Web... ● ● ● A standard system for identifying resources Standard formats for representing resources A standard protocol for exchanging resources Relevant core standards: ● ● ● URIs (URLs): Uniform Resource Identifiers HTML: Hypertext Markup Language HTTP: Hypertext Transfer Protocol
  • 62. Review: Linked Data Principles ● Use URIs as names for things ● Use HTTP URIs so people can look up those names ● When someone looks up a URI, return useful information ○ ● use standard representation formats to express it Include links to other URIs, so consumers can discover more things ○ By "consumers" we mean people or applications Tim Berners-Lee http://www.w3.org/DesignIssues/LinkedData.html
  • 63. Now: Publishing the Web of Data Recall our triples from previous lecture...
  • 64. Publishing the Web of Data Recall our triples from previous lecture... To be useful, this data must be loaded in a triple store and published via a web-accessible SPARQL endpoint
  • 65. Industrial-strength Triple stores 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. AllegroGraph (1+Trillion) OpenLink Virtuoso v6.1 - 15.4B+ explicit; uncounted virtual/inferred BigOWLIM (12B explicit, 20B total); 100,000 queries per $1 Garlik 4store (15B) Bigdata(R) (12.7B) YARS2 (7B) Jena TDB (1.7B) Jena SDB (650M) TWC uses Virtuoso Mulgara (500M) RDF gateway (262M) Jena with PostgreSQL (200M) Kowari (160M) 3store with MySQL 3 (100M) Sesame (70M) Others who claim to go big Open Source edition
  • 66. Industrial-strength Triple stores 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. AllegroGraph (1+Trillion) OpenLink Virtuoso v6.1 - 15.4B+ explicit; uncounted virtual/inferred BigOWLIM (12B explicit, 20B total); 100,000 queries per $1 Garlik 4store (15B) Bigdata(R) (12.7B) YARS2 (7B) Jena TDB (1.7B) Jena SDB (650M) You can install Apache Mulgara (500M) RDF gateway (262M) Jena with PostgreSQL (200M) Kowari (160M) 3store with MySQL 3 (100M) Sesame (70M) Others who claim to go big Jena yourselves!
  • 67.
  • 68. Publishing: RDBMS to RDF ● ● ● Advantage: Leveraging "legacy" sources Challenge: Complexity... Example: D2RQ Platform ○ D2RQ Mapping Language ○ D2RQ Engine ○ D2R Server See also: http://d2rq.org/
  • 69. Publishing: Linked Data API Motivations: ● ● ● SPARQL, RDF have high learning curves RDF support in the common web development tool stacks is scarce Solution is the Linked Data API Advantages: ● ● ● ● Easy to use web API on linked data Allows publisher to provide URIs for lists of things Allows users to get back the data as JSON, XML, or RDF Easy to filter data using simple URL query parameters Makes it easy to create web applications over the published data using standard tools https://code.google.com/p/linked-data-api/wiki/Specification
  • 70. Linked Data API Example UK Bathing Water Data Explorer Live: http://environment.data.gov.uk/lab/bwq-web Details: http://www.epimorphics.com/web/projects/bathing-water-quality
  • 71. Architecture of Linked Data Applications ● The Crawling Pattern ● The On-The-Fly Dereferencing Pattern ● The Query Federation Pattern The architecture of a Linked Data application depends on its driving use case
  • 72. The Crawling Pattern ● ● ● ● ● ● Applications "crawl" the Web of Data in advance by traversing RDF links Integrate and cleanse discovered data Provide higher layers of the application with an integrated view of the original data Mimics the architecture of classical Web search engines like Google and Yahoo Suitable for implementing applications on top of an open, growing set of sources ○ new data sources are discovered by the crawler at run-time. Separates the tasks of building up the cache and using cache later ○ enables applications to execute complex queries with reasonable performance over large amounts of data Disadvantages: ● ● Data is replicated Applications may work with stale data; crawler only re-crawls sources at certain intervals The crawling pattern is implemented by Linked Data search engines
  • 73. "Crawling Pattern" in the Wild Google Rich Snippets
  • 74. The On-The-Fly Dereferencing Pattern ● ● URIs are dereferenced and links are followed the moment the application requires the data Applications never process stale data Disadvantages: ● ● ● More complex operations are very slow as they might involve dereferencing thousands of URIs in the background Architectures have been proposed for answering complex queries over the Web of Data by relying on on-the-fly dereferencing pattern Results show that data currency and a very high degree of completeness are achieved at the price of very slow query execution The crawling pattern is implemented by Linked Data browsers
  • 75. "On-the-fly" examples ● ● Our previous example (dynamic version) Tabulator, Marbles
  • 76. The Query Federation Pattern ● ● ● Relies on sending complex queries (or parts) directly to a fixed set of data sources. Useful if data sources provide SPARQL endpoints in addition to serving their data on the Web via dereferenceable URIs Enables applications to work with current data without needing to replicate complete data sources locally Disadvantages: ● ● ● Finding performant query execution plans for join queries over larger numbers of data sources is complex (i.e. a research topic) Query performance slows down significantly when number of data sources grows Query federation pattern should only be used in situations where the number of data sources is known to be small Applications could follow links between data sources, examine voiD descriptions provided by these data sources and then include data sources which provide SPARQL endpoints into their list of targets for federated queries http://linkeddatabook.com/editions/1.0/
  • 77. Query Federation Example SELECT ?birthDate ?spouseName ?movieTitle ? movieDate { { SERVICE <http://dbpedia.org/sparql> { SELECT ?birthDate ?spouseName WHERE { Application Code ?actor rdfs:label "Arnold Schwarzenegger" @en ; dbpo:birthDate ?birthDate ; dbpo:spouse ?spouseURI . ?spouseURI rdfs:label ?spouseName . FILTER ( lang(?spouseName) = "en" ) Federated SPARQL Service e.g. Jena ARQ } } } { SERVICE <http://data.linkedmdb.org/sparql> { SELECT ?actor ?movieTitle ?movieDate WHERE { ?actor imdb:actor_name "Arnold Schwarzenegger". ?movie imdb:actor ?actor ; dcterms:title ?movieTitle ; dcterms:date ?movieDate . } } } } See also bobdc.org http://bit.ly/HLdQ4S DBPedia.org LinkedMDB.org
  • 79. Enterprise Use Cases "Enterprise Energy Intelligence" (DERI) "A Semantic Web Content Repository for Clinical Research" (Cleveland Clinic) http://www.w3.org/2001/sw/sweo/public/UseCases/
  • 80. Cleveland Clinic Use Case ● ● ● ● Improve the Clinic’s ability to use patient data for generating new knowledge to improve future patient care through outcomes-based and longitudinal clinical research. Leverage expressiveness and versatility of formats to provide individual patients an appropriate terminology and accessible view of summary data. Over 4 years, Cleveland Clinic has developed a representational methodology for bridging data collection, document management, and knowledge representation. The result is a unified content repository called SemanticDB. http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
  • 81. Cleveland Clinic Use Case ● ● ● ● SemanticDB internally deployed for production on top of an open source XML & RDF content repository and Firefox (with extensions). Methodology realized through a core set of terms that facilitate creation of a domain vocabulary (or domain model) ○ instances of the vocabulary managed automatically by the system. Patient records available as both uniform, structured markup and RDF. Coordinated use of both representation languages enables a variety of operations on patient record: ○ form-based data entry, transformation to reporting formats, document validation, targeted inference, and querying ○ Operations can be dispatched on the patient record documents and RDF graphs over a uniform set of interfaces. http://www.w3.org/2001/sw/sweo/public/UseCases/ClevelandClinic/
  • 86. DERI "Enterprise Energy Intelligence" http://dgsit.deri.ie/?q=node/15 and http://slidesha.re/195Gnrr
  • 91.
  • 92. More about "Enterprise Linked Data" Part I: Why Link Enterprise Data? ● ● Semantic Web and the Linked Data Enterprise The Role of Community-Driven Data Curation for Enterprises Part II: Approval and Support of Linked Data Projects ● ● Preparing for a Linked Data Enterprise Selling and Building Linked Data: Drive Value and Gain Momentum Part III: Techniques for Linking Enterprise Data ● ● ● ● Enhancing Enterprise 2.0 Ecosystems Using Semantic Web and Linked Data Technologies Linking XBRL Financial Data Scalable Reasoning Techniques for Semantic Enterprise Data Reliable and Persistent Identification of Linked Data Elements Part IV: Success Stories ● ● ● ● ● http://3roundstones.com/led_book/led-contents.html Linked Data for Fighting Global Hunger Enterprise Linked Data as Core Business Infrastructure Standardizing Legal Content with OWL and RDF A Role for Semantic Web Technologies in Patient Record Data Collection Use of Semantic Web technologies on the BBC Web Sites
  • 93. Advanced Concepts ● ● ● ● ● Vocabulary design/RDFS Knowledge Organization Ontology design Provenance Inference
  • 94. Advanced Concepts ● ● ● ● ● Vocabulary design/RDFS Knowledge Organization Ontology design Provenance Inference For a poetic (and humorous!) consideration of the evolution of the "Semantic Layer Cake" see: Jim Hendler, "My Take on the Semantic Web Layer Cake." http://bit.ly/195L70i
  • 96. Inference: Discovering New Relationships On the Semantic Web, data is modeled as a set of (named) relationships between resources ● ● ● ● ● Inference means using automatic procedures to generate new relationships ○ based on the data... ○ ...and some additional information in the form of a vocabulary or a set of rules The new relationships may explicitly added to the set of data, or may be returned at query time (implementation issue) The source of additional information is defined through vocabularies or rule sets Both approaches draw upon knowledge representation techniques ○ Ontologies provide classification methods, putting an emphasis on defining 'classes', 'subclasses', on how individual resources can be associated to such classes, and characterizing the relationships among classes and their instances ○ Rules define mechanisms for discovering and generating new relationships based on existing ones, much like logic programs (Prolog) In the Semantic Web toolkit, RDFS, OWL, or SKOS are used for defining ontologies ○ RIF covers rule based approaches
  • 97. Vocabulary Design: W3C RDFS (1) ● RDF Vocabulary Description Language ● RDF has no mechanism for: ○ ○ ● describing properties describing the relationships between properties and other resources RDF Schema defines classes and properties for describing classes, properties and other resources ● RDF Schema vocabulary descriptions are written in RDF http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
  • 98. RDF Schema: Classes ● rdfs:Resource ...is the class of everything ● rdfs:Class ...declares a resource as a class for other resources ● rdfs:Literal ...literal values such as strings and integers ● rdfs:Datatype ...the class of datatypes ● rdf:XMLLiteral ...the class of XML literal values ● rdf:Property ...the class of properties http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
  • 99. RDF Schema: Properties ● rdfs:domain ...declares the class of the subject in a triple whose second component is the predicate. ● rdfs:range ...declares the class or datatype of the object in a triple whose second part is the predicate ○ ex:employer rdfs:domain foaf:Person ○ ex:employer rdfs:range foaf:Organization ● rdf:type ...state that resource is an instance of a class ● rdfs:subClassOf ...allows to declare hierarchies of classes. ○ e.g. "Every Person is an Agent": foaf:Person rdfs:subClassOf foaf:Agent ● rdfs:subPropertyOf ...states that all resources related by one property are also related by another ● rdfs:label ...used to provide a human-readable version of a resource's name ● rdfs:comment ...provides a human-readable description of a resource ● rdfs:seeAlso ...indicates a resource that might provide additional information about the subject resource. ● rdfs:isDefinedBy ...indicates a resource defining the subject resource http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
  • 100. Knowledge Organization 1: W3C OWL ● ● Web Ontology Language RDFS too weak to describe resources in sufficient detail ○ ○ ○ ● No localised range and domain constraints ■ Can’t say that the range of hasChild is person when applied to persons and elephant when applied to elephants No existence/cardinality constraints ■ Can’t say that all instances of person have a mother that is also a person, or that persons have exactly 2 parents No transitive, inverse or symmetrical properties ■ Can’t say that isPartOf is a transitive property, that hasPart is the inverse of isPartOf or that touches is symmetrical Difficult to provide reasoning support ○ No “native” reasoners for non-standard semantics http://www.w3.org/2007/OWL/wiki/OWL_Working_Group or http://bit.ly/195WANj
  • 101. Knowledge Organization 1: W3C OWL Desirable features identified for Web Ontology Language: ● ● ● ● ● Extends existing Web standards ○ Such as XML, RDF, RDFS Easy to understand and use ○ Should be based on familiar KR* idioms Formally specified Of “adequate” expressive power Possible to provide automated reasoning support KR* = knowledge representation http://www.w3.org/2007/OWL/wiki/OWL_Working_Group or http://bit.ly/195WANj or http://bit.ly/1960964
  • 102. OWL Tools: Protege-OWL Editor http://protege.stanford.edu/overview/protege-owl.html
  • 103. Knowledge Organization 2: W3C SKOS ● ● ● ● Simple Knowledge Organization System An application of RDFS and OWL Provides a way to represent controlled vocabularies, taxonomies and thesauri ○ controlled vocabulary: a list of terms which a community or organization has agreed upon ○ taxonomy: a controlled vocabulary organized in a hierarchy ○ thesaurus: a taxonomy with more information about each concept including preferred and alternative terms. ○ A thesaurus may also contain relationships to related concepts SKOS is an OWL ontology; it can be written out in any RDF syntax http://www.w3.org/2004/02/skos/ or http://slidesha.re/1etWDue or http://bit.ly/1etYLlE
  • 104. Provenance: The W3C PROV Model ● ● A set of W3C recommendations and notes on modelling provenance PROV-O is the "core..." http://www.w3.org/TR/prov-primer/
  • 105. Provenance in a Nutshell ● prov:Entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary ● prov:Activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities ● prov:Agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity These three classes provide a basis for the rest of PROV-O http://www.w3.org/TR/prov-primer/ or http://www.provbook.org/
  • 106. Inference and W3C RIF ● ● ● ● Production Rules ○ Analogous to instruction in a program: If a certain condition holds, then some action is carried out ○ Example: "If a customer has flown more than 100,000 miles, then upgrade him to Gold Member status." Declarative Rules ○ Stating a fact about the world ○ Understood as sentences of the form "If P, then Q" ○ Example: "If a person is currently president of the United States of America, then his or her current residence is the White House." There are many rule systems, esp. in the expert systems domain The W3C Rule Interchange Format is an interchange format between existing rule systems http://www.w3.org/TR/2013/NOTE-rif-primer-20130205/
  • 108. The Future (from the past)
  • 109. What is Web Science? ● Positions the World Wide Web as an object of scientific study unto itself ● Recognizes the Web as a transformational, disruptive technology ● Its practitioners focus on understanding the Web... ○ ...its components, facets and characteristics ● The Web Science Method: “the process of designing things in a very large space..."
  • 110. What does Web Science ask? ● What processes have driven the Web’s growth? ○ Will they persist? ● How does large-scale structure emerge from a simple set of protocols? ● How does the Web function as a socio-technical system? ● What drives the viral uptake of certain Web phenomena? Bottom line: What might fragment the Web?
  • 111. Clare Hooper, et.al. http://bit.ly/R813sC
  • 112. To Probe Further... ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● TWC Linking Open Government Data Portal http://logd.tw.rpi.edu ○ Esp: Linking Open Government Data Tutorials: http://logd.tw.rpi.edu/tutorials Heath & Bizer, "Linked Data." http://bit.ly/1dxKxNe Cambridge Semantics, Semantic University http://bit.ly/1cvy9Mv David Wood, "Intro to Linked Data: Modelling" http://slidesha.re/HUmihT David Wood, "Intro to Linked Data: Context" http://slidesha.re/1fGhQPv David Wood, "Intro to Linked Data: SPARQL" http://slidesha.re/1eUd8Qz Rob Stiles, "Linked Data, RDF and SPARQL" http://slidesha.re/17xVIqq Ivan Herman, "An Introduction to Semantic Web and Linked Data" http://slidesha.re/1aHREyv "Linked Data for the Enterprise" http://slidesha.re/1cvyqyS "Semantic Enterprise 2.0" http://slidesha.re/19vkl5u "Smart Enterprises" http://slidesha.re/1aXlncX "Linked data management" http://slidesha.re/19pHmTw GOOD! "Enterprise Data Meets Web Data" http://slidesha.re/1ifx9AU DERI, "Enterprise Energy Management using a Linked Dataspace for Energy Intelligence" http://slidesha.re/195Gnrr "Enhancement and Integration of Corporate Social Software Using the Semantic Web" http://bit.ly/1fGi7BW "Enabling Semantic Web technologies in the Enterprise 2.0 environment" http://slidesha.re/19vkl5u Workshop on Enterprise Semantic Web http://www.wasabi-ws.org/ esp: http://bit.ly/18zMhlp Best Buy examples (Jay Myers) http://www.slideshare.net/jaymmyers "Querying Semantic Web Databases" http://bit.ly/17vyXy9 From "Big Data" to "Smart Data" (e.g. Ontotext example) http://slidesha.re/16s1iI7 "How to publish linked data on the web" http://bit.ly/1cvzcfe ○ Supersceded by: " Linked Data: Evolving the Web into a Global Data Space" http://linkeddatabook.com/editions/1. 0/ "Practical Cross-dataset Queries on the Web of Data" http://slidesha.re/1ifxsvy