[RDF] First c/s version

Jonas Liljegren jonas@rit.se
24 Oct 2000 17:29:39 +0200


The latest CVS version includes the files

        ./cgi-bin/serv1.pl
        ./cgi-bin/client.cgi

This speeds up the response time many times.  The server resolves one
request at the time.  Time-sharing will be implemented later, then
needed.  We will have to use fork or similar for retrieving RDF
documents with http.


About the choise of the server implementation:

I looked at the CPAN modules EventServer and NetServer::Generic, but
they didn't seem to fit the needs.

SysV IPC isn't practical since the central cache is used everywhere
and the objects consist of small perl objects.  I did a benchmark, and
it was slow.

The forking capabilities of Perl is still unstable. I don't want Wraf
to be unstable.


The server is ussing the lov level IO::Socket and IO::Select modules.
The algorithms was adpoted from Joey Hess perlmoo, a Perl mud
server. :-)




Ok. Now starts the real job: to implement the callbacks to timeout
values upon change.  Doesn't feel that hard.  Maby we will reach alpha
3 within this week. :-)


Here is the TODO list:

DONE  - Add properties
DONE  - View all properties for person
DONE  - Create a web HTML interface to register
DONE  - Remove/change statements
DONE  --- (alpha 1)
DONE  - Context wrappers for objects
DONE  - Selections for searches
DONE  - minimal arc(), arc_obj() and rev_type()
DONE  - list() and li()
DONE  --- (alpha 2)
DONE  - c/s architecture
      - callbacks to updated cache on changes in the source
      --- (alpha 3)
      - multipple criterions
      - sub criterions
      - alternative lists
      --- (alpha 4)
      - criterions in context
      - Session metadata
      - User identification
      --- (alpha 5)
      - Model authority
      - authenticated change/delete
      - distributive properties
      --- (alpha 6)
      - minimal SDL general presentation framework
      - minimal inference/translation rules
      --- (alpha 7)
      - Generalize prototyp application
      - Set official schema URIs
      - Test suite
      --- (beta 1)


But this will probably change after alpha 3.  Alpha 4 was set up to
finish most of the selection (query) API.  But that will not happen if
the prototype doesn't actually need it.

Hmm.. I guess I will just remove the stage 4 and extend the API as
needed...

Ok. Changing the TODO to:

DONE  - Add properties
DONE  - View all properties for person
DONE  - Create a web HTML interface to register
DONE  - Remove/change statements
DONE  --- (alpha 1)
DONE  - Context wrappers for objects
DONE  - Selections for searches
DONE  - minimal arc(), arc_obj() and rev_type()
DONE  - list() and li()
DONE  --- (alpha 2)
DONE  - c/s architecture
      - callbacks to updated cache on changes in the source
      --- (alpha 3)
      - Session metadata
      - User identification
      --- (alpha 4)
      - Model authority
      - authenticated change/delete
      - distributive properties
      --- (alpha 5)
      - minimal SDL general presentation framework
      - minimal inference/translation rules
      --- (alpha 6)
      - Generalize prototyp application
      - Set official schema URIs
      - Test suite
      --- (beta 1)



-- 
/ Jonas Liljegren

The Wraf project http://www.uxn.nu/wraf/
Sponsored by http://www.rit.se/