[RDF] [Fwd: Warum WRAF]
Jonas Liljegren
jonas@paranormal.se
Wed, 02 Aug 2000 17:30:59 +0200
Jag skickade din preliminära text till en person, i brit på annat.
:-/ Det är hemskt mycket att försöka sammanställa.
Fick en del gjort i måndags och tisdags. Framsteg.
Nu har jag bokat biljett för 2,5 veckor i norge. Även om jag skulle
vilja är jag nog itne klar då. Men jag kommer ta en vecka ledigt då.
Har märkt att när jag vill fortsätta på WRAF tar det ungefär en dag för
att rensa skrivbordet, ytterligare en dag för att komma i stämning och
sedan 1-2 timmar för att hitta var jag slutade sist och hur det nu var
allt hängde samman.
Därför har det inte fungerat med att arbeta på helger. :-(
Det finns inget att köra men programmet ser ungefär ut såhär nu:
RDF-objekter i sig är en resource. Fleraagents (users) kan ha kopplat
sig till olika interface. Exempelvis olika RDFS-scheman eller olika
databaser genom samma DBI-interface. Jumptable baseras på
agent-signaturen, för att bestämma vad som händer för olika sorters
annrop. För att optimera DB har alla olika sorts resurser slagits
samman i en enda stor tabell. Det blir en del bytes extra per post, men
sparar en del uppslagningar.
Har lagt pussel med hur de olika modulerna anropar varandra. Så just nu
används 3 generationer av APIs om vart annat, vilket gör att inget
fungerar ännu. Har försökt undvika dependency loops och hålla reda på
rätt context samtidigt som jag vill kunna cacha objekt och gärna slippa
skicka med context-objekt överallt. Och givetvis så att man ska kunna
plugga in fler eller nya versioner av interface, scheman, funktioner,
osv.
Programkoden har långa kommentarer i sig lite här och var. API-skissen
är inte uppdaterad, men okej. En del anteckningar finns också i wraf2.
SQL-filen är iaf aktuell.
Dvs dokument:
http://www.uxn.nu/wraf/devel/latest/doc/
Testprogram:
http://www.uxn.nu/wraf/devel/latest/bin/w22a.pl
Huvudmodulen:
http://www.uxn.nu/wraf/devel/latest/lib/RDF_022.pm
Resten av modulerna:
http://www.uxn.nu/wraf/devel/latest/lib/RDF_022/
En nyckeldel är interfacens registrering av de metoder de erbjuder,
baserat på URI-prefix och type. Denna Register-funktion säger att den
erbjuder metoden create_model() till alla resurser av typen 'model',
oavsett vad de har för URI.
Dispatchern tar alla registers från olika interface och skapar
dedikerade jumptables för olika sorters resurser.
return
{
'' =>
{
NS_L.'model' =>
{
'create_model' => [\&create_model],
},
}
};
--
/ Jonas - http://jonas.liljegren.org/myself/en/index.html