.........................................................................................................................



:: Start
:: Nytta
:: Gruppen
:: Teknik
:: Status

SIIBA teknik

Programutvecklingsprocess
Den modell som tillämpas i arbetet med att skapa en prototyp är en kombination av så kallad "exploratory programming" och "prototyping"-metodiken. Implementationen är iterativ och utgår från så kallade "use cases”.
Systemarkitektur
Systemet är dynamiskt och modulärt och ska kunna byggas ut allt eftersom nya behov identifieras. Varje modul är i sig ett avancerat system som kan exekveras oberoende av andra moduler, och nya moduler kan länkas in utan att en omdesign av det befintliga systemet är nödvändig. En modul består av en eller flera algoritmer, eventuella lokalt genererade databaser samt de nödvändiga interfacen.


Fig 1. Arkitektur

På samma sätt ska nya databaser kunna läggas, t ex genom att skriva ett nytt databasinterface. Även om varje modul i sig kan sägas vara en intelligent agent är det framför allt samverkan mellan olika moduler som är intressant ur teknisk och vetenskaplig synvinkel.
Implementation
Vi har börjat med tre olika moduler som arbetar med fyra olika typer av databaser. Modulerna är en genetisk algoritm (GA), en statistikmodul med bl a tidsserieanalys, och en distribuerad meta-sökmotor. Databaserna är i första steget är PubMed som innehåller medicinska artiklar, Yahoo! Finance med börsdata, en intern databas för ett av referens¬gruppsföretagen, och slutligen själva internet. Parallellt med arbetet med modulerna pågår arbetet med att definiera och implementera ett användargränssnitt där den vetenskapliga frågeställningen är användarens upplevelse av och förväntningar på ett så kallat intelligent system.

Den genetiska algoritmen arbetar med PubMed och genererar nya dokument utifrån de träffar som sökorden ger och ett "alfabete" som ger värden till vissa ord. Interfacen är skrivna i Python, själva GA:n i C, och de genererade mellandatabaserna med dokument och meningar är MySQL-databaser.

Fig 2. Genetisk Algoritm

Statistikmodulen ansvarar för statistisk dataanalys och innehåller flera olika modeller, exempelvis tidsserieanalys. Den arbetar med en lokal databas som fylls på av data från någon lämplig källa, till exempel Yahoo! Finance, eller från en databas som genererats av någon av de andra modulerna. Tidsserieanalysen är speciellt intressant med tanke på behovet av att upptäcka och förstå finansiella och ämnesspecifika trender. Vår statistikmodul nyttjar ett open source-projekt, R, en miljö för statistiska beräkningar och grafik, se http://www.r-project.org/.

Fig 3. Statistikmodul


Vår distribuerade meta-sökmotor möjliggör uppkomsten av mer avancerade mönster via individuella sökmönster. Olika användare har olika sökkriterier som de skickar ut på internet, och deras bästa träffar går in i en gemensam databas. Allt eftersom tiden går och användarna utnyttjar systemet kommer länkar som är intressanta för flera av användarna att börja samlas. På så sätt kan man stegvis förfina det enorma utbud av information som internet erbjuder samt finna ämnesspecifika trender. Modulen är skriven i Java.

Fig 4. Distribuerad metasökmotor


Arbetet med utformningen av användargränssnittet inleddes med en förstudie av det existerande utbudet av sökmotorer och verktyg för omvärldsanalys, med syfte att få bättre kunskap både om vad som finns, hur de fungerar, och vad som används mest. Problemet har analyserats för att fastställa nödvändig indata till modulerna/agenterna i beta prototypen samt hur utdata ska presenteras. Utifrån analysen av in- och utdata har en första kravdefinition av funktionaliteten för användargränssnittet.