{"id":11246,"date":"2015-01-14T05:03:12","date_gmt":"2015-01-13T18:03:12","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=11246"},"modified":"2015-05-13T14:04:04","modified_gmt":"2015-05-13T04:04:04","slug":"yahoo-yql-web-service-json-thesaurus-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/yahoo-yql-web-service-json-thesaurus-tutorial\/","title":{"rendered":"Yahoo YQL Web Service JSON Thesaurus Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/Ajax_yql_thesaurus.html\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Yahoo YQL Web Service JSON Thesaurus Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/Thesaurus.jpg\" title=\"Yahoo YQL Web Service JSON Thesaurus Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Yahoo YQL Web Service JSON Thesaurus Tutorial<\/p><\/div>\n<p>Here is a tutorial that might be re-introducing you to the Yahoo Web Services called YQL, building on previous ones here at this <a href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=YQL' title='Yahoo YQL tutorials here'>blog<\/a>.   The name is the way it is because it simplified the API aspects of its functionality for the developer to concentrate on SQL, and I&#8217;m really supportive of this concept.  You don&#8217;t have to output in JSON, as other data forms like XML are acceptable.  Let&#8217;s see what Wikipedia says about YQL below. <\/p>\n<blockquote>\n<p>Yahoo! Query Language (YQL) is an SQL-like query language created by Yahoo! as part of their Developer Network. YQL is designed to retrieve and manipulate data from APIs through a single Web interface, thus allowing mashups that enable developers to create their own applications.[1]<\/p>\n<p>Initially launched in October 2008 with access to Yahoo APIs,[2] February 2009 saw the addition of open data tables from third parties such as Google Reader, the Guardian, and The New York Times.[3] Some of these APIs still require an API key to access them. On April 29th of 2009, Yahoo introduced the capability to execute the tables of data built through YQL using JavaScript run on the company&#8217;s servers for free.[3]<\/p>\n<\/blockquote>\n<p>So this tutorial uses a YQL web service into the data emanating from its links to the <a target=_blank title='altervista thesaurus ... thanks' href='http:\/\/thesaurus.altervista.org\/'>altervista<\/a> thesaurus web service database with Yahoo YQL website &#8230; thanks.  For the altervista thesaurus database usage it is best to request a key for your web service queries.  You fill in a word (or two, or three) of interest to search for like-minded words.<\/p>\n<p>And what is a thesaurus?   Read what Wikipedia says <a target=_blank title='Thesaurus information from Wikipedia ... thanks' href='http:\/\/en.wikipedia.org\/wiki\/Thesaurus'>here<\/a> but, basically, it can be thought of as a repository of a language&#8217;s list of words of a similar meaning to the word of your interest.   It is a great tool for people learning a language foreign to them, especially regarding their vocabulary.<\/p>\n<p>The two big PHP functions of use (as distinct from an Ajax approach, requiring no PHP &#8230; read on) for this are:<\/p>\n<ul>\n<li><a target=_blank title='file_get_contents' href='http:\/\/us1.php.net\/file_get_contents'>file_get_contents<\/a><\/li>\n<li><a target=_blank title='json_decode' href='http:\/\/php.net\/manual\/en\/function.json-decode.php'>json_decode<\/a> &#8230; when there is a data structure of any complexity, this function is highly recommended, but for today&#8217;s tutorial we do not use it, and take the opportunity to show you a solution using <a target=_blank title='Ajax information from Wikipedia ... thanks' href='http:\/\/en.wikipedia.org\/wiki\/Ajax_%28programming%29'>Ajax<\/a> that requires no PHP &#8230;  link to some downloadable Ajax inspired HTML programming source code which you may want to rename to <a target=_blank title='yql_thesaurus.html' href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/Ajax_yql_thesaurus.html-GETME\">Ajax_yql_thesaurus.html<\/a> which changes from the HTML supervising PHP approach as per <a target=_blank title='Ajax_yql_thesaurus.html changes' href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/Ajax_yql_thesaurus.html-GETME\">Ajax_yql_thesaurus.html<\/a> (and then there is an <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/Ajax_yql_thesaurus.html\" title=\"Click picture\">Ajax live run<\/a>)<\/li>\n<\/ul>\n<p>Good links for information regarding this tutorial (thanks) are:<\/p>\n<ul>\n<li><a target=_blank href='http:\/\/developer.yahoo.com\/yql\/guide\/two-minute-tutorial.html' title='YQL Two Minute Tutorial'>YQL Two Minute Tutorial<\/a> from Yahoo<\/li>\n<li><a target=_blank href='http:\/\/en.wikipedia.org\/wiki\/Yahoo!_Query_Language' title='Yahoo! Query Language'>Yahoo! Query Language<\/a> from Wikipedia, as per quote above<\/li>\n<li><a target=_blank href='http:\/\/developer.yahoo.com\/yql\/' title='YQL Home Page'>YQL Home Page<\/a> from Yahoo<\/li>\n<li><a target=_blank href='https:\/\/developer.yahoo.com\/yql\/console\/?q=select%20*%20from%20flickr.photos.interestingness%2820%29&#038;env=store:\/\/datatables.org\/alltableswithkeys#h=select+*+from+thesaurus+where+key%3D%22test_only%22+and+word%3D%22peace%22+and+language%3D%22en_US%22' title='YQL thesaurus help'>YQL thesaurus help<\/a> from Yahoo<\/li>\n<li><a target=_blank title='YQL JSON Parsing Help' href='http:\/\/developer.yahoo.com\/forum\/YQL\/yql-query-intermittently-returns-no-results\/1374521623593-fa4a3519-10ae-4a17-8fd4-6de45a159d6f'>YQL JSON Parsing Help<\/a> from YQL forum<\/li>\n<\/ul>\n<p>Another tool you should have in your armoury for jobs like this is the online JSON validator <a target=_blank title='JSON validator online' href='http:\/\/jsonlint.com\/'>here<\/a>.  A generic JSON approach to issues could be:<\/p>\n<ol>\n<li>Type the URL you were given into a web browser address bar and have a look at it<\/li>\n<li>Type the URL you were given into http:\/\/jsonlint.com\/ and have it validated<\/li>\n<li>Understand in your own mind what would be different about 1. to make it suitable<\/li>\n<li>Incorporate findings of 3. into massaging of data between file_get_contents and json_decode<\/li>\n<\/ol>\n<p>Here is a link to some downloadable HTML programming source code which you may want to rename to <a target=_blank title='yql_thesaurus.html' href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/yql_thesaurus.html_GETME\">yql_thesaurus.html<\/a> which calls some downloadable PHP programming source code which you may want to rename to <a target=_blank title='yql_thesaurus.php' href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/yql_thesaurus.php_GETME\">yql_thesaurus.php<\/a> (and then there is a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/yql_thesaurus.html\" title=\"Click picture\">PHP live run<\/a>).<\/p>\n<p>We thank the following free online dictionaries &#8230;<\/p>\n<ul>\n<li><a target=_blank href=\"http:\/\/www.thefreedictionary.com\/\">English<\/a><\/li>\n<li><a target=_blank title=\"French\" href=\"http:\/\/www.systranet.com\/dictionary\/\">French<\/a><\/li>\n<li><a target=_blank title=\"German\" href=\"http:\/\/www.dict.cc\/\">German<\/a><\/li>\n<li><a target=_blank title=\"Italian\" href=\"http:\/\/www.wordreference.com\/iten\/\">Italian<\/a><\/li>\n<li><a target=_blank title=\"Spanish\" href=\"http:\/\/www.wordreference.com\/es\/en\/translation.asp\">Spanish<\/a><\/li>\n<\/ul>\n<p>Stay tuned for an interesting blog posting tomorrow which combines the new thesaurus functionality of today&#8217;s contribution, along with the functionality <i>&#8220;smarts&#8221;<\/i> of yesterday&#8217;s <a target=_blank title='PHP\/CSS Sentence Auxiliary Verb Game Tutorial' href='http:\/\/www.rjmprogramming.com.au\/wordpress\/?p=11513'>PHP\/CSS Sentence Auxiliary Verb Game Tutorial<\/a>.<\/p>\n<p><b>Stop Press<\/b><\/p>\n<p>As of 14th May 2015 a blog posting called <a target=_blank title='HTML\/Javascript Homonyms Game Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-homonyms-game-tutorial\/'>HTML\/Javascript Homonyms Game Tutorial<\/a> inspired a &#8220;tweak&#8221; to the arrangement above such that a call of the web application above such as <a target=_blank title='Sense of Humour thesaurus result' href='http:\/\/www.rjmprogramming.com.au\/PHP\/YQL\/Thesaurus\/Ajax_yql_thesaurus.html?startwith=sense%20of%20humour'>Sense of Humour<\/a> will cause the display of a lookup during the &#8220;onload&#8221; event, as required.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d11246' onclick='var dv=document.getElementById(\"d11246\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=dictionary\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d11246' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Here is a tutorial that might be re-introducing you to the Yahoo Web Services called YQL, building on previous ones here at this blog. The name is the way it is because it simplified the API aspects of its functionality &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/yahoo-yql-web-service-json-thesaurus-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,8,12,13,37],"tags":[69,292,326,396,932,997,1200,1269,1319,1412,1487,1491],"class_list":["post-11246","post","type-post","status-publish","format-standard","hentry","category-ajax","category-data-integration","category-elearning","category-esl","category-tutorials","tag-ajax","tag-data-integration-2","tag-dictionary","tag-esl","tag-php","tag-programming","tag-stop-press","tag-thesaurus","tag-tutorial","tag-web-service","tag-yahoo","tag-yahoo-yql"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/11246"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=11246"}],"version-history":[{"count":1,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/11246\/revisions"}],"predecessor-version":[{"id":14800,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/11246\/revisions\/14800"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=11246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=11246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=11246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}