API: Rita.js

Github repo til dette indlæg 

Hvad er et API?

Lad os sige vi er meteorologisk institut. Vi har så en hel masse data på lige så mange servere, og vi vil egentlig gerne give folk adgang til nogle af de data. Det kunne vi selvfølgelig gøre ved at lave en hjemmeside, som yr.no eller dmi.dk – men vi iville selv skulle vedligeholde hjemmesiden og få alle idéerne til hvad data kan bruges til. I stedet kunne vi lave et API – et application programming interface – som giver folk udefra (med lidt programmeringserfaring) adgang til vores data på en overskuelig måde.

Vi kunne også sige vi havde lavet noget software – fx Google sheets. Igen kunne det nemt tænkes at folk udefra havde gode idéer til hvordan funktionerne kunne bruges, sættes op og kombineres. Vi laver altså et API. Eller lad os sige vi var Spotify, eller Twitter, eller…

API’er er den smarte måde at tilgå informationer og funktioner på eksterne produkter. Det kræver at firmaet vedligeholder et API – men det er der overraskende mange der gør. I disse tutorials skal vi se på hvordan man tilgår forskellige API’er med javascript, og bruger dem til at konstruere små hjemmesider med superkræfter.

[otw_shortcode_info_box border_type=”bordered” border_style=”bordered” shadow=”shadow-outer” background_color_class=”otw-silver” ]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: “In 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” (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.

Læs mere her

[/otw_shortcode_info_box]

Rita.js

Vi starter med Rita.js – et interessant og legende API, som gør det muligt at eksperimentere og analysere tekst på en hel masse måder.  Vi gør det imidlertid på en lidt anden måde end vi plejer.

Download skabelonen her og åbn index.html i din browser. Åbn derefter browserens konsol. Bemærk at scriptet rita.js er inkluderet i projektet og lige gør opmærksom på sig selv.

I konsollen kan man faktisk skrive javascript direkte – og fordi scriptet RITA er inkluderet, kan vi bruge funktionerne i API’et direkte. Vi kunne lige så godt skrive noget javascript i filen, men det er hurtigere at prøve nogle ting af her. Prøv for eksempel at skrive følgende (ENTER efter hver sætning):

var s = "Some english sentence you make up yourself"
var r = new RiString(s)
r.pos()

Først laver vi en sætning. Derefter opretter vi en instans af objektet RiString – den vigtigste klasse i rita.js, som indeholder et væld af funktioner til at analysere og generere tekst. Til sidst kalder vi funktionen pos() på instansen r. Tilbage får vi følgende:

(7) ["dt", "nn", "nn", "prp", "vbp", "in", "prp"]

Det vi får tilbage er i virkeligheden et array, som fortæller noget om den tekst vi har skrevet. Navnlig at teksten har 7 ord, og er komponeret af:

  1. dt Determiner
  2. nn Noun, singular or mass
  3. nn Noun, singular or mass
  4. prp Personal pronoun
  5. vbp Verb, non-3rd person singular present
  6. in Preposition or subordinating conjunction
  7. prp Personal pronoun

Funktionen pos() står for Parts Of Speech. Pos() og alle de andre funktioner i Rita.js finder vi i referencen her.

[otw_shortcode_info_box border_type=”bordered” border_style=”bordered” shadow=”shadow-outer”]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(“He ate the apple.”); myRiString.pos(); // returns -> prp vbd dt nn . Platform Java / Javascript[/otw_shortcode_info_box]

Prøv fx

  • r.analyze()
  • RiTa.rhymes(“cat”)
  • RiTa.getSyllables(“apple”);
  • RiTa.similarBySound(“happy”);

Osv osv.

Lad os lave et lille program

Lad os prøve 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 – og til sidst kommer med li liste med rimeord. Prøv at følge koden til sketch.js herunder:

var input;

function setup() {

    input = createInput('Gimme some nouns...');

    input.size(400);

    input.changed(ritaProcess);

}

function ritaProcess(){

    var s = input.value();

    var r = new RiString(s);

    var w = r.words();

    var rhymes = "";

    w.forEach(element => {

        if( RiTa.isNoun(element)) {

            rhymes = rhymes + RiTa.rhymes(element);

        }      

    });

    var newStr = rhymes.replace(/,/g, ' ');

    createP(newStr);

}

Leksikon

Se meget mere RiTa her

Opgave

Lav et lille program  som anvender RiTa på en sjov, nyttig eller kreativ måde. Beskriv idéen og implementer.

Leave a comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *