Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
O loʻo ou taʻu atu ia te oe mai aafiaga patino le mea na aoga i fea ma o afea. O le aotelega ma le suʻesuʻega, ina ia manino pe o le a ma le mea e mafai ona e eli atili ai - ae o loʻo ia te aʻu lava le poto masani patino, atonu e matua ese lava mea uma mo oe.

Aisea e taua ai le iloa ma mafai ona fa'aoga gagana fa'afesili? I lona autu, Fa'asaienisi Fa'amatalaga e tele vaega taua o galuega, ma o le mea muamua ma sili ona taua (a aunoa ma lea, e mautinoa e leai se mea e aoga!) O le mauaina po'o le su'eina o fa'amaumauga. O le tele o taimi, o faʻamaumauga o loʻo nofo i se mea i se tulaga ma e manaʻomia ona "toe maua mai" mai iina. 

Ole gagana ole fesili e fa'atagaina oe e su'e mai fa'amaumauga nei! Ma o le asō o le a ou taʻu atu ia te oe e uiga i na gagana fesili na aoga ia te aʻu ma o le a ou taʻu atu ia te oe ma faʻaali atu ia te oe le mea ma pe faʻapefea tonu - aisea e manaʻomia ai le suʻesuʻe.

E tolu poloka autu o ituaiga faʻamatalaga faʻamatalaga, lea o le a tatou talanoaina i lenei tusiga:

  • O gagana fesili "Standard" o mea ia e masani ona malamalama i ai pe a talanoa e uiga i se gagana fesili, pei ole algebra relational poʻo le SQL.
  • Gagana fesili tusitusi: mo se faʻataʻitaʻiga, Python mea pandas, numpy poʻo le atigi tusitusiga.
  • Su'esu'e gagana mo kalafi malamalama ma fa'amaumauga kalafi.

O mea uma o loʻo tusia iinei e naʻo se poto masani patino, mea na aoga, faʻatasi ai ma se faʻamatalaga o tulaga ma "pe aisea na manaʻomia ai" - e mafai e tagata uma ona taumafai pe faʻafefea ona oʻo mai tulaga faʻapena ia te oe ma taumafai e sauniuni muamua mo i latou e ala i le malamalama i nei gagana ​ae e te le'i talosaga (faanatinati) i se poloketi po'o le o'o foi i se poloketi pe a mana'omia.

"Tulaga masani" gagana fesili

O gagana fesili masani e sa'o i le uiga e masani ona tatou mafaufau i ai pe a tatou talanoa e uiga i fesili.

Algebra sootaga

Aisea e manaomia ai le algebra relational i aso nei? Ina ia maua se malamalama lelei pe aisea e faʻatulagaina ai gagana fesili i se auala patino ma faʻaaogaina ma le iloa, e tatau ona e malamalama i le autu o loʻo faʻavae ai.

O le a le algebra sootaga?

O le fa'amatalaga aloa'ia e fa'apea: o le algebra feso'ota'iga ose faiga tapuni o fa'agaioiga i luga o so'oga i se fa'ata'ita'iga fa'amaumauga o feso'ota'iga. A fa'apena sina fa'aletagata, o se faiga lea o fa'agaioiga i luga o laulau e fa'apea o le taunu'uga o se laulau.

Va'ai galuega fa'afeso'ota'i uma i totonu lenei tusiga mai Habr - o iinei matou te faʻamatalaina pe aisea e tatau ai ona e iloa ma le mea e sau ai.

Aisea?

Amata ona malamalama po o le a le uiga o gagana fesili ma pe o a galuega o loʻo i tua o faʻamatalaga i gagana faʻapitoa fesili e masani ona maua ai se malamalamaga loloto i mea e aoga i gagana fesili ma pe faʻafefea.

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
Aveina mai lenei tala. O se faʻataʻitaʻiga o se taʻaloga: faʻatasi, lea e faʻapipiʻi laulau.

Mea mo su'esu'ega:

Lelei folasaga vasega mai Stanford. I se tulaga lautele, o loʻo i ai le tele o mea i luga ole algebra fesoʻotaʻiga ma aʻoaʻoga - Coursera, Udacity. E iai foʻi le tele o mea i luga ole laiga, e aofia ai le lelei a'oa'oga fa'apitoa. O la'u fautuaga patino: e tatau ona e malamalama lelei i le algebra relational - o le faavae lea o faavae.

SQL

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
Aveina mai lenei tusiga.

O le SQL o se faʻatinoga o le algebra fesoʻotaʻiga - faʻatasi ai ma se faʻamatalaga taua, SQL e faʻaalia! O lona uiga, pe a tusia se fesili i le gagana o le algebra relational, e te taʻu moni lava pe faʻapefea ona faʻatatau - ae faʻatasi ai ma le SQL e te faʻamaonia le mea e te manaʻo e faʻapipiʻi, ona faʻatupuina lea e le DBMS (aoga) faʻamatalaga i le gagana o le algebra relational (latou). tutusa ua iloa ia i tatou o Codd's theorem).

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
Aveina mai lenei tusiga.

Aisea?

Relational DBMSs: Oracle, Postgres, SQL Server, ma isi o loʻo toetoe lava i soo se mea ma o loʻo i ai se avanoa maualuga tele e tatau ona e fegalegaleai ma i latou, o lona uiga e tatau ona e faitau le SQL (lea e foliga mai) pe tusi ( e le taumate foi).

O mea e faitau ma su'esu'e

E tusa ai ma sootaga tutusa o loʻo i luga (e uiga i le algebra relational), o loʻo i ai le tele o meafaitino, mo se faʻataʻitaʻiga, lenei.

I le auala, o le a le NoSQL?

"E taua le toe faamamafaina o le faaupuga "NoSQL" e matua tupu fua lava ma e leai se faʻamatalaga masani poʻo se faʻalapotopotoga faʻasaienisi i tua atu." E fetaui se tusiga i luga o Habr.

O le mea moni, na iloa e tagata e le manaʻomia se faʻataʻitaʻiga atoatoa e foia ai le tele o faʻafitauli, aemaise lava mo i latou o loʻo i ai, mo se faʻataʻitaʻiga, e taua tele le faʻatinoga ma o nisi o fesili faigofie faʻatasi ma le faʻapipiʻiina o loʻo puleaina - lea e taua ai le vave faʻatatau metrics ma tusi i latou i le database, ma o le tele o vaega e fesoʻotaʻi e le gata ina le manaʻomia, ae faʻaleagaina foi - aisea e faʻavasega ai se mea pe afai o le a faʻaleagaina ai le mea sili ona taua mo i tatou (mo nisi galuega patino) - gaosiga?

E le gata i lea, e masani ona manaʻomia ni faʻataʻitaʻiga fetuutuunai nai lo le faʻatulagaina o le numera o le faʻataʻitaʻiga masani - ma e matua faafaigofieina ai le atinaʻeina o talosaga pe a taua tele le faʻaogaina o le faiga ma amata galue vave, faʻagaoioia taunuuga - poʻo le schema ma ituaiga o faʻamaumauga teuina. e le taua tele.

Mo se faʻataʻitaʻiga, o loʻo matou fatuina se faiga faʻapitoa ma manaʻo e teu faʻamatalaga i luga o se vaega faʻapitoa faʻatasi ai ma nisi faʻamatalaga meta - atonu matou te le iloa uma fanua ma naʻo le teuina o le JSON mo faʻamaumauga taʻitasi - e tuʻuina mai ia i matou se siosiomaga sili ona fetuutuunai mo le faʻalauteleina o faʻamaumauga. faʻataʻitaʻiga ma vave faʻasolosolo - o lea i lenei tulaga, NoSQL o le a sili atu ona lelei ma sili atu ona mafai ona faitau. Faʻataʻitaʻiga faʻamatalaga (mai se tasi o aʻu galuega faatino lea sa i ai NoSQL i le mea sa manaʻomia).

{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"Джонни Кэш","ru"],
"en_wiki_pagecount":2338861}

E mafai ona e faitau atili iinei e uiga i le NoSQL.

O le a le mea e su'esu'e?

O iinei, nai lo lena, e manaʻomia lou suʻesuʻeina maeʻaeʻa o lau galuega, o a mea o loʻo ia te ia ma poʻo a NoSQL system o loʻo avanoa e fetaui ma lenei faʻamatalaga - ona amata lea ona suʻesuʻe lenei faiga.

Gagana Fesili Tusitusi

I le taimi muamua, e foliga mai, o le a le mea e fai e le Python i le lautele - o se gagana polokalame, ae le o ni fesili.

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga

  • O Pandas e moni lava o se naifi Suiselani Army o Faʻamatalaga Saienisi; o le tele o suiga o faʻamatalaga, faʻapipiʻi, ma isi mea e tupu i totonu.
  • Numpy - fua fa'atatau, matrices ma le algebra laina iina.
  • Scipy - e tele le numera i totonu o lenei afifi, aemaise lava faʻamaumauga.
  • Jupyter lab - tele su'esu'ega su'esu'ega fa'amaumauga e fetaui lelei i totonu o komepiuta feavea'i - aoga e iloa.
  • Talosaga - galue ma le fesoʻotaʻiga.
  • Pyspark e sili ona lauiloa i inisinia faʻamatalaga, e foliga mai e tatau ona e fegalegaleai ma lenei poʻo Spark, ona o lo latou lauiloa.
  • *Seleni - e aoga tele mo le aoina mai o faʻamatalaga mai nofoaga ma punaoa, o nisi taimi e leai se isi auala e maua ai faʻamatalaga.

O laʻu fautuaga autu: aʻoaʻo le Python!

panda

Sei o tatou ave le code lea e fai ma faʻataʻitaʻiga:

import pandas as pd
df = pd.read_csv(“data/dataset.csv”)
# Calculate and rename aggregations
all_together = (df[df[‘trip_type’] == “return”]
    .groupby(['start_station_name','end_station_name'])
                  	    .agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
                           .rename(columns={'size': 'num_trips', 
           'mean': 'avg_duration_seconds',    
           'amin': min_duration_seconds', 
           ‘amax': 'max_duration_seconds'}))

O le mea moni, matou te vaʻai e fetaui le code i le mamanu masani a le SQL.

SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, …..
FROM dataset
WHERE trip_type = ‘return’
GROUPBY start_station_name, end_station_name

Ae o le vaega taua o lenei code o se vaega o le tusitusiga ma le paipa; o le mea moni, o loʻo matou faʻapipiʻiina fesili i totonu o le Python pipeline. I lenei tulaga, o le gagana fesili e sau ia i matou mai faletusi e pei o Pandas poʻo pySpark.

I se tulaga lautele, i le pySpark tatou te vaʻai i se ituaiga o suiga faʻamatalaga e ala i se gagana fesili i le agaga o:

df.filter(df.trip_type = “return”)
  .groupby(“day”)
  .agg({duration: 'mean'})
  .sort()

O fea ma le mea e faitau

I luga ole Python lava ia ile lautele e le o se faafitauli su'e mea e su'esu'e. O loʻo i ai se numera tele o aʻoaʻoga i luga ole laiga pona, pySpark ma kosi i luga aloiafi (ma na o ia lava DS). I le aotelega, o le anotusi iinei e lelei tele mo googling, ma afai e tatau ona ou filifilia se tasi afifi e taulai i ai, o le pandas, ioe. E tusa ai ma le tuʻufaʻatasia o mea DS+Python foʻi tele.

Shell e fai ma gagana fa'afesili

Ole tele o faʻamatalaga faʻamatalaga ma auʻiliʻili galuega faatino na ou galue ai, o le mea moni, o faʻamaumauga atigi e taʻua le code i le Python, Java, ma le atigi e faʻatonuina i latou lava. O le mea lea, i se tulaga lautele, e mafai ona e mafaufau i paipa i le bash / zsh / etc e pei o se ituaiga o fesili maualuga (e mafai, ioe, mea faʻaoga i totonu, ae e le o se mea masani mo le DS code i gagana atigi), seʻi o tatou tuʻuina atu. se faʻataʻitaʻiga faigofie - E manaʻomia ona ou faia se faʻafanua QID o wikidata ma fesoʻotaʻiga atoa i le Rusia ma le Igilisi wikis, mo lenei mea na ou tusia ai se talosaga faigofie mai poloaiga i le bash ma mo le gaioiga na ou tusia ai se tusitusiga faigofie i le Python, lea na ou tusia ai. fa'atasi fa'apea:

pv “data/latest-all.json.gz” | 
unpigz -c  | 
jq --stream $JQ_QUERY | 
python3 scripts/post_process.py "output.csv"

le mea

JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' 

O le mea moni, o le paipa atoa lea na fatuina ai le faʻafanua manaʻomia; e pei ona tatou vaʻaia, o mea uma na galue i le auala faʻafefe:

  • pv filepath - tu'uina atu se fa'asologa o le alualu i luma e fa'avae i luga o le tele o faila ma pasi atu mea i totonu
  • unpigz -c faitau se vaega o le archive ma tuuina atu i le jq
  • jq faʻatasi ai ma le ki - vaitafe vave maua ai le taunuʻuga ma tuʻuina atu i le postprocessor (tutusa ma le faʻataʻitaʻiga muamua) i le Python
  • i totonu, o le postprocessor o se masini setete faigofie na faʻapipiʻiina le gaioiga 

I le aotelega, o se paipa lavelave o loʻo galue i le faʻaogaina o faʻamatalaga i luga o faʻamatalaga tetele (0.5TB), e aunoa ma ni punaoa taua ma faia mai se paipa faigofie ma ni meafaigaluega se lua.

O le isi faʻamatalaga taua: ia mafai ona galue lelei ma lelei i totonu o le laina ma tusi bash / zsh / etc.

O fea o le a aoga? Ioe, toetoe lava o soʻo se mea - toe, e TELE mea e suʻesuʻe i luga ole Initaneti. Aemaise, iinei uila la'u tusiga muamua.

R tusitusiga

Toe, e mafai e le tagata faitau ona alaga - lelei, o se gagana atoa polokalame! Ma o le mea moni, o le a saʻo o ia. Ae ui i lea, e masani ona ou faʻafeiloaʻi i le R i se tulaga, o le mea moni, e talitutusa lava ma se gagana fesili.

R ose si'osi'omaga fa'akomepiuta fa'afuainumera ma le gagana mo fa'amatalaga fa'apitoa ma fa'aaliga (e tusa ai ma le lenei).

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
ave mai iinei. I le auala, ou te fautuaina, mea lelei.

Aisea e mana'omia ai e se saienitisi fa'amaumauga ona iloa R? Le itiiti ifo, ona o loʻo i ai se vaega tele o tagata e le o ni IT latou te suʻeina faʻamaumauga i le R. Na ou mauaina i nofoaga nei:

  • Vaega tau vailaau.
  • Tagata su'esu'e o meaola.
  • Vaega tau tupe.
  • O tagata e iai a'oa'oga fa'a-matematika o lo'o feagai ma fa'amaumauga.
  • Fa'ata'ita'iga fa'afuainumera fa'apitoa ma fa'ata'ita'iga a'oa'oga masini (lea e masani ona maua i le fa'amatalaga a le tusitala o se afifi R).

Aisea ua avea moni ai o se gagana fesili? I le tulaga e masani ona maua ai, o le mea moni lava o se talosaga e fai se faʻataʻitaʻiga, e aofia ai le faitau faʻamaumauga ma le faʻatulagaina o faʻataʻitaʻiga (faʻataʻitaʻiga), faʻapea foʻi ma le vaʻaia o faʻamatalaga i totonu o afifi e pei o ggplot2 - o se ituaiga foi lea o fesili tusitusi. .

Fa'ata'ita'iga fesili mo fa'aaliga

ggplot(data = beav, 
       aes(x = id, y = temp, 
           group = activ, color = activ)) +
  geom_line() + 
  geom_point() +
  scale_color_manual(values = c("red", "blue"))

I se tulaga lautele, o le tele o manatu mai le R ua siitia atu i totonu o pusa python e pei o pandas, numpy poʻo scipy, pei o faʻamatalaga faʻamaumauga ma faʻamaumauga faʻamaumauga - o lona uiga lautele o le tele o mea i le R o le a foliga masani ma faigofie ia te oe.

E tele punaoa e suʻesuʻe ai, mo se faʻataʻitaʻiga, lenei.

Kalafi poto

O iinei o loʻo ia te aʻu se poto masani e le masani ai, aua e masani ona ou galue i kalafi malamalama ma fesili gagana mo kalafi. O le mea lea, seʻi o tatou faʻapuupuu le faʻavae, aua o lenei vaega e sili atu le ese.

I fa'amaumauga tu'ufa'atasiga masani o lo'o i ai a tatou fa'atonuga fa'amautu, ae o i'inei e fetuutuuna'i le fa'asologa, o fa'ailoga ta'itasi e moni lava o se "koluma" ma sili atu.

Vaʻai faalemafaufau o loʻo e faʻataʻitaʻiina se tagata ma manaʻo e faʻamatala mea taua, mo se faʻataʻitaʻiga, seʻi o tatou ave se tagata patino, Douglas Adams, ma faʻaaoga lenei faʻamatalaga e fai ma faavae.

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
www.wikidata.org/wiki/Q42

Afai matou te faʻaaogaina se faʻamaumauga faʻamaumauga, e tatau ona matou fatuina se laulau tele poʻo laulau ma se numera tele o koluma, o le tele o ia mea o le a NULL pe faʻatumuina i se tau sese sese, mo se faʻataʻitaʻiga, e foliga mai o le toatele oi tatou e maua se ulufale i totonu o le faletusi a le atunuʻu Korea - ioe, e mafai ona matou tuʻuina i latou i laulau eseese, ae o le mea mulimuli o se taumafaiga e faʻataʻitaʻi se vaʻaiga talafeagai ma faʻamatalaga e faʻaaoga ai se sootaga tumau.

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
Mafaufau la o fa'amaumauga uma o lo'o teuina e pei o se kalafi po'o ni fa'amatalaga boolean binary ma unary.

O fea e mafai ona e feagai ai ma lenei mea? Muamua, galue ma fa'amatalaga wiki, ma fa'atasi ai ma so'o se fa'amaumauga o kalafi po'o fa'amaumauga feso'ota'i.

O lo'o taua i lalo ole gagana autu ole fesili na ou fa'aogaina ma galue ai.

SPARQL

Wiki:
SPARQL (fa'apu'upu'u fa'asolosolo от Igoa. SPARQL Protocol ma RDF Query Language) - gagana fesili faamatalaga, o loʻo faʻatusalia e le faʻataʻitaʻiga R.F.D., faapea foi ma maliega faʻavae e momoli atu nei talosaga ma tali atu i ai. SPARQL o se fautuaga W3C Consortium ma se tasi o tekinolosi semantic web.

Ae o le mea moni lava ose gagana fesili mo fa'atatau unary ma binary predicates. O lo'o e fa'atonuina fa'apitoa le mea o lo'o fa'amauina i se fa'aaliga Boolean ma le mea e leai (fa'afaigofie tele).

O le RDF (Resource Description Framework) faavae lava ia, lea e faʻatino ai fesili a le SPARQL, e tolu tolu. object, predicate, subject - ma o le fesili e filifilia le tolu tolu manaʻomia e tusa ai ma tapulaʻa faʻamaonia i le agaga: saili se X e faʻapea e moni p_55(X, q_33) - lea, ioe, p_55 o se ituaiga o fesoʻotaʻiga ma ID 55, ma q_33 o se mea fa'atasi ma le ID 33 (i'i ma le tala atoa, toe aveese uma fa'amatalaga).

Fa'ata'ita'iga o fa'amatalaga fa'amatalaga:

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
Ata ma faataitaiga ma atunuu iinei mai iinei.

Fa'ata'ita'iga Fesili Autu

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga

O le mea moni, matou te fia su'e le tau o le ?atunuu fesuia'i mo le predicate
member_of, e moni o le member_of(?country,q458) ma le q458 o le ID o le Iuni a Europa.

O se faʻataʻitaʻiga o se fesili moni SPARQL i totonu ole afi ole python:

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga

E masani lava, e tatau ona ou faitau SPARQL nai lo le tusia - i lena tulaga, e foliga mai o se tomai aoga e malamalama ai i le gagana a itiiti mai i se tulaga faavae e malamalama tonu ai pe faapefea ona toe maua mai faʻamatalaga. 

E tele mea e suʻesuʻe i luga ole laiga: mo se faʻataʻitaʻiga, iinei lenei и lenei. E masani ona ou google mamanu ma faʻataʻitaʻiga ma ua lava lena mo le taimi nei.

Gagana fesili talafeagai

E mafai ona e faitau atili i le autu i laʻu tusiga iinei. Ma o iinei, o le a tatou suʻesuʻeina faʻapuupuu pe aisea e fetaui lelei ai gagana talafeagai mo le tusiaina o fesili. O le mea moni, o le RDF ua na'o se seti o fa'amatalaga talafeagai o le fomu p(X) ma le h(X,Y), ma o se su'esu'ega talafeagai e iai le fomu nei:

output(X) :- country(X), member_of(X,“EU”).

O lea o loʻo matou talanoa e uiga i le fatuina o se faʻailoga fou / 1 (/1 o lona uiga o le unary), pe a faʻapea mo X e moni o le atunuʻu(X) - o lona uiga, X o se atunuʻu ma sui foi o (X,"EU ").

O lona uiga, i lenei tulaga, o faʻamaumauga ma tulafono o loʻo tuʻuina atu i le auala lava e tasi, lea e mafai ai ona tatou faʻataʻitaʻiina faʻafitauli faigofie ma lelei.

O fea na e feiloai ai i le pisinisi?: o se galuega tele atoa ma se kamupani e tusia fesili i sea gagana, faʻapea foʻi ma le galuega o loʻo i ai nei i le totonugalemu o le faiga - e foliga mai o se mea e sili atu, ae o nisi taimi e tupu.

O se fa'ata'ita'iga o se vaega fa'ailoga i se gagana fa'atatau wikidata:

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga

Mea: O le a ou tuʻuina atu iinei ni fesoʻotaʻiga i le gagana faʻatulagaina faʻaonaponei faʻaonaponei Tali Set Polokalama - Ou te fautuaina le suʻesuʻeina:

Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga

puna: www.habr.com

Faaopoopo i ai se faamatalaga