[rdfweb-dev] BirthdayIssue

Morten Frederiksen mof-rdf at mfd-consult.dk
Wed Mar 9 22:58:45 UTC 2005


Hi all,

The inaugural issue in this process experiment has to be the birthday issue...

The current contents of the wiki page [1] is below (handy backup?), sans 
markup.

Personally, I'm not sure which option I'd rather go with, but I know that 
there might be more options out there...


[1] http://rdfweb.org/topic/BirthdayIssue


Regards,
Morten


BirthdayIssue

Status: Active 
Owner: mortenf

1 Summary

For somewhat obvious social reasons, it would be nice to have a property that 
somehow gave indication of the age, birthday and/or birthdate of a person, 
first and foremost for birthday reminders. The origin of this issue is 
unclear, but at least Danny Ayers has suggested it in a mail to rdfweb-dev, 
with earlier mentions by danbri on rdfweb-dev and a later resurrection by 
Adam Atlas as well as an action follow-up by Libby. 

1.1 Problems

Some want to express the exact date and time of their birth, some don't want 
to give out their age, some don't mind other people knowing their approximate 
age but don't want to receive birthday greetings... 

At the same time there might be security reasons to think about, as semantic 
bots may soon be able to know your mothers birthday. 

When thinking about the different options, it might be wise to also consider 
the microparsing issue -- whether it is easy to locate an exact date or easy 
to locate e.g. all dates with a given year, month, or day (or a combination 
thereof). 

1.2 Usage history

danbri's original FOAF file uses foaf:dateOfBirth. 

LiveJournal exposes information with foaf:dateOfBirth. 

1.3 Options

This option list is mostly gleaned from Libby's mail. 

OneProp
The simplest possible solution would be just one predicate, foaf:dateOfBirth 
(or foaf:birthday, but that doesn't seem to be in use anywhere, and could be 
confused with the yearly recurring event), containg a regular W3CDTF date 
(yyyy-mm-dd). This approach is also used by Paul Ford in his Hacking Congress 
column (schema), even if the date notation isn't W3CDTF. This approach is 
simple, but doesn't giver users much to choose from, and makes it hard(er) to 
query for e.g. birthdays next month or tomorrow (generally, usually you know 
the date of tomorrow). 

OnePropBis
A variation on the date format for a single property is to allow an arbitrary 
ISO8601 date, as suggested by Ian Davis: ISO8601 lets you miss out a year by 
replacing it with a dash: <foaf:birthday>--06-15</foaf:birthday> Looks a bit 
cryptic though. This approach is flexible for producers, but puts a burden on 
consumers, that need to handle many different formats. 

TwoProp
Another option is just two non-overlapping properties as suggested by Richard 
Cyganiak, one with only the year (yyyy) and one with month and day (mm-dd). 
This option makes it possible to cater for the no-age camp as well as the 
no-presents camp, at the cost of a more complicated query when you want the 
combination. 

TwoPropBis
A variation on the theme of two properties is the one suggested by Bill 
Kearney: Two properties, one with a complete date (yyyy-mm-dd), one with just 
month and day (mm-dd). This approach keeps the simple approach, and adds a 
predicate for those wishing to hide their age, again at the consumers 
disadvantage. 

ThreeProp
Yet another option is three separate datatyped properties as suggested by 
Benjamin Nowack, one with the year (yyyy), one with the month (mm), and one 
with the day (dd). There might be a problem with using the datatypes, since 
relevant day type (xsd:gDay) suggests monthly recurrence, not yearly, as per 
XML Schema Part 2: gDay is a gregorian day that recurs, specifically a day of 
the month such as the 5th of the month. Arbitrary recurring days are not 
supported by this datatype. The ·value space· of gDay is the space of a set 
of calendar dates as defined in § 3 of [ISO 8601]. Specifically, it is a set 
of one-day long, monthly periodic instances. Without the datatyping, this 
option is the most flexible and at the same time still somewhat easy to 
consume, even if it does require a more complicated query for the 
combination. 

Bio
The bio vocabulary could be used. The date (or recurrence) still needs to be 
expressed, but the burden would then be on the bio maintainer. This options 
basically sidesteps the issue (although it's actually ?OneProp in another 
vocabulary, using yyyy-mm-dd), but one advantage would be the fact that there 
would not be a need for yet another property indicating place of birth, as 
that is integrated into the bio vocabulary. 

iCal
RDF/iCal might be an option, but the same datatype problems as with the 
?ThreeProp options exist. Also, iCal demands that all parts of the date are 
indicated -- essentially an iCal-version of ?OneProp with iCal support 
(yyyy-mm-dd).



More information about the foaf-dev mailing list