|
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.
|