Features that are no longer supported, since I switched from a palm PDA to a sidekick:
core code is tellRecord in pdkb.pl schema is available
TODO: private stuff as rules, rather than as XSLT code. (use Sandro's XSB stuff?)
ISSUE: timezones. I think I've got an idea: TimBL suggested that private, category, etc. should be local properties. pd:start_time and pd:end_time likewise. Treat time as a local phenomenon. Have rules that say "today, the gizmo is in UTC-0500"
ISSUE: for fields like private, a boolean-valued property seems straightforward, but it's conventional to use Classes to represent one-place predicates. Problem: we don't have a concise way to set such a flag to "false". We can say { :record rdf:type [ daml:complimentOf :Private ] } but that's a mouthful.
ISSUE: what should be the URI of a record? base it on the palm record-id? or should the record ID be a property? (use the serial number of the device?) In other words, what's the subject of all these properties? is it the (mutable) record in the palmpilot? is it the value stored there? is it the event represented by the record? This issue hasn't come up in the code yet, but it has come up in noodling on how to do synchronization.
IDEA: put enough information in this schema to derive an SQL schema from it. Then derive that SQL schema, ala rdf2dot
DONE: driven by a template ala addressing schemes,
see datebook2html.xsl; lots of expedient hacks in here. I just (19Apr) added grouping by days to the schedule of events.
TODO: exploit alarms in the display; differentiate things I plan to do (vs. things I know about) using alarm info? Think about rules for computing alarm info.
Now that gerald gave me the algorithm to convert YYYY-MM-DD to day_of_week, I should be able to generate a weekly view of any particular week.
core code is serve_datebook in pdkb.pl
@@TODO?: support PUTting records via forms? (this can be a layered service on top, and I might want to keep it that way.)
see also: notes on integration of palm address book, datebook into semantic web development.
see also: telagent, which integrates my desktop phone into the semantic web.
Back up your data. This is alphaware. It's designed to only read your data, but who knows... no warranties and all that.
Then you'll need...
I removed the dependency on cwm.py, notation3.py and xml2rdf.py from TimBL's semantic web area for play by making the two alarm properties share a subject with the rest.
@@how to invoke server here; see log of alpha test session with EricM
% make PYTHON=python2 MIN=2001-04-02 MAX=2001-12-31 perl pdkb.pl /home/connolly/.palm/backup/DatebookDB.pdb 2001-04-02 2001-12-31 >,tmp.rdf repeating record 16213904 ends before window: 2000-07-20 < 2001-04-02 repeating record 16218492 ends before window: 2001-01-23 < 2001-04-02 ... record 13276378 before window: 1904-00-00 < 2001-04-02 record 13276383 before window: 2001-04-01 < 2001-04-02 python2 ../../../w3ccvs/WWW/2000/10/swap/cwm.py -rdf ,tmp.rdf -bySubject >datebook-all.rdf CLASSPATH=/home/connolly/src/xt/xt.jar:/home/connolly/src/xt/sax.jar:/home/connolly/src/xt/xp.jar:. /usr/local/jdk1.2.2/bin/java -Djava.compiler=javacomp -Dcom.jclark.xsl.sax.parser=com.jclark.xml.sax.CommentDriver com.jclark.xsl.sax.Driver datebook-all.rdf datebook2html.xsl datebook-all.html