Freebase Workshop, December 2009
-
Upload
jamie-taylor -
Category
Technology
-
view
2.939 -
download
2
description
Transcript of Freebase Workshop, December 2009
![Page 1: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/1.jpg)
Freebase WorkshopJamie TaylorNew York City, December 2009
Code available at: http://dev.mqlx.com/~jamie/nyc2009
![Page 2: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/2.jpg)
Building a MQL Query
![Page 3: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/3.jpg)
MQL
[{ "name" : null, "type" : "/tv/tv_program"}]
"type":"/type/object" is assumed"name" = /type/object/name
![Page 4: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/4.jpg)
http://www.freebase.com/app/queryeditor
![Page 5: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/5.jpg)
MQL
{"id":"/en/ncis",
"name" : null, "type" : "/tv/tv_program"}
![Page 6: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/6.jpg)
![Page 7: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/7.jpg)
MQL
{"id":"/en/ncis",
"name" : null, "type" : "/tv/tv_program",
"program_creator":[ ]}
"/program_creator" = /tv/tv_program/program_creator
![Page 8: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/8.jpg)
MQL
{"id":"/en/ncis",
"name" : null, "type" : "/tv/tv_program",
"program_creator":[{ "id":null, "name":null }]}
![Page 9: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/9.jpg)
TVPerformance
Mark Harmon
Jethro Gibbs{
"id":"/en/ncis", "name" : null, "type" : "/tv/tv_program",
"program_creator":[{ "id":null, "name:null }],"regular_cast":[{
"actor":null, "character":null
}]}
![Page 10: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/10.jpg)
{"id":"/en/ncis",
"name" : null, "type" : "/tv/tv_program",
"program_creator":[{ "id":null, "name:null }],"regular_cast":[{
"actor":null, "character":null
}]}
![Page 11: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/11.jpg)
TVPerformance
Mark Harmon
Jethro Gibbs{
"id":"/en/ncis", "name" : null, "type" : "/tv/tv_program",
"program_creator":[{ "id":null, "name:null }],"regular_cast":[{
"actor": {"id":null, "name":null}, "character":null
}]}
![Page 12: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/12.jpg)
{"id":"/en/ncis",
"name" : null, "type" : "/tv/tv_program",
"program_creator":[{ "id":null, "name:null }],"regular_cast":[{
"actor": {"id":null, "name":null}, "character":null
}],"spin_offs":[ ]
}
![Page 13: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/13.jpg)
{"id":"/en/ncis",
"name" : null, "type" : "/tv/tv_program",
"program_creator":[{ "id":null, "name:null }],"regular_cast":[{
"actor": {"id":null, "name":null}, "character":null
}],"spin_offs":[{"id":null, "name":null,
"air_date_of_first_episode":null}]}
![Page 14: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/14.jpg)
Accessing Freebase Services via PHP
![Page 15: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/15.jpg)
Service Requests in PHP
• Using cURL to make external service requests
$topicid = "/en/ncis";$widgeturl = "http://www.freebase.com/widget/topic?id= $topicid&mode=i&panes=image,article_props";
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $widgeturl);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$resultstr = curl_exec($ch);curl_close($ch);
print $resultstr;
![Page 16: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/16.jpg)
Accessing External Services via MQL Extensions
![Page 17: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/17.jpg)
A Graph of Entities
![Page 18: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/18.jpg)
A Graph of Services
![Page 19: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/19.jpg)
http://www.myspace.com/shakira
http://www.facebook.com/shakira
http://twitter.com/shakira
http://www.daylife.com/topic/Shakira
http://www.bestbuy.com/site/She+Wolf…
http://www.guardian.co.uk/music/shakira
http://www.last.fm/music/Shakira
http://www.netflix.com/RoleDisplay/Shakira/20046629
![Page 20: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/20.jpg)
eMQL: MQL Extensions
• Request data from other service providers• Services accessed transparently within MQL query
• Use Freebase Keys/Properties in external service request
• Uses:
• real-time data services
• Stock quotes, sensor data
• premium services
• requests can specify private "api keys" for the service
• fine grained & authoritative data sources
![Page 21: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/21.jpg)
eMQL Query
{ "id": "/en/ibm", "type": "/business/company", "ticker_symbol": [{ "stock_exchange": null, "ticker_symbol":null }]}
ticker
"ibm"
![Page 22: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/22.jpg)
{ "id": "/en/ibm", "type": "/business/company", "ticker_symbol": [{ "stock_exchange": null, "ticker_symbol":null, "quote":null }]}
eMQL Query
ticker
"ibm"
![Page 23: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/23.jpg)
{ "id": "/en/ibm", "type": "/business/company", "ticker_symbol": [{ "stock_exchange": null, "ticker_symbol":null, "quote":null }]}
eMQL Query
ticker
"ibm"
"pre"
"fetch"
![Page 24: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/24.jpg)
eMQL Service Request• Pre
• Modify MQL query to provide additional information necessary to complete request
• e.g., retrieve specific namespace keys
• Fetch• Produce (retrieve, calculate, format) value for the
eMQL property
• Reduce (optional)• Create a result that looks across all results returned
in the query
• Help
• Document how the property is used
![Page 25: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/25.jpg)
MQL Read Service http://api.freebase.com/api/service/mqlread?query= {"query":{"id":"/en/ncis", "name":null}}
http://api.freebase.com/api/service/mqlread?queries= {"q0":{"query":{"id":"/en/ncis", "name":null}}} {"q1":{"query":{"id":"/en/blade_runner", "name":null}}}
![Page 26: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/26.jpg)
MQL Requests in PHP
$topicid = "/en/ncis";$simplequery = array('id'=>$topicid, 'name'=>null);$queryarray = array('q1'=>array('query'=>$simplequery)); #query envelope
$jsonquerystr = json_encode($queryarray);$mqlurl = "http://www.freebase.com/api/service/mqlread?queries=". $jsonquerystr;
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $mqlurl);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$resultstr = curl_exec($ch);curl_close($ch); $resultarray = json_decode($resultstr, true); #true:give us an array
$topicname = $resultarray["q1"]["result"]["name"]
{"id":"/en/ncis", "name":null}
![Page 27: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/27.jpg)
Demo eMQL Extensions
stock quote
@tag references
![Page 28: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/28.jpg)
TV Episode Adapter
{ "id":"/en/ncis", "/user/jamie/extension/tv_episode": null}
"name":"Faith""airdate": "Dec/15/2009"
"id":"/authority/tvrage/episode/1064868143"
Query:
DesiredData:
![Page 29: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/29.jpg)
TV Rage Episode Adapter
![Page 30: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/30.jpg)
Show ID@4628Show Name@NCISShow URL@http://www.tvrage.com/NCISPremiered@2003Started@Sep/23/2003Ended@Latest Episode@07x09^Child's Play^Nov/24/2009Next Episode@07x10^Faith^Dec/15/2009RFC3339@2009-12-15T20:00:00-5:00GMT+0 NODST@1260921600Country@USAStatus@Returning SeriesClassification@ScriptedGenres@Action | Crime | Drama | Military/WarNetwork@CBSAirtime@Tuesday at 08:00 pmRuntime@60
http://services.tvrage.com/tools/quickinfo.php?show=NCIS
![Page 31: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/31.jpg)
Tim
e
TV
Ep
iso
de
Ad
ap
ter
eM
QL D
rive
r
pre
updated MQLquery
MQ
L Q
ue
ry
run MQLquery
MQLresults
fetch
Extend MQL query to retrieveTV Rage Key (program identifier)
TV
Ra
ge
Se
rvic
e
get seriesdata
next episodenumber,
name,date
nextepisode
URL
get episodedata
query dispatched
format results
results
returnqueryresults
TV RageeMQL
AdapterLife Cycle
![Page 32: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/32.jpg)
Using Foreign Identifiers to locate Freebase Topics
• /authority Namespace• Organizations managing stable entity identifiers
• /source - identifiers only appearing in URLs
• Keys can be for URLs to other sites• And vice-versa!
![Page 33: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/33.jpg)
URLs and Freebase Keys
• http://www.imdb.com/title/tt0083658• /authority/imdb/title/tt0083658• http://www.rottentomatoes.com/alias?type=imdbid&s=0083658
• http://dbpedia.org/resource/Blade_Runner• /wikipedia/en/Blade_Runner• http://en.wikipedia.org/wiki/Blade_Runner
• http://musicbrainz.org/artist/2c4dae8c-e591-49e0-9c5a-62b310a15788.html• /authority/musicbrainz/2c4dae8c-
e591-49e0-9c5a-62b310a15788• http://www.bbc.co.uk/music/artists/2c4dae8c-
e591-49e0-9c5a-62b310a15788
![Page 35: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/35.jpg)
Using Freebase RDF URIs
http://rdf.freebase.com/ns/<freebase-key>
• Performs content negotiation (HTTP ACCEPT Header)
• Produces HTML for standard browsers
• Produces RDF if you ask for it
• Easily translated to MQL style Freebase identifiers
http://rdf.freebase.com/ns/en.ncis = /en/ncis
![Page 36: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/36.jpg)
Entity Extractors
• Zemanta• Freebase RDF URIs• Wikipedia Links• IMDB identifiers
• Orchestr8• Freebase RDF URIs• DBPedia RDF URIs• MusicBrainz identifiers• Crunchbase identifiers
• OpenCalais• Freebase RDF URIs• DBPedia RDF URIs
![Page 37: Freebase Workshop, December 2009](https://reader034.fdocuments.in/reader034/viewer/2022051818/54c2ee2c4a795950248b4651/html5/thumbnails/37.jpg)
Getting Started++• Freebase Documentation Hub
• http://www.freebase.com/docs
• Developer Mailing List• http://freebase.markmail.org/search/?q=list:com.freebase.developers
• Schema/Modeling assistance• Data Modeling Mailing List
• http://freebase.markmail.org/search/?q=list:com.freebase.data-modeling
• Real Time help on IRC• Freenode #freebase
• Freebase Happenings• http://blog.freebase.com