Durch einen Artikel auf ReadWriteWeb (5 Great YQL One-Liners) bin ich nach langer Zeit mal wieder auf Yahoos YQL-Plattform gelandet und habe nicht schlecht gestaunt, was die Yahoo Query Language mittlerweile alles leistet (mehr über YQL hier). Ich hatte z.B. keine Ahnung, dass man auch eigene table definition schreiben kann und dass es auch schon eine ziemlich fleißige Community um diese Definitionen gibt.

Meine Favoriten sind:

Microformats

select * from microformats where url='http://wait-till-i.com'Code-Sprache: JavaScript (javascript)

…findet diverse Microformats. » Direct Link

Mehr dazu hier: SELECT * FROM microformats

OpenID

select * from openid.discover where normalizedId="http://www.yahoo.com/"Code-Sprache: JavaScript (javascript)

…klassische OpenID-Discovery. » Direct Link

select * from openid.yadis where uri="http://www.yahoo.com/"Code-Sprache: JavaScript (javascript)

…YADIS-Discovery. » Direct Link

…und es gibt noch ’ne Reihe anderer OpenID Queries… es sollte sogar möglich sein einen kompletten OpenID-Client mit YQL zu bauen.

OAuth

select * from oauth where uri='http://example.com' and consumerKey='asd123' and consumerSecret='zxc456' and callbackUri='http://example.com';Code-Sprache: JavaScript (javascript)

…sendet einen OAuth-Request. » Direct Link

pubsubhubbub

insert into pubsubhubbub.publisher (hub_url, topic_url) values ('http://pubsubhubbub.appspot.com/publish', 'http://developer.yahoo.com')Code-Sprache: JavaScript (javascript)

…sendet ein Update an das angegebene Hub. » Direct Link

Webfinger

select * from webfinger where account='pfefferle@gmail.com'Code-Sprache: JavaScript (javascript)

…Webfinger-Discovery. » Direct Link

OpenSocial

select * from opensocial.peopleCode-Sprache: JavaScript (javascript)

…sendet eine OpenSocial People-Anfrage. » Direct Link

Social Graph API

select * from socialgraph.lookup where q = "notiz.blog" AND edo = "1"Code-Sprache: JavaScript (javascript)

…ermöglicht Zugriff auf Googles Social Graph API. » Direct Link

Atom

select * from atom where url='https://notiz.blog/feed/atom'Code-Sprache: JavaScript (javascript)

…interpretiert Atom-Feeds mit allen möglichen Erweiterungen, beispielsweise der ActivityStreams-Extension. » Direct Link

Vielleicht bekomm‘ ich die Tage ja auch mal eine Query zusammen 🙂

Identify ist ein Firefox Addon entwickelt von Madgex (der Firma die z.B. auch den Microformats-Parser UfXtract entwickelt hat) welches, mit Hilfe von Googles Social Graph API und Yahoos YQL, Profil-Informationen und den Sozialen Graphen des Webseiten-Eigners anzeigt.

Kontakt at notizBlog - a private weblog written by Matthias Pfefferle.jpg

Eigentlich ist das Plugin nicht viel mehr als eine Spielerei, zeigt aber sehr eindrucksvoll was mit Microformats alles möglich ist und dass semantisches HTML vielleicht doch noch zu einer echte alternative zu RDF/OWL werden könnte. Auf der anderen Seite ist es aber schon fast beängstigend was das Netzt so alles über mich weiß und mit wie wenig Aufwand so eine Übersicht über mein Web-Leben erstellt werden kann.

Für nicht Firefox-Benutzer gibt es mit dem Social Graph Explorer auch noch eine Online-Version, die ganz ähnliche Ergebnisse liefert.

Das Addon lässt sich nach der Installation übrigens mit Alt i auf Windows bzw. Ctrl i auf Mac OS X starten.

YQL (Yahoo! Query Language) ist eine Art SQL-Sprache um HTML- oder XML-Inhalte abzufragen. Oder wie es Markus Spath so schön formuliert hat:

Yahoo verwandelt das Web mit der Yahoo Query Language in eine gigantische Datenbank.

Wer bisher schon etwas Erfahrung mit z.B. MySQL gemacht hat, sollte auch mit YQL keine weiteren Probleme haben. Ein Beispiel:

SELECT * FROM feed WHERE url='https://notiz.blog/feed/'Code-Sprache: JavaScript (javascript)

Übersetzt: Gib mir (SELECT) alle Inhalte (*) des RSS-Feeds (FROM feed) die unter der URL: https://notiz.blog zu finden sind (url='https://notiz.blog/feed/').

Das Spannende (weshalb ich es überhaupt erst erwähne) an YQL ist aber der gerade angekündigte Microformats Support, der die Query Language zu einem vollwertigen Microformats Parser macht.

Über den Befehl:

SELECT * FROM microformats WHERE url='https://notiz.blog/contact/'Code-Sprache: JavaScript (javascript)

werden Beispielsweise alle Microformats meiner Kontaktseite geparst und mir in einem standardisierten XML oder JSON Format bereit gestellt.

Großartig! Was Yahoo! im Zuge der Open Strategy mit Systemen wie dem SearchMonkey oder YQL geschaffen hat, ist ein echter Traum für jeden Webentwickler und Open Standards Evangelist! Ich hoffe einer der nächste Schritte wird sein, die YQL (als Alternative zu XSLT) auch in den SearchMonkey zu integrieren.

Ach ja… die YQL-Console bietet übrigens eine schöne Alternative zur YQL-Dokumentation… einfach mal einige bekannte SQL-Befehle eingeben und schauen was passiert (so ähnlich habe ich mir damals auch HTML beigebracht) 😉