Seminārs "Konkrētā sintaksē balstīta meklēšana"

Lai aprakstītu sarežģītas sistēmas, tiek izmantoti modeļi. Populārākie modeļu veidi ir datu plūsmu diagrammas, datubāzes modelis, UML: klašu diagrammas, aktivitāšu diagrammas, lietojumu (Use Case) diagrammas. Dažreiz, lai aprakstītu sistēmu kādā specializētā problēmu apgabalā, tiek izmantoti specializēti modeļi vai specializētas programmēšanas valodas. Piemēram, Lego® WeDo izmanto specializētu grafisku programmēšanas / modelēšanas valodu. Dažreiz šie modeļi ir izpildāmi kā Lego® WeDo gadījumā, bet citreiz tie ir paredzēti cilvēkiem , lai raksturotu būvējamo /uzbūvēto sistēmu. Teksta redaktorā varam rakstīt tekstu jebkurā programmēšanas valodā, lai gan daudz ērtāk ir rakstīt pielāgotā redaktorā ar priekšāteicējiem. Ar modelēšanas valodām ir vēl sarežģītāk. Ja tiek lietota specifiska modelēšanas valoda, tad ir nepieciešams kāds rīks, kas šo valodu atbalsta. Te palīgā steidzās grafiskās rīku būves platformas.

Grafiskās rīku būves platformas ļauj ātri un viegli izveidot redaktoru grafiskai modelēšanas valodai. Šobrīd populārākās platformas ir Sirius, MetaEdit+, Microsoft DSL tools. Viena šāda platforma ir ajoo, kas izstrādāta LUMII. Platformā tipiski tiek izveidota modelēšanas valodas definīcija. Tālāk atkarībā no platformas šī definīcija tiek interpretēta vai izmantota, lai uzģenerētu valodai specifisku rīku. Protams, ar redaktoru vien nepietiek! Lai valoda būtu izpildāma, ir nepieciešams arī kompilators, kas modeli pārvērš izpildāmā programmā. Parasti platformas piedāvā kādus servisus, kas palīdz arī kompilatora būvē.

Lai arī, izmantojot šīs platformas, redaktoru savai modelēšanas valodai ir iespējams iegūt ļoti ātri, platformās un ar tām veidotajos rīkos netiek nodrošināti visi servisi, pie kuriem lietotāji ir pieraduši. Kā piemēru var minēt meklēšanas un aizvietošanas funkcionalitāti. Pat, ja tiek nodrošināta tekstuālā meklēšana, tas ne līdz galam labi der grafisko valodu gadījumā. Grafiskās valodas gadījuma var būt nepieciešams norādīt arī meklēšanas kontekstu, piemēram, meklēt tikai noteikta veida elementu vienā atribūtā. Lai atrisinātu šo problēmu, projektā “Konkrētā sintaksē balstīta meklēšana specializētā modelēšanas valodā veidotos modeļos” ir izveidots risinājums konkrētā sintaksē balstītai meklēšanai un aizvietošanai. Šajā pieejā ir iespējams izveidot modeļa fragmentu un izmantot to kā vaicājumu, lai atrastu citus līdzīgus fragmentus. Tāpat ir iespējams veikt nelielas modeļa modifikācijas, izmantojot aizvietošanas transformācijas.

Par projektu vairāk iespējams uzzināt projekta mājas lapā: http://csbf.lumii.lv

Sīkāk par projektā paveikto būs iespējams uzzināt attālinātā seminārā, kas paredzēts 26.07.2021 16:00. Pieteikšanās uz semināru: https://docs.google.com/forms/d/e/1FAIpQLSfwxK31AdirARAlyPBFW_gS5p9dzVh79giDLxO-fAomzxCZ1A/viewform?usp=sf_link.