Oddqueries-käskyt ovat kaikki silkkaa JavaScriptiä, jotka annetaan erillisessä tekstikentässään ja käynnistetään enteriä painamalla. Vaihtoehtona ovat, että käskyn tulokset näytetään joko kaaviona, joka sekin aikajanallinen, tai tekstuaalisesti. Annettu JavaScript-pohjainen käsky suoritetaan käytännössä käyttäen ohjelmointikielen eval-metodia. Seuraavassa esiteltyjen oddqueries-käskyjen lisäksi voi syötteeksi antaa myös "clear()", joka arvatenkin palauttaa jonkinlaiseen lähtötilanteeseen.

Syntaksi

Tekstuaalisia tuloksia antaville tai sellaista valmisteleville käskyille:

  • showManualResults(anyhtml)
  • makeExportableItems(dataarray, dateformattype, shouldsplittitletext)
  • makeGroupItemVarieties(dataarray, separator)

Kaaviollisia tuloksia tai sellaista valmisteleville käskyille:

  • makeOccasionalChart(dataarray)
  • addToOccasionalChart(dataarray, differentiatingindex, nopathdrawing)
  • addRangedToOccasionalChart(dataarray, differentiatingindex)
  • getSimilarGroupItems(groupname, searchstring, separator, regexpstr)
  • getGroupItemDateClusters(minutes, groupname, searchstring, separator, regexpstr)
  • getGroupItemDailyClusters(groupname, searchstring, separator, regexpstr)
  • getGroupItemClustersBetweenRangedGroupItem(groupname, rangedgroup, searchstring, separator, regexpstr)
  • getGroupItemClustersBetweenNonRangedGroupItem(groupname, nonrangedgroup, searchstring, separator, regexpstr)

Esimerkkikäskyjä

  • oddqueries.showManualResults(oddqueries.makeExportableItems(nutritionData, 1, false))
  • oddqueries.showManualResults(oddqueries.makeExportableItems(nutritionData, 2, true))
  • oddqueries.showManualResults(oddqueries.makeGroupItemVarieties(nutritionData,","))
  • oddqueries.makeOccasionalChart(oddqueries.getGroupItemClustersBetweenRangedGroupItem("stress", "sleeping", "10,20,30,40,50,60,70,80,90"))
kymmenellä jaollisia lukuja annettu tietokyselyn tarkentimena
  • oddqueries.makeOccasionalChart(oddqueries.getGroupItemClustersBetweenRangedGroupItem("stress", "sleeping", "5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95"))
annettu kaikki mahdolliset esiintyvät luvut tietokyselyn tarkentimena
  • oddqueries.makeOccasionalChart(oddqueries.getGroupItemClustersBetweenRangedGroupItem("stress", "sleeping", null, null, "[0-9]{1,3}"))
annettu tietokyselyn tarkennin säännöllisenä lausekkeena
  • oddqueries.makeOccasionalChart(oddqueries.getGroupItemClustersBetweenNonRangedGroupItem("bloodpressure", "jogging", null, null, "^(1[0-2][0-9])"))
  • oddqueries.addToOccasionalChart(new Array(oddqueries.getSimilarGroupItems("jogging")), 3, true)
Tietokyselyn palauttamat array-tyyppiset tietoklusterit eivät ole rakenteellisesti kovin merkittäviä, jos tietoa on niin vähän, että yhteen tietoklusteriin sijoittuu vain yksi tieto, sillä tuolloin tiedon esittäminenkin on paljolti toisiinsa liittymättömistä pisteistä koostuvaa, jotka edustavat tässä verenpaineen yläpainetta ylempien pisteiden osalta. Alemmat pisteet edustavat kaavion täydennykseksi lisättyjä lenkkeilyjen hetkiä. Koska metodi getSimilarGroupItems ei palauta vaadittuja sisäkkäisiä array:tä, metodin vastaus on kietaistu uuteen sellaiseen. Samaisen metodin boolean-arvo viimeisenä parametrinä tarkoittaa "älä piirrä klusterikohtaisia viivoja pisteiden välille".
  • oddqueries.makeOccasionalChart(oddqueries.getGroupItemDailyClusters("roomair", null, null, "^[0-9]{1,3} ppm ([0-9]{1,3},{1,3})"))
tietokyselyn tarkentimessa olevan säännöllisen lausekkeen avulla nimikkeiden tietystä osasta on osoitettu suluin se kohta, joka täsmäävistä nimikkeistä halutaan ottaa kaaviossa käytettäväksi, mikä tässä tarkoittaa huoneilman lämpötilaa (desimaalit jäävät pois lukuja käsiteltäessä pelkästään kokonaislukuina)
  • oddqueries.makeOccasionalChart(oddqueries.getGroupItemDailyClusters("roomair", null, null, "^([8-9][0-9][0-9]|1[0-9]{1,3})"))
  • oddqueries.addToOccasionalChart(oddqueries.getGroupItemDailyClusters("nutrition", "lettu"), 2)
Sinänsä ihan höpökysely tietokyselyksi, mutta tässä on otettu ikään kuin vakavaan tarkasteluun mahdollinen korrelaatio korkean huoneilman hiilidioksitason ja (jonkinlaisen) letun syömisen välillä. Metodilla getGroupItemDailyClusters vastauksena saadut tietoklusterit ovat päiväkohtaisia, mikä ilmaistaan tässä myös visuaalisesti.
  • oddqueries.makeOccasionalChart(oddqueries.getGroupItemClustersBetweenRangedGroupItem("symptoms", "sleeping", "lievä väsymys"))
Kaikkea tietoa ei voi esittää numeroarvoin, joten niiden sijainti y-akselilla on nollakohdassa kuten tässä oire "lievä väsymys" ajankohdan mukaan x-akselille sijoitettuna ja klusteroituna nukkumisen hetkiin perustuen.

Lisäselvyyttä tietokyselyiden tarkentimista

Tietokyselyn tarkentimina voi käyttää hakusanaa, hakusanarimpsua erotinmerkillä tai säännöllisiä lausekkeita. Nämä ovat identtisiä metodin palauttaman vastauksen osalta:

  • oddqueries.getGroupItemDateClusters(240, "nutrition", "juusto,tee")
  • oddqueries.getGroupItemDateClusters(240, "nutrition", "juusto,tee",",")
  • oddqueries.getGroupItemDateClusters(240, "nutrition", "juusto;tee",";")
  • oddqueries.getGroupItemDateClusters(240, "nutrition", null, null, "(tee|juusto)")

Valmisteleva datankäsittely metodilla getGroupItemDateClusters palauttaa array-tyyppisen tietoköntän, joka sisältää yhden tai useamman array-tyyppisen tietoklusterin, missä parametrina annettu minuutteja tarkoittava lukuarvo tarkoittaa ajallista miniväliä kahden eri klusterin välillä. Jos kyseinen aikaväli on niin suuri, ettei sellaista ajallista väliä käytettävissä olevassa datassa olekaan, kaikki palautuva tieto sijoittuu yhteen tietoklusteriin.

  • oddqueries.getGroupItemDateClusters(960, "nutrition", "juusto;tee", ";")
  • oddqueries.getGroupItemDateClusters(240, "nutrition", "juusto;tee", ";")
  • oddqueries.getGroupItemDateClusters(2000, "nutrition", "juusto;tee", ";")

Bugi vis.js:n timeline-moduulissa

Vaikka sellainen konfigurointi-optio on vis.js:n ohjeiden mukaan käytettävissä, millä saa kaaviollisen aikajanan toimimaan siten, että sekä sen vasemmalla, että oikealla puolella on erilliset y-akselit, tämä ominaisuus ei toimi, eikä näytä toimivan vis.js:n esittelysivuillakaan. Selittynee sillä, että vis.js kehittäminen on sen alkuperäisen tekijän toimesta lopetettu jo ajat sitten, eikä sen yhteisöllisesti edelleen kehitetty versio ole sekään päivittynyt pitkiin aikoihin. Pitänee ehkä joskus tehdä jossain määrin uusiksi jotain toista JavaScript-kirjastoa käyttäen.