SlideShare a Scribd company logo
1 of 44
Download to read offline
YQL
(and its hotness)
YQL is Yahoo!
Query Language
Yahoo! calls it:
A “mediator service” that
  enables developers to
query, filter, and combine
 data across Yahoo! and
         beyond.
I call it:
An API for the
public internet.
I think my
description is a bit
  more catchy.
YQL offers a
SQL-like syntax.
SELECT *
 FROM search.web
WHERE query=quot;rubyquot;
Look familiar?
SELECT what
 FROM table
WHERE filter
Tables in YQL are
much the same as
  tables in SQL.
SELECT *
 FROM search.web
WHERE query=quot;rubyquot;
You can SELECT
specific elements
   or objects.
SELECT title
 FROM search.web
WHERE query=quot;rubyquot;
WHERE filters have
 lots of operators.
= =! > < <= >=
IN LIKE IS NULL
  IS NOT NULL
     AND OR
Join tables with
sub-selects using
matching values as
  a foreign key.
What is a YQL
   table?
The defaults are
mostly data sources
for Yahoo's own data
        APIs.
Some for HTML,
JSON, XML, RSS,
ATOM, CSV, feeds
and microformats.
Tables are defined
     in XML.
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<table xmlns=quot;http://query.yahooapis.com/v1/schema/table.xsdquot;>
  <meta>
    <author>Paul Daniel</author>
    <documentationURL>http://apiwiki.twitter.com/REST+API
+Documentation#show</documentationURL>
  </meta>
  <bindings>
    <select itemPath=quot;feed.entryquot; produces=quot;XMLquot;>
      <urls>
         <url>http://twitter.com/statuses/user_timeline/{id}.atom</url>
      </urls>
      <paging model=quot;pagequot;>
         <start default=quot;0quot; id=quot;pagequot;/>
         <pagesize max=quot;200quot; id=quot;countquot;/>
         <total default=quot;20quot;/>
      </paging>
      <inputs>
         <key id=quot;sincequot; type=quot;xs:stringquot; paramType=quot;queryquot; />
         <key id=quot;since_idquot; type=quot;xs:stringquot; paramType=quot;queryquot; />
         <key id=quot;idquot; type=quot;xs:stringquot; paramType=quot;pathquot; required=quot;truequot;/>
      </inputs>
    </select>
  </bindings>
</table>
You can write your
      own.
And share them for
  others to use.
SHOW tables
 DESC table
What’s the output?
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<query xmlns:yahoo=quot;http://www.yahooapis.com/v1/base.rngquot; yahoo:count=quot;10quot;
yahoo:created=quot;2009-02-11T03:16:48Zquot; yahoo:lang=quot;en-USquot;
yahoo:updated=quot;2009-02-11T03:16:48Zquot; yahoo:uri=quot;http://
query.yahooapis.com/v1/yql?q=SELECT+*+%0AFROM+search.web+WHERE+query%3D
%22ruby%22quot;>
    <diagnostics>
        <publiclyCallable>true</publiclyCallable>
        <url execution-time=quot;116quot;>http://boss.yahooapis.com/ysearch/web/
v1/ruby?format=xml&amp;start=0&amp;count=10</url>
        <user-time>119</user-time>
        <service-time>116</service-time>
        <build-version>851</build-version>
    </diagnostics>
    <results>
        <result xmlns=quot;http://www.inktomi.com/quot;>
             <abstract><![CDATA[<b>Ruby</b> originated in Japan during the
mid-1990s and was initially developed and <b>...</b> <b>Ruby</b> supports
multiple programming paradigms, including functional, object <b>...</
b>]]></abstract>
             <clickurl>http://lrd.yahooapis.com/
_ylc=X3oDMTQ4NWxyYWUxBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZ
Ed5TkouTXNxZlNMQmkEcG9zAzEEc2VydmljZQNZU2VhcmNoV2ViBHNsawN0aXRsZQRzcmNwdml
kA253RkNNVVBEQjJIMkxjVFRsQWt1ZVI0VXl6LkNJVW1TUXlBQUFLckk-/SIG=11tsuk1oo/
**http%3A//en.wikipedia.org/wiki/Ruby_(programming_language)</clickurl>
{
    quot;queryquot;:
    {
        quot;countquot;:quot;10quot;,
        quot;createdquot;:quot;2009-02-11T03:20:22Zquot;,
        quot;langquot;:quot;en-USquot;,
        quot;updatedquot;:quot;2009-02-11T03:20:22Zquot;,
        quot;uriquot;:quot;http://query.yahooapis.com/v1/yql?
q=SELECT+*+%0AFROM+search.web+WHERE+query%3D
%22ruby%22quot;,
        quot;diagnosticsquot;:
        {
             quot;publiclyCallablequot;:quot;truequot;,
             quot;urlquot;:
            {
                 quot;execution-timequot;:quot;109quot;,
Specify callback
 with ‘callback’
  for JSON-P.
call({
    quot;queryquot;:
    {
        quot;countquot;:quot;10quot;,
        quot;createdquot;:quot;2009-02-11T03:20:22Zquot;,
        quot;langquot;:quot;en-USquot;,
        quot;updatedquot;:quot;2009-02-11T03:20:22Zquot;,
        quot;uriquot;:quot;http://query.yahooapis.com/v1/yql?
q=SELECT+*+%0AFROM+search.web+WHERE+query%3D
%22ruby%22quot;,
        quot;diagnosticsquot;:
        {
             quot;publiclyCallablequot;:quot;truequot;,
             quot;urlquot;:
            {
                 quot;execution-timequot;:quot;109quot;,
http://query.yahooapis.com/v1/
  public/yql?q=SELECT%20*
%20%0AFROM%20search.web
  %20WHERE%20query%3D
         %22ruby%22
  &format=json&callback=call
Where is all this?
http://developer.yahoo.com/
             yql/
http://developer.yahoo.com/
         yql/console
Examples
I converted the
GitHub Activity
 Badge today.
Took me 5 minutes.
  http://github.com/
lachlanhardy/github-
   activity-badge/
Oh!
And I built this...
http://streamslide.com
  http://github.com/
     lachlanhardy/
      streamslide/
Thank you
http://lachstock.com.au

More Related Content

Viewers also liked

Viewers also liked (13)

كيفية اضافة دفتر زوار
كيفية اضافة دفتر زواركيفية اضافة دفتر زوار
كيفية اضافة دفتر زوار
 
كيفية استعرض زوّاري من بلد معين ؟
كيفية استعرض زوّاري من بلد معين ؟كيفية استعرض زوّاري من بلد معين ؟
كيفية استعرض زوّاري من بلد معين ؟
 
ما هي فائدة صندوق البحث
ما هي فائدة صندوق البحثما هي فائدة صندوق البحث
ما هي فائدة صندوق البحث
 
إضافة تعليق على الطقس
إضافة تعليق على الطقسإضافة تعليق على الطقس
إضافة تعليق على الطقس
 
كيفية تحميل كليب إلى جيران
كيفية تحميل كليب إلى جيرانكيفية تحميل كليب إلى جيران
كيفية تحميل كليب إلى جيران
 
كيفية اضافة نص متحرك الى موقعك
كيفية اضافة نص متحرك الى موقعككيفية اضافة نص متحرك الى موقعك
كيفية اضافة نص متحرك الى موقعك
 
كيفية تحميل صورة الى حسابك
كيفية تحميل صورة الى حسابككيفية تحميل صورة الى حسابك
كيفية تحميل صورة الى حسابك
 
كيفية حذف موقع
كيفية حذف موقعكيفية حذف موقع
كيفية حذف موقع
 
ما هو نبض الجيران
ما هو نبض الجيرانما هو نبض الجيران
ما هو نبض الجيران
 
كيفية تعديل خصائص مدونتك ؟
كيفية تعديل خصائص مدونتك ؟كيفية تعديل خصائص مدونتك ؟
كيفية تعديل خصائص مدونتك ؟
 
مساعدة
مساعدةمساعدة
مساعدة
 
How to edit your blog settings
How to edit your blog settingsHow to edit your blog settings
How to edit your blog settings
 
كيفية حذف جار ؟
كيفية حذف جار ؟كيفية حذف جار ؟
كيفية حذف جار ؟
 

More from Lachlan Hardy

Give Your JavaScript Apps Some Spine
Give Your JavaScript Apps Some SpineGive Your JavaScript Apps Some Spine
Give Your JavaScript Apps Some Spine
Lachlan Hardy
 

More from Lachlan Hardy (12)

Give Your JavaScript Apps Some Spine
Give Your JavaScript Apps Some SpineGive Your JavaScript Apps Some Spine
Give Your JavaScript Apps Some Spine
 
Give Your JavaScript Apps A Spine
Give Your JavaScript Apps A SpineGive Your JavaScript Apps A Spine
Give Your JavaScript Apps A Spine
 
SydJS.com
SydJS.comSydJS.com
SydJS.com
 
Yql && Raphaël
Yql && RaphaëlYql && Raphaël
Yql && Raphaël
 
GitHub for JavaScripters
GitHub for JavaScriptersGitHub for JavaScripters
GitHub for JavaScripters
 
The Open Web
The Open WebThe Open Web
The Open Web
 
Serving Code Samples
Serving Code SamplesServing Code Samples
Serving Code Samples
 
The Open Web
The Open WebThe Open Web
The Open Web
 
The Open Web
The Open WebThe Open Web
The Open Web
 
Improving Dashboards with open content sharing
Improving Dashboards with open content sharingImproving Dashboards with open content sharing
Improving Dashboards with open content sharing
 
Local Government on the Open Web
Local Government on the Open WebLocal Government on the Open Web
Local Government on the Open Web
 
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Yql And Its Hotness

  • 4. A “mediator service” that enables developers to query, filter, and combine data across Yahoo! and beyond.
  • 6. An API for the public internet.
  • 7. I think my description is a bit more catchy.
  • 9. SELECT * FROM search.web WHERE query=quot;rubyquot;
  • 11. SELECT what FROM table WHERE filter
  • 12. Tables in YQL are much the same as tables in SQL.
  • 13. SELECT * FROM search.web WHERE query=quot;rubyquot;
  • 14. You can SELECT specific elements or objects.
  • 15. SELECT title FROM search.web WHERE query=quot;rubyquot;
  • 16. WHERE filters have lots of operators.
  • 17. = =! > < <= >= IN LIKE IS NULL IS NOT NULL AND OR
  • 18. Join tables with sub-selects using matching values as a foreign key.
  • 19. What is a YQL table?
  • 20. The defaults are mostly data sources for Yahoo's own data APIs.
  • 21. Some for HTML, JSON, XML, RSS, ATOM, CSV, feeds and microformats.
  • 23. <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <table xmlns=quot;http://query.yahooapis.com/v1/schema/table.xsdquot;> <meta> <author>Paul Daniel</author> <documentationURL>http://apiwiki.twitter.com/REST+API +Documentation#show</documentationURL> </meta> <bindings> <select itemPath=quot;feed.entryquot; produces=quot;XMLquot;> <urls> <url>http://twitter.com/statuses/user_timeline/{id}.atom</url> </urls> <paging model=quot;pagequot;> <start default=quot;0quot; id=quot;pagequot;/> <pagesize max=quot;200quot; id=quot;countquot;/> <total default=quot;20quot;/> </paging> <inputs> <key id=quot;sincequot; type=quot;xs:stringquot; paramType=quot;queryquot; /> <key id=quot;since_idquot; type=quot;xs:stringquot; paramType=quot;queryquot; /> <key id=quot;idquot; type=quot;xs:stringquot; paramType=quot;pathquot; required=quot;truequot;/> </inputs> </select> </bindings> </table>
  • 24. You can write your own.
  • 25. And share them for others to use.
  • 27.
  • 29. <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <query xmlns:yahoo=quot;http://www.yahooapis.com/v1/base.rngquot; yahoo:count=quot;10quot; yahoo:created=quot;2009-02-11T03:16:48Zquot; yahoo:lang=quot;en-USquot; yahoo:updated=quot;2009-02-11T03:16:48Zquot; yahoo:uri=quot;http:// query.yahooapis.com/v1/yql?q=SELECT+*+%0AFROM+search.web+WHERE+query%3D %22ruby%22quot;> <diagnostics> <publiclyCallable>true</publiclyCallable> <url execution-time=quot;116quot;>http://boss.yahooapis.com/ysearch/web/ v1/ruby?format=xml&amp;start=0&amp;count=10</url> <user-time>119</user-time> <service-time>116</service-time> <build-version>851</build-version> </diagnostics> <results> <result xmlns=quot;http://www.inktomi.com/quot;> <abstract><![CDATA[<b>Ruby</b> originated in Japan during the mid-1990s and was initially developed and <b>...</b> <b>Ruby</b> supports multiple programming paradigms, including functional, object <b>...</ b>]]></abstract> <clickurl>http://lrd.yahooapis.com/ _ylc=X3oDMTQ4NWxyYWUxBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZ Ed5TkouTXNxZlNMQmkEcG9zAzEEc2VydmljZQNZU2VhcmNoV2ViBHNsawN0aXRsZQRzcmNwdml kA253RkNNVVBEQjJIMkxjVFRsQWt1ZVI0VXl6LkNJVW1TUXlBQUFLckk-/SIG=11tsuk1oo/ **http%3A//en.wikipedia.org/wiki/Ruby_(programming_language)</clickurl>
  • 30. { quot;queryquot;: { quot;countquot;:quot;10quot;, quot;createdquot;:quot;2009-02-11T03:20:22Zquot;, quot;langquot;:quot;en-USquot;, quot;updatedquot;:quot;2009-02-11T03:20:22Zquot;, quot;uriquot;:quot;http://query.yahooapis.com/v1/yql? q=SELECT+*+%0AFROM+search.web+WHERE+query%3D %22ruby%22quot;, quot;diagnosticsquot;: { quot;publiclyCallablequot;:quot;truequot;, quot;urlquot;: { quot;execution-timequot;:quot;109quot;,
  • 31. Specify callback with ‘callback’ for JSON-P.
  • 32. call({ quot;queryquot;: { quot;countquot;:quot;10quot;, quot;createdquot;:quot;2009-02-11T03:20:22Zquot;, quot;langquot;:quot;en-USquot;, quot;updatedquot;:quot;2009-02-11T03:20:22Zquot;, quot;uriquot;:quot;http://query.yahooapis.com/v1/yql? q=SELECT+*+%0AFROM+search.web+WHERE+query%3D %22ruby%22quot;, quot;diagnosticsquot;: { quot;publiclyCallablequot;:quot;truequot;, quot;urlquot;: { quot;execution-timequot;:quot;109quot;,
  • 33. http://query.yahooapis.com/v1/ public/yql?q=SELECT%20* %20%0AFROM%20search.web %20WHERE%20query%3D %22ruby%22 &format=json&callback=call
  • 34. Where is all this?
  • 37.
  • 39. I converted the GitHub Activity Badge today.
  • 40. Took me 5 minutes. http://github.com/ lachlanhardy/github- activity-badge/
  • 41. Oh! And I built this...
  • 42. http://streamslide.com http://github.com/ lachlanhardy/ streamslide/