Koperniko zientzialariari buruzko infotaula

Irudia: Koperniko zientzialariari buruzko infotaula

Elhuyar Fundazioko Hizkuntza eta Teknologiako I+G sailean Galdetu Wikipedia izeneko webgunea kaleratu dugu (http://galdetuwikipedia.elhuyar.org/galdetu_wikipedia). Bertan euskarazko informazio egituratua kontsultatzeko galdera-erantzun sistema bat aurkezten da.

Galdera-erantzun sistema honek eskuragarri duen informazio egituratua RDF ezagutza-base bat da. Erabiltzaileek aukera dute hizkuntza naturalean idatzitako galderak burutzeko eta sistema erantzun zehatza ematen saiatzen da. Adibidez, “Non jaio zen Ruper Ordorika?” galdera egin eta sistemak “Oñati” erantzungo du.

Zehazki Wikipediako artikuluen infotauletako informaziotik erauzitako RDF sarea kontsultatzen du galdera-erantzun sistema honek. Honetarako, lehendabizi erabiltzaileek hizkuntza naturalean idatzi dituzten galderak SPARQL lengoaiara itzultzen ditu sistemak, ondoren, aipatutako RDF sarearen gainean erantzuna bilatu ahal izateko.

Galdera-erantzun sistemak

Webaren etengabeko hazkundea dela eta, erabilgarri dagoen informazio kopurua gero eta handiagoa da. Askotan informazio bila dabilen erabiltzaileak aurrean duen arazoa ez da dokumentu edo informazio orokor baten beharra, baizik eta modu azkar batean eskuragarri dagoen informazio guzti horren artean galdera zehatz batentzat erantzun egokia aurkitzea. Hau da, hain zuzen, galdera-erantzun sistemen helburua.

Galdera-erantzun sistemen aplikazio desberdinak hainbat ikuspegiren arabera sailkatu daitezke: erabiltzaile mota (erabiltzaile arruntak ala adituak), zein motatako informazioaren gainean egiten duen lan (egituratutako datuak, testu librea, bien konbinaketa…), bilduma mota (Web-a, dokumentu-bilduma…), domeinua (librea, zehatza), etab.

Erantzuna bilatzeko erabiltzen den datu-iturri motaren arabera bi talde desberdinetan sailka daitezke galdera-erantzun sistemak: alde batetik, erantzunak egituratutako datuen gainean bilatzen dituztenak, eta, beste alde batetik, testu hutsaren gainean bilatzen dituztenak.

Gorago aipatu den bezala, hemen aurkezten den galdera-erantzun sistemak egituratutako datuen gainean bilatzen ditu erantzunak. Zehazki,  dbpedia-k eskuragarri jartzen duen euskarazko Wikipediaren infotaulen gaineko RDF sarea erabiltzen da.

RDF ezagutza-baseak

Web Semantikoaren etorrerarekin, RDF ezagutza-baseak ugaritu egin dira. Izan ere,  Web Semantikoan datuak errepresentatzeko lengoaia estandarra da RDF (Resource Description FrameWork). Euskaraz ere, Wikipediako artikuluen infotauletako informaziotik erauzitako RDF ezagutza-basea dago eskuragarri.

RDF ezagutza errepresentatzeko modu bat da. Oso modu sinplean datu edo gertaera asko adieraz daitezke eta era berean hain da egituratua, aplikazio informatikoek zuzenean baliatu ditzaketela. RDFren abantaila nagusia da, sinplea eta helburu orokorrekoa izateko diseinatua dagoela.

RDFetan informazioa egitura jakin batean adierazten da: RDF hirukotea. Hiru elementuk osatzen dute RDF hirukotea: baliabidea, baliabidea deskribatzeko propietatea, eta propietate horrek hartzen duen balioa (subjektua, predikatua eta objektua ere deitzen zaie). RDF hirukotearen osagai bakoitza (subjektua edota baliabidea, predikatua edota propietatea eta objektua edota balioa) URL baten bidez identifikatuta dago.

Baliabidea deskribatuko den hori da, propietatea baliabidearen ezaugarri bat da, deskribatu nahi dena, eta balioak, deskribatu nahi diren ezaugarrien balio konkretuak dira. Azken hau, balio literal bat izan daiteke, karaktere kate bat, ala beste baliabide bat, URL bat.

Adibidez, “<http://dbpedia.org/resource/Ruper_Ordorika> <http://dbpedia.org/property/jaiotzaHiria> <http://dbpedia.org/resource/Oñati>” RDF hirukotean Ruper_Ordorika subjektua jaiotzaHiria predikatuaren bidez Oñati objektuarekin erlazionatzen da. Horrelako RDF hirukoteak lotuz informazio konplexua adierazten duten RDF sareak eratzen dira.

 

Hizkuntza naturaletik SPARQL lengoiara

SPARQL (SPARQL Protocol and RDF Query Language) RDFen gainean galdetzeko lengoaia da. Lengoaia honekin RDF formatuan biltegiratutako datuak aldatu eta berreskuratu daitezke. Hala ere, RDF bidez adierazitako edukia erabiltzaile arruntentzat kontsultagarria izateko, ezinbestekoa da sistemak erabiltzaileak hizkuntza naturalean idatzitako galdera SPARQL lengoaiara itzultzea. Modu honetan, erabiltzaileek, hizkuntza naturala erabiliz, eduki hauek kontsultatu ahal izango dituzte RDF edota SPARQL bezalako lengoaiak ikasi beharrik izan gabe.

Ondoren azaltzen den SPARQL galderak esaterako, Ruper Ordorika non jaio zen (Non jaio zen Ruper Ordorika?) bilatuko du.

PREFIX rs:<http://dbpedia.org/resource/>
PREFIX dc:<http://dbpedia.org/property/>
SELECT ?lekua
WHERE
{ ?pertsona ?propietatea ?lekua .
FILTER regex(STR(?pertsona), "Ruper_Ordorika")
FILTER regex(str(?propietatea),"jaio")
FILTER regex(str(?propietatea),"herrialde|hiri|leku")}

irudia: SPARQL galdera baten adibidea

Galdetu Wikipedia, euskarazko Wikipediako infotauletatik erauzitako RDF gaineko galdera-erantzun sistema

     Hemen aurkezten den galdera-erantzun sistema DBpediak eskuragarri jartzen duen Wikipediatik erauzitako RDFaren gainean saiatzen da erantzuna bilatzen. DBpedia komunitateak Wikipediatik informazio egituratua atera eta hau webean eskuragarri jartzeko ahalegina burutzen du. Horretarako Wikipediako infotaulak erabiltzen dira. Infotaulak Wikipediako hainbat artikuluk albo batean izaten duten informazio kutxak dira. Kutxa horietatik egituratuta dagoen informazioa erauziz RDF sare bat eraikitzen da.

Infotaula batetatik RDF hirukoteak sortzeko artikuluen tituluak subjektu bezala hartzen dira, predikatu bezala berriz infotaulako ezkerreko zutabeko eremuetako hitzak eta azkenik, objektu bezala eskuin zutabeko balioak. Hau da, infotaulako lerro bakoitzeko RDF hirukote bat sortzen da.

    Sistemaren Arkitektura

Gure sistemak bi modulu nagusi ditu: alde batetik, erabiliko dugun RDF ezagutza-basetik ondoren erabiliko dugun lexikoaren prestakuntzara zuzendutako modulua eta beste alde batetik sarrerako hizkuntza naturalean idatzitako galdera SPARQL lengoaiara itzuli eta azken hau erabilita RDFtik galderarentzako itzulpena lortzeaz arduratzen den modulua.

Lehenengo pausuan,  lexikoaren prestakuntzara zuzendutako moduluak RDFtik lexikoa erauzi eta sinonimoekin aberasten du, sistemaren estaldura handiagoa izan dadin. Ondoren, galdera prozesatzen duen moduluan, sarrerako galderaren analisia lortu, galdera-patroia identifikatu, galderaren osagai nagusiak identifikatu eta SPARQL galdera eraikitzen da. Azkenik, SPARQL galdera erabilita, RDFtik sarrerako galderarentzat erantzun egokia lortzen saiatzen da.

Irudia: sistemaren arkitektura

Irudia: sistemaren arkitektura

 Lexikoaren prestakuntza moduluan erabiliko dugun RDF ezagutza-basearen araberako lexikoa sortzen da. RDFtik bertatik erauziko dugu hurrengo moduluan, galderaren SPARQLaren sorkuntzan, hizkuntza naturalean idatzitako galderako subjektu edota entitatearen eta entitateen propietateen identifikazioan lagunduko diguten hiztegiak: RDFko entitate guztien zerrenda, Wikipediako artikuluen berbiderapenetatik lortutako hiztegia eta RDFko propietate jakin batzuetatik erauzitako hiztegia.

  • RDFko entitate guztien zerrenda. RDFko hirukote guztietatik subjektuetako entitate guztien zerrenda erauzi dugu. Modu honetan, sarrerako galderako hitz bakarreko ala hitz anitzeko entitatea identifikatu ahal izango dugu, galderan RDFan adierazten den forma berdinean adierazi baldin bada behintzat.

  • Wikipediako artikuluen berbiderapenetatik sortutako hiztegia. RDFan lantzen diren entitateei dagozkien sinonimoak lortzeko wikipediako artikuluen berbiderapenen informazioa erabili dugu.

  • RDFko propietate jakin batzuetatik erauzitako hiztegia. Entitate-mota batzuentzat erabiltzen diren infotaularen txantiloileko propietateek entitatea bera adierazteko forma desberdinei buruzko informazioa ematen dute. Horrela, RDFko propietate hauek dituzten hirukoteak aukeratu ditugu eta hauetatik, subjektu eta objektuak lotuz hiztegi berri bat sortu dugu.

Galdera SPARQLra itzuli eta erantzuna lortzen duen moduluan, lehendabizi galderaren analisia lortzen da. Galderaren analisitik, unitate lexikal bakoitzerako lemak jasotzeaz gain, identifikatutako hitz anitzeko terminoen informazioa ere erabiliko dugu.

Ondoren, Itzultzailea deitu diogun moduluan, hizkuntza naturalean idatzitako galderak SPARQL lengoaiara itzultzeko prozesua burutzen da. Prozesu honetan bi pauso nagusi daude: SPARQL galderako elementuen identifikazio zuzena burutzea eta SPARQL galderako osagai hauen lexikoa erabiltzen ari garen RDF ezagutza-basean erabiltzen denarekin lotzea eta egokitzea. Hau da, lehendabiziko pausuan bukaerako SPARQL galderan subjektu, predikatu eta objektuak izango diren zatiak identifikatu behar dira sarrerako galderan eta bigarren pausuan aldiz, identifikatutako subjektu, predikatu eta objektuak RDFko hiztegiarekin lotu behar dira, erabiltzen ari garen ezagutza-basearekiko egokia den SPARQL galdera sortu ahal izateko.

Azkenik, aurreko moduluan sortutako SPARQL galdera erabilita,  RDFak kudeatu eta kontsultatzeko JENA SPARQL prozesatzaileari esker, RDFtik galdera horrentzako erantzuna jasotzen saiatuko gara.

    Landutako galderak

Gure sistema erantzuten saiatuko den galderak mugatu ditugu. Sistemaren lehenengo bertsioa garatzeko patroi jakin batzuk jarraitzen dituzten galderetan oinarritu gara.

Hasiera batean Non, Noiz, Nor, Nork, eta Zein galdetzailea duten galderak landu ditugu eta gainera, konplexutasun maila jakinetakoak. Izan ere, euskaraz hizkuntza naturala prozesatzeko teknikak ez daude edozein galdera mota ulertzen saiatzeko punturaino garatuta.

Bi multzotan sailkatu ditugu landu ditugun galderak: sinpleak eta konplexuak. Galdera sinplea esaten dugunean, sintaxia aldetik konplexutasun txikia duen galdera bat esan nahi dugu. Galdera hauen erantzuna galderako entitatearen artikuluan bertan edota entitate horrentzako RDFko hirukoteetan aurkitu ahal izango da. Hau da, ez da entitate bat baino gehiago erlazionatu beharko erantzuna bilatu ahal izateko. Galdera hauek hirukote bakarreko SPARQL galderara itzuli beharko ditu gure sistemak.  Beheko irudian galdera sinple baten adibidea azaltzen da eta honi dagokion hirukote bakarreko SPARQL galderarena ere bai.

Galdera sinplea: Non jaio zen Johannes Kepler?
SPARQL galdera:
SELECT ?erantzuna
WHERE
{
?subjektua ?propietatea ?erantzuna
FILTER regex(str(?subjektua),"Johannes_Kepler")
FILTER regex(str(?propietatea),"jaio")
FILTER regex(str(?propietatea),"data")
}

Irudia: Galdera sinple baten adibidea

  Aldiz, galdera konplexua esaten dugunean, galdera hauen erantzuna aurkitzeko, entitate bat baino gehiago erlazionatu beharko ditugula esan nahi da. Hau da, galderan azaltzen den entit atean artikuluan bertan bakarrik begiratuta ez dugu erantzuna aurkituko, entitate bat baino gehiagoren artikuluak edota RDFko hirukoteak erlazionatuz bilatu beharko dugu erantzuna. Hala ere, galderen konplexutasuna ere mugatu da eta gehienez 2 hirukoteko SPARQL galdera eskatzen duten galderetara mugatu gara. Beheko irudian galdera konplexu baten adibidea azaltzen da eta honi dagokion bi hirukoteko  SPARQL galderarena ere bai.

Galdera: Noiz sortu zen Peruko hiriburua?
SPARQL galdera:
SELECT ?erantzuna
WHERE
{
?lotura ?propietateNagusia ?erantzuna
OPTIONAL { ?subjektuNagusia ?tartekoPropietatea ?lotura}
FILTER regex(str(?subjektuNagusia),"Peru")
FILTER regex(str(?tartekoPropietatea),"hiriburu","i")
FILTER regex(str(?propietateNagusia),"sortu","i")
}

Irudia: Galdera konplexu baten adibidea

Esan bezala, galdera horien erantzuna bilatzeko artikulu bat baino gehiago konbinatu behar dira, beraz, testutik erantzuna ondorioztatzea lan zaila izan daiteke. Aldiz, RDFaren egitura dela eta, modu errazagoan lortu ahal izango dugu erantzuna, honetarako, SPARQL konplexuagoak sortu beharko ditugun arren. Adibidez, goiko irudian azaltzen den “Noiz sortu zen Peruko hiriburua?” galderaren erantzuna bilatzeko, lehendabizi “Peruko hiriburua” zein den lortu behar dugu.

Bai galdera sinpleen kasuan, bai galdera konplexuen kasuan, galderan entitatea azaldu beharko da beti eta galdetzaile hauek erabili ahal izango dira: Non, Noiz, Nork, Nor eta Zein.

Interfazea

Erabiltzailearen interfazeak bi pantaila nagusi ditu: bata galdera edo kontsulta formulatzekoa, eta bestea galderaren erantzunak bistaratzen dituena.

  •  Kontsultarako interfazea: bertan erabiltzaileak hizkuntza naturalean osatutako kontsultak formulatzea izango du.
Irudia: Galdetu Wikipediaren hasierako pantaila

Irudia: Galdetu Wikipediaren hasierako pantaila

  • Emaitzen interfazea: bertan galderari dagozkion erantzunak bistaratuko dira.
Irudia: Galdetu Wikipediaren emaitzen pantaila

Irudia: Galdetu Wikipediaren emaitzen pantaila

 Halaber, webguneak azalpenen orri bat ere badu, sistemaren funtzionamendua azaltzen duena, eta egileekin harremanetan jartzeko orri bat ere bai.

Galdetu Wikipedia webgunearen laguntza orrialdea

Irudia: Galdetu Wikipedia webgunearen laguntza orrialdea

 

Egilea: Maddalen López de Lacalle