- From: Seaborne, Andy <Andy_Seaborne@hplb.hpl.hp.com>
- Date: Sun, 1 Dec 2002 19:59:52 -0000
- To: "'www-rdf-interest@w3.org'" <www-rdf-interest@w3.org>
Norm, Given RDF's open world assumption, the absence of the "p:died" does not mean that no such statement has been made somewhere or will be made. You might merge in some more RDF which did contain the statement "ab:jdoe p:died "1999-12-31". There may well be other, better solutions, but one approach would be to give end dates to all people - and make it a bNode where it is as yet unknown ((are literals resources at the moment?)). Appointments also always have end dates, although it might be unknown. Your application can choose to interpret "[] db:end []" as unknown and mean repeat forever (i.e. repeat until known to have passed). There is now only one rule that triggers on each contact record so I think you only get one appointment per contact. Andy -----Original Message----- From: Norman Walsh [mailto:Norman.Walsh@Sun.COM] Sent: 1 December 2002 19:15 To: www-rdf-interest@w3.org Subject: cwm/n3 and naming blank nodes? -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello world, Maybe there's already an easy way to do this, so let me just describe the problem and see what the world says. I'm hacking about with my PIM in RDF. Let's say I have a contact like this: ab:jdoe a ab:Contact; ab:firstname "Jane"; ab:surname "Doe"; p:born "1970-01-01" . - From such a record, I want to imply a yearly repeating appointment: this log:forAll :p, :s, :o, :t, :u, :l, :k, :m. { :p a ab:Contact . :p p:born :o } log:implies { [ a db:Appointment ; db:begin-date :o ; db:repeat [ rdf:type db:Repeat ; db:frequency "1"; db:type "Yearly" ] ] } . That's all well and good, but now suppose I have ab:jdoe2 a ab:Contact; ab:firstname "John"; ab:surname "Doe"; p:born "1970-01-01" ; p:died "1999-12-31" . For such a record, I want to imply a yearly repeating appointment with an end date: { :p a ab:Contact . :p p:born :o . :p p:died :s } log:implies { [ a db:Appointment ; db:begin-date :o ; db:repeat [ rdf:type db:Repeat ; db:end :s ; db:frequency "1"; db:type "Yearly" ] ] } . But if I have both of these rules, then I get two appointments, one with an end and one without. If I could provide an identifier for the birthday event, I think I could just add the db:end property if there was a p:died property, but I can't think of any way to give names to these newly constructed nodes. Am I overlooking something? Is there some way to construct names automatically? (For example, if ":p" in the expression is ab:jdoe, I'd be quite content to imply a new "db:jdow-birthday" node that I could subsequently refer to.) Be seeing you, norm - -- Norman.Walsh@Sun.COM | We look back on our life as a thing of broken XML Standards Architect | pieces, because our mistakes and failures are Web Tech. and Standards | always the first to strike us, and outweigh Sun Microsystems, Inc. | in our imagination what we have accomplished | and attained.--Goethe -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: Processed by Mailcrypt 3.5.7 <http://mailcrypt.sourceforge.net/> iD8DBQE96l/DOyltUcwYWjsRAkimAJsEepRY5lZZuod21Nugl3XXgbCqkACglFvn h2THNVNaEFrjR4edztHfRsI= =jIE2 -----END PGP SIGNATURE-----
Received on Sunday, 1 December 2002 15:00:06 UTC