{"id":3700,"date":"2018-11-13T13:30:31","date_gmt":"2018-11-13T12:30:31","guid":{"rendered":"https:\/\/moe.it.slotshaven.dk\/wp\/?p=3700"},"modified":"2024-09-02T15:06:15","modified_gmt":"2024-09-02T13:06:15","slug":"api-rita-js","status":"publish","type":"post","link":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/api-rita-js\/","title":{"rendered":"API: Rita.js"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/simmoe\/digidaktik\/tree\/master\/apis\/rita\">Github repo til dette indl\u00e6g&nbsp;<\/a><\/p>\n<h2>Hvad er et API?<\/h2>\n<p>Lad os sige vi er meteorologisk institut. Vi har s\u00e5 en hel masse data p\u00e5 lige s\u00e5 mange servere, og vi vil egentlig gerne give folk adgang til nogle af de data. Det kunne vi selvf\u00f8lgelig g\u00f8re ved at lave en hjemmeside, som yr.no eller dmi.dk &#8211; men vi iville selv skulle vedligeholde hjemmesiden og f\u00e5 alle id\u00e9erne til hvad data kan bruges til. I stedet kunne vi lave et API &#8211; et application programming interface &#8211; som giver folk udefra (med lidt programmeringserfaring) adgang til vores data p\u00e5 en overskuelig m\u00e5de.<\/p>\n<p>Vi kunne ogs\u00e5 sige vi havde lavet noget software &#8211; fx Google sheets. Igen kunne det nemt t\u00e6nkes at folk udefra havde gode id\u00e9er til hvordan funktionerne kunne bruges, s\u00e6ttes op og kombineres. Vi laver alts\u00e5 et API. Eller lad os sige vi var Spotify, eller Twitter, eller&#8230;<\/p>\n<p>API&#8217;er er den smarte m\u00e5de at tilg\u00e5 informationer og funktioner p\u00e5 eksterne produkter. Det kr\u00e6ver at firmaet vedligeholder et API &#8211; men det er der overraskende mange der g\u00f8r. I disse tutorials skal vi se p\u00e5 hvordan man tilg\u00e5r forskellige API&#8217;er med javascript, og bruger dem til at konstruere sm\u00e5 hjemmesider med superkr\u00e6fter.<\/p>\n<p>[otw_shortcode_info_box border_type=&#8221;bordered&#8221; border_style=&#8221;bordered&#8221; shadow=&#8221;shadow-outer&#8221; background_color_class=&#8221;otw-silver&#8221; ]An Application Programming Interface (API), is an unfortunately overloaded term which might refer to several different things depending on the context. Wikipedia gives a broad definition: \u201cIn computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components\u201d (Links and emphasis original to Wikipedia) In general, APIs define the rules that programmers must follow in order to interact with a programming language, a software library, or any other software tool.<\/p>\n<p><a href=\"https:\/\/medium.com\/@TebbaVonMathenstien\/what-is-an-api-and-why-should-i-use-one-863c3365726b\">L\u00e6s mere her<\/a><\/p>\n<p>[\/otw_shortcode_info_box]<\/p>\n<h2>Rita.js<\/h2>\n<p>Vi starter med <a href=\"https:\/\/rednoise.org\/rita\/\">Rita.js &#8211; et interessant og legende API<\/a>, som g\u00f8r det muligt at eksperimentere og analysere tekst p\u00e5 en hel masse m\u00e5der.&nbsp; Vi g\u00f8r det imidlertid p\u00e5 en lidt anden m\u00e5de end vi plejer.<\/p>\n<p><a href=\"https:\/\/minhaskamal.github.io\/DownGit\/#\/home?url=https:\/\/github.com\/simmoe\/digidaktik\/tree\/master\/apis\/rita\">Download skabelonen her<\/a> og \u00e5bn index.html i din browser. \u00c5bn derefter browserens konsol. Bem\u00e6rk at scriptet rita.js er inkluderet i projektet og lige g\u00f8r opm\u00e6rksom p\u00e5 sig selv.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3704\" src=\"https:\/\/moe.it.slotshaven.dk\/wp\/wp-content\/uploads\/2018\/11\/screen-1024x1012.jpeg\" alt=\"\" width=\"1024\" height=\"1012\"><\/p>\n<p>I konsollen kan man faktisk skrive javascript direkte &#8211; og fordi scriptet RITA er inkluderet, kan vi bruge funktionerne i API&#8217;et direkte. Vi kunne lige s\u00e5 godt skrive noget javascript i filen, men det er hurtigere at pr\u00f8ve nogle ting af her. Pr\u00f8v for eksempel at skrive f\u00f8lgende (ENTER efter hver s\u00e6tning):<\/p>\n<pre>var s = \"Some english sentence you make up yourself\"\nvar r = new RiString(s)\nr.pos()<\/pre>\n<p>F\u00f8rst laver vi en s\u00e6tning. Derefter opretter vi en instans af objektet RiString &#8211; den vigtigste klasse i rita.js, som indeholder et v\u00e6ld af funktioner til at analysere og generere tekst. Til sidst kalder vi funktionen pos() p\u00e5 instansen r. Tilbage f\u00e5r vi f\u00f8lgende:<\/p>\n<pre>(7)&nbsp;[\"dt\", \"nn\", \"nn\", \"prp\", \"vbp\", \"in\", \"prp\"]<\/pre>\n<p>Det vi f\u00e5r tilbage er i virkeligheden et array, som fort\u00e6ller noget om den tekst vi har skrevet. Navnlig at teksten har 7 ord, og er komponeret af:<\/p>\n<ol>\n<li>dt Determiner<\/li>\n<li>nn Noun, singular or mass<\/li>\n<li>nn Noun, singular or mass<\/li>\n<li>prp Personal pronoun<\/li>\n<li>vbp Verb, non-3rd person singular present<\/li>\n<li>in Preposition or subordinating conjunction<\/li>\n<li>prp Personal pronoun<\/li>\n<\/ol>\n<p>Funktionen pos() st\u00e5r for Parts Of Speech. Pos() og <a href=\"https:\/\/rednoise.org\/rita\/reference\/index.php\">alle de andre funktioner i Rita.js finder vi i referencen her<\/a>.<\/p>\n<p>[otw_shortcode_info_box border_type=&#8221;bordered&#8221; border_style=&#8221;bordered&#8221; shadow=&#8221;shadow-outer&#8221;]Name pos Description Returns an array of part-of-speech tags (from the PENN tag set), one per word, using RiTa.tokenize() and RiTa.getPosTags() Syntax pos(); Returns String[] strings of pos, one per word Example myRiString = new RiString(&#8220;He ate the apple.&#8221;); myRiString.pos(); \/\/ returns -&gt; prp vbd dt nn . Platform Java \/ Javascript[\/otw_shortcode_info_box]<\/p>\n<p>Pr\u00f8v fx<\/p>\n<ul>\n<li>r.analyze()<\/li>\n<li>RiTa.rhymes(&#8220;cat&#8221;)<\/li>\n<li>RiTa.getSyllables(&#8220;apple&#8221;);<\/li>\n<li>RiTa.similarBySound(&#8220;happy&#8221;);<\/li>\n<\/ul>\n<p>Osv osv.<\/p>\n<h2>Lad os lave et lille program<\/h2>\n<p>Lad os pr\u00f8ve at modificere koden i sketch.js og lave et lille program. For eksempel et program der tager et eller flere ord som input, tjekker om de er navneord &#8211; og til sidst kommer med li liste med rimeord. Pr\u00f8v at f\u00f8lge koden til sketch.js herunder:<\/p>\n<div>\n<pre>var input;\n\nfunction setup() {\n\n    input = createInput('Gimme some nouns...');\n\n    input.size(400);\n\n    input.changed(ritaProcess);\n\n}\n\nfunction ritaProcess(){\n\n    var s = input.value();\n\n    var r = new RiString(s);\n\n    var w = r.words();\n\n    var rhymes = \"\";\n\n    w.forEach(element =&gt; {\n\n        if(&nbsp;RiTa.isNoun(element)) {\n\n            rhymes = rhymes + RiTa.rhymes(element);\n\n        }      \n\n    });\n\n    var newStr = rhymes.replace(\/,\/g, ' ');\n\n    createP(newStr);\n\n}<\/pre>\n<h2>Leksikon<\/h2>\n<p>Se meget mere RiTa her<\/p>\n<p><iframe loading=\"lazy\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/lIPEvh8HbGQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<h2>Opgave<\/h2>\n<p>Lav et lille program&nbsp; som anvender RiTa p\u00e5 en sjov, nyttig eller kreativ m\u00e5de. Beskriv id\u00e9en og implementer.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Github repo til dette indl\u00e6g&nbsp; Hvad er et API? Lad os sige vi er meteorologisk institut. Vi har s\u00e5 en hel masse data p\u00e5 lige s\u00e5 mange servere, og vi vil egentlig gerne give folk adgang til nogle af de data. Det kunne vi selvf\u00f8lgelig g\u00f8re ved at lave en hjemmeside, som yr.no eller dmi.dk &#8230; <a title=\"API: Rita.js\" class=\"read-more\" href=\"https:\/\/digitalteknik.slotshaven.it\/wordpress\/api-rita-js\/\" aria-label=\"Read more about API: Rita.js\">L\u00e6s mere <\/a><\/p>\n","protected":false},"author":3,"featured_media":3702,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[28],"class_list":["post-3700","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ikke-kategoriseret","tag-api"],"_links":{"self":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/posts\/3700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/comments?post=3700"}],"version-history":[{"count":1,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/posts\/3700\/revisions"}],"predecessor-version":[{"id":4743,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/posts\/3700\/revisions\/4743"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/media?parent=3700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/categories?post=3700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digitalteknik.slotshaven.it\/wordpress\/wp-json\/wp\/v2\/tags?post=3700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}