Huvudmålet med MICHAEL-projektet är att inventera och flerspråkligt beskriva det Europeiska kulturarvet. För att uppnå detta hämtas data från regionala och nationella samlingar med hjälp av en standardplattform och en gemensam datamodell.
MICHAEL-plattformen består av programvara i två delar som fungerar ihop och som sköter data hantering och publiceringstänster.
- En produktionsmodul som gör det möjligt att skapa, editera, importera och hantera innehåll som beskriver olika aspekter av det digitala kulturarvet. Alla dessa funktioner är tillgängliga via en standard webb-läsare. Data lagras i en flexibel XML databas, som är baserad på MICHAELs datamodell.
- En publikationsmodul med ett intuitivt användargränssnitt som låter slutanvändarna söka fram digitala samlingar i webb-läsaren. Denna modul använder sig av en kraftfull XML sök- och visningsmotor, som kan anpassas till de olika institutionernas speciella behov.
En nationell instans av MICHAEL-plattformen består av en produktionsmodul och en publikationsmodul.
Informationstjänster
De båda MICHAEL modulerna fungerar som datalager och följer the Open Archives Initiatives protokoll för metadata insamling (OAI-PMH http://www.openarchives.org/) Detta gör att metadata finns tillgängligt i såväl standard Dublin Core som i MICHAEL-formatet. Poster från distribuerade källor kan samlas ihop i en MICHAEL-instans och publiceras tillsammans. MICHAELs europeiska portaltjänst kommer att använda sig av denna insamlingsmetod för att sammanställa innehåll som utvecklats av de olika nationella instanserna.
MICHAELs publikationsmodul innehåller en REST-baserad API för att söka och ta fram poster, som använder sig av enkla HTTP frågor och XML svar, detta gör det möjligt för andra aktörer inom kulturområdet att enkelt inkorporera MICHAELs söktjänster på sina webbplatser.
Öppen källkod
MICHAEL plattformen distribueras som öppen källkod, och har byggts upp kring välkända komponenter. De viktigaste komponenterna som ligger till grund för MICHAEL-plattformen är:
- Apache Cocoon: en XMLinfrastruktur för komplexa Webbapplikationer. Den ger en flexibel miljö som skiljer mellan innehåll, logik och stil. För MICHAEL-plattformen innebär Cocoon en robust mekanism för insamling, XSLT-transformationer, en server-side script miljö och en flexibel miljö för att bygga webbformulär. Detta används i produktionsmodulen för att skapa och editera data.
- Apache Tomcat är en webcontainer eller en applikationsserver. Den implementerar Java Servlets och JavaServerPages (JSP) specifikationer och erbjuder en miljö för att köra Java kod i samfunktion med en webbserver. Tomcat innehåller sin egen interna HTTP-server.
- Apache Lucene är ett indexerings- och sökbibliotek som utvecklats I Java . Det används i MICHAEL för fulltextsökning och indexering.
- eXist: ett XMLdatabashanteringssystem(http://sourceforge.net/projects/exist/ ). Databasen kan accessas via olika protokoll som WebDAV, XMLRPC och xmldb direkt från en Cocoon-miljö. eXist erbjuder inte bara en datalagringsmiljö, med hantering av användare och rättigheter, utan även Xquery- och Xupdatetjänster för ett på ett enkelt sätt hantera data och skapa komplexa rapporter.
- SDX: en sökmotor för stora samlingar av XML dokument (http://adnx.org/sdx/ en http://sourceforge.net/projects/sdx/ ). Denna baseras på den stabila och mycket använda Apache Lucene sökmotorn. SDX utgör ett smidigt redskap som innebär att man kan använda API för att bygga sök- och visningstjänster för XML-dokument I en Cocoon-miljö. MICHAELs produktionsmodul baseras på HTMLformulär som använder denna API. SDX stöder OAI-PMH protokollet både som datalager och som insamlare.
- Xdepo: en Cocoon miljö för att hantera data som lagrats i en XML databas som använder Webforms formulär (http://sourceforge.net/projects/xdepo/ ). Xdepo utgör en länk mellan Cocoon, eXist och webbläsaren för MICHAELplattformens produktionsmodul. Xdepo gör det enkelt att bygga en webbapplikation baserat på den kraftfulla funktionaliteten hos eXist databas hanteringssystem.
Genom att utnyttja Java-teknologi, kan MICHAEL-plattformen implementeras på en mängd olika plattformar.
