...

Making Queries on RDF Internet Technologies 1 95-733 Internet Technologies

by user

on
Category: Documents
3

views

Report

Comments

Transcript

Making Queries on RDF Internet Technologies 1 95-733 Internet Technologies
Internet Technologies
Making Queries on RDF
95-733 Internet Technologies
Master of Information System
Management
1
Two Approaches
• SPARQL
- Simple Protocol And RDF Query
Language
- Looks like SQL
Both freebase
- Used by Dbpedia
and Dbpedia
make their
• MQL
statements
available in RDF.
- Metaweb Query Language
- Based on JSON
- Used by Freebase
95-733 Internet Technologies
Master of Information System
Management
2
Today’s Lecture
• A brief look at SPARQL
• A brief look at MQL
95-733 Internet Technologies
Master of Information System
Management
3
SPARQL
• SPARQL Simple Protocol and RDF
Query Language
• W3C Recommendation January
2008
• Queries written using Turtle Terse RDF Triple Language
• Download Jena and ARQ Query
Engine
• For Ruby, see ActiveRDF
95-733 Internet Technologies
Master of Information System
Management
4
SPARQL
• Three specifications:
(1) A query language
(2) A query results XML format
(3) A WSDL 2.0 Data Access
Protocol using HTTP and SOAP
• SPARQL is read only and cannot
modify the RDF data
95-733 Internet Technologies
Master of Information System
Management
5
Input
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rss="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:html="http://www.w3.org/1999/xhtml">
<foaf:Agent rdf:nodeID="id2246040">
<foaf:name>John Barstow</foaf:name>
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<foaf:weblog>
<foaf:Document rdf:about="http://www.nzlinux.org.nz/blogs/">
<dc:title>Visions of Aestia by John Barstow</dc:title>
<rdfs:seeAlso>
<rss:channel rdf:about="http://www.nzlinux.org.nz/blogs/wp-rdf.php?cat=9">
<foaf:maker rdf:nodeID="id2246040"/>
<foaf:topic rdf:resource="http://www.w3.org/2001/sw/"/>
<foaf:topic rdf:resource="http://www.w3.org/RDF/"/>
</rss:channel>
</rdfs:seeAlso>
</foaf:Document>
</foaf:weblog>
<foaf:interest rdf:resource="http://www.w3.org/2001/sw/"/>
<foaf:interest rdf:resource="http://www.w3.org/RDF/"/>
95-733 Internet Technologies
</foaf:Agent>
Master of Information System
</rdf:RDF>
Management
This is
shortblogger.xml
The file bloggers.xml
has many bloggers.
6
Processing
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?url
FROM <shortblogger.xml>
WHERE {
?contributor foaf:name "John Barstow" .
?contributor foaf:weblog ?url .
}
Stored in a file called
ex1.rq
95-733 Internet Technologies
Master of Information System
Management
7
Output
sparql --query ex1.rq
-----------------------| url
|
=========================
| <http://www.nzlinux.org.nz/blogs/> |
--------------------------------------------
95-733 Internet Technologies
Master of Information System
Management
8
Processing
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?url
FROM <shortblogger.xml>
WHERE {
?contributor rdf:type foaf:Person .
?contributor foaf:weblog ?url .
}
Output
sparql --query ex2.rq
------------------------| url
|
===============
| <http://www.nzlinux.org.nz/blogs/> |
95-733 Internet Technologies
------------------------9
Master of Information System
Management
Processing
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?x ?n
FROM <bloggers.xml>
WHERE {
All three conditions
?contributor rdf:type foaf:Person .
must be satisfied
?contributor foaf:weblog ?x .
to match the query.
?contributor foaf:name ?n
}
95-733 Internet Technologies
Master of Information System
Management
10
Output
sparql --query ex4.rq
-------------------------------------------------------------------------------------|x
|n
|
================================================
| <http://www.picklematrix.net/semergence/>
| "Seth Ladd"
|
| <http://www.wasab.dk/morten/blog/>
| "Morten Frederiksen" |
| <http://www.lassila.org/blog/>
| "Ora Lassila"
|
| <http://people.w3.org/~dom/>
| "Hazaël-Massieux"
|
| <http://xmlarmyknife.org/blog/>
| "Leigh Dodds"
|
| <http://blogs.sun.com/bblfish/>
| "Henry Story"
|
| <http://jeenbroekstra.blogspot.com/>
| "Jeen Broekstra"
|
| <http://people.w3.org/~djweitzner/blog/?cat=8> | "Danny Weitzner"
|
| <http://danbri.org/words/>
| "Dan Brickley"
|
95-733 Internet Technologies
Master of Information System
Management
11
Processing
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?n
FROM <bloggers.xml>
WHERE {
?contributor foaf:name ?n
Output
----------------------------------------}
|n
=================
| ”Mike McCarthy"
| "Pasquale Popolizio"
| "Dean Allemang"
:
:
95-733 Internet Technologies
Master of Information System
Management
|
|
|
|
12
Processing
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?n
FROM <bloggers.xml>
WHERE {
?contributor foaf:name ?n
---------------------} ORDER BY ?n
95-733 Internet Technologies
Master of Information System
Management
|n
|
=============
| "Alexandre Passant" |
| "Alistair Miles"
|
| "Andrew Matthews" |
| "Benjamin Nowack"
:
13
:
Semi-Structured Data
• Definition:
If two nodes of the same type are
allowed to hold different sets of
properties the data is called semistructured.
• SPARQL uses the OPTIONAL
keyword to process semistructured data.
95-733 Internet Technologies
Master of Information System
Management
14
Processing
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?n ?interest
FROM <bloggers.xml>
WHERE {
?contributor foaf:name ?n .
OPTIONAL {
?contributor foaf:interest ?interest
}
} ORDER BY ?n "Tetherless World Constellation group RPI" <http://www.w3.org/2001/sw/>
"Tetherless World Constellation group RPI" <http://www.w3.org/RDF/>
"Tim Berners-Lee"
"Uldis Bojars"
<http://www.w3.org/2001/sw/>
"Uldis Bojars"
<http://www.w3.org/RDF/>
95-733 Internet Technologies
Master of Information System
Management
15
Generating XML
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?n
FROM <shortblogger.xml>
WHERE {
?contributor foaf:name ?n .
}
95-733 Internet Technologies
Master of Information System
Management
16
From The Command Line
sparql --query ex8.rq --results rs/xml
<?xml version="1.0"?>
<sparql
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xs="http://www.w3.org/2001/XMLSchema#"
xmlns="http://www.w3.org/2005/sparql-results#" >
<head>
<variable name="n"/>
</head>
<results>
<result>
<binding name="n">
<literal>John Barstow</literal>
</binding>
</result>
</results>
</sparql>
95-733 Internet Technologies
Master of Information System
Management
17
MQL
• Metaweb Query Language
• Make queries against the freebase
data store.
• The input and outputs are JSON
strings.
95-733 Internet Technologies
Master of Information System
Management
18
Using MQL In A URL
Example from the MQL documentation.
Enter the following in your browser:
https://api.freebase.com/api/service/mqlread?query=
{“query”:{“type”:”/music/artist”,”name”:”The Police”,”album”:[]}}
This is a query to freebase represented in JSON.
95-733 Internet Technologies
Master of Information System
Management
19
Output
{ "code": "/api/status/ok",
"result": {
Many more
"album": [
albums in the real
"Outlandos d'Amour",
query result.
"Reggatta de Blanc",
"Zenyatt\u00e0 Mondatta”
"The Police Live!" ],
"name": "The Police",
"type": "/music/artist"
},
"status": "200 OK",
"transaction_id”:"cache;cache03.p01.sjc1:8101;2011-10-13T15” }
95-733 Internet Technologies
Master of Information System
Management
20
Another look at the query.
{
"query":
{ "type":"/music/artist",
"name":"The Police",
"album":[]
}
}
95-733 Internet Technologies
Master of Information System
Management
21
Use The Query Editor
http://www.freebase.comqueryeditor
95-733 Internet Technologies
Master of Information System
Management
22
Fly UP