AJAX Timeline

In the “How Cool is That!” Department: this very morning, i was looking (for the umpteenth time) for some not-invented-by-me and open/semi-standard way to author event information in an XML format, to be rendered graphically in the form of a timeline. I’d like to record and organize some major events of my life (while i can still remember most of them!) and have a visualization of the results: i’m also interested in expressing genealogical information this way. This time around, i found the Historical Event Markup Language project, which i intend to take a closer look at. It looks promising, and i said to myself at the time “wouldn’t it be cool to create a visual timeline of early Christian history?”.
So tonight, going to the SIMILE project at MIT’s web site, i found something new: their Timeline project, which offers a DHTML widget for making timelines. Check out this very detailed timeline of Jewish and Christian history: you really need a 100″ monitor to get the big picture here! (hint: the top inch or so is a control you grab to scroll the window right and left)

More on GEDCOM 6.0

I’ve been working for several weeks with the GEDCOM 6.0 XML format for genealogy data, and i’ve entered about half the random written information i have into this XML file, which is rendered by this XSLT into this browsable version (all are works in progress). The XSL closely follows this work by Michael Kay (who literally wrote the book on XSLT), and his example taught me a number of cool new tricks for this sometimes baroque but very powerful language.

One difficulty with using the GEDCOM 6.0 format is that information about an individual is distributed across several different elements, linked by an ID. For example, here’s my individual information:

 <IndividualRec Id=”BoisenSean”>
   <NamePart Type=”given name” Level=”3″>Sean Cornell</NamePart>
   <NamePart Type=”surname” Level=”1″>Boisen</NamePart>
  <PersInfo Type=”occupation”>
   <Information>computer scientist, manager</Information>

but then my birth is represented in a separate event record

 <EventRec Id=”BoisenSeanBirth” Type=”birth” VitalType=”birth”>
   <Link Target=”IndividualRec” Ref=”BoisenSean” />
   <Link Target=”IndividualRec” Ref=”ClaycombDorothy” />
   <Link Target=”IndividualRec” Ref=”BoisenElliott” />
  <Date Calendar=”Julian”>September 21, 1958</Date>
    <PlacePart Type=”town” Level=”4″>Tacoma</PlacePart>,
    <PlacePart Type=”state” Level=”2″>Washington</PlacePart>,
    <PlacePart Type=”country” Level=”1″>United States</PlacePart>

My death (had it already taken place) would be yet another event record, likewise for my marriage or other events. Yet another element type is used to record my membership in a family.

All of this gives it very much the feel of a relational data structure, because that’s just what it is, for all the reasons that make relational structures appropriate. But for the simpler cases, i’m thinking it would be nice to take a more compact structure like this:

ID: BoisenSean
NAME: Boisen, Sean Cornell
OCCUPATION: computer scientist
BORN: September 21, 1958
   AT Tacoma, Washington, United States
   OF father [BoisenElliott]
   OF mother Boisen, Dorothy Louise (Claycomb)
MARRIED: July 25, 1998
   TO Zarba, Donna Irene (Jones)
   AT Andover, Essex County, Massachusetts, United States
NOTE: married at Free Christian Church by Jack L. Daniel
DIED: September 20, 2018
NOTE: this hasn’t happened yet

and use a program to generate the various informational elements. Of course, this output won’t be fully linked in to other records (if it could be, you wouldn’t need the distributed representation in the first place), and will therefore require some manual adjustment. But particularly since i hope to gather a lot more information from relatives who don’t even know how to spell XML, it seems some more amenable format may be required.

I’m working on some Perl code to process this, which i’ll post once it’s done (not quite yet).

The GEDCOM 6.0 Genealogy Specification

I got started by looking around at XML specifications for genealogy. There’s a nice summary here. Michael Kay, who wrote the book i rely on for XSLT, has some interesting work called GedML, including SAX parser code and XSL transformations to generate HTML representations (which i’ll definitely want to do eventually). But i opted to follow the GEDCOM 6.0 beta specification (PDF documentation). It’s probably not the last word, but it seems closer to an true XML spec in spirit, and farther from the quirks of GEDCOM, which can hardly be faulted for showing its roots in the stone-age of data processing. There’s also some history of various formats here.

Enough data has been done in GEDCOM over the years that i’m betting it’s the one with the most traction, and the one most likely to succeed in “future-proofing” data. Even if that bet loses, any structured spec will always be better than none. Note i’m completely skirting the issue of how to get all the GEDCOM data that’s currently out there into a more forward-looking representation, though the DAML folks have done some work on this, including one by my colleague Mike Dean (link: http://www.daml.org/cgi-bin/dumpont?http://www.daml.org/2001/01/gedcom/gedcom). Since i’m essentially starting from scratch, i’ll just be entering data by hand for a while.

Feb 2007 update: McAfee’s SiteAdviser insists that the daml.org site is hosting malware, and that SemanticBible therefore deserves a big red X by virtue of including a link to it. I think daml.org is a genuinely useful site, and frankly i feel a little bullied by SiteAdviser: on the other hand, i certainly don’t want to expose readers to hazards. So i’ve reluctantly replaced the links above with text-only URLs.

Family Tree

Funny coincedence: i was listening to homegirl Nicole C. Mullen’s self-titled album while i was finishing the last post on genealogy, only to hear this song.

Dedicated in loving memory of Napoleon Coleman, Sr., Bessie (Smith) Coleman, and Eloise & Isaac Roberson . Words and Music by: Nicole Coleman-Mullen

He was
A beautiful shade of chocolate
She was
A beautiful shade of red
And under the watchful eyes of heaven
Afro Indian girl boy were wed
Little did they know
So long ago
Flowers would come
From the seed they’d sown
Yeah, little did they know
What would come to be
A forest would grow
From the soil and the seed
And these are the branches
In my family tree
Napoleon, Betsy, Isaac, Eloise
Under their branches
I can feel a breeze
Where the leaves from the trees
Make a canopy for me to
Live in the shade, yeah
The leaves from their trees
Made a canopy for me
To live in the shade . . .
I wanna thank you
Cause you took the heat for me
You took the heat for me . . .

I don’t have the same background, but i share the sense of gratitude for those who went before and did things i’ll never know that allow me to stand here today.

New Category: Genealogy

My dad had an extended visit last month, which among other things gave us some time to talk about family history. We also visited Ellis Island during a trip to Manhatten, which i highly recommend. A better understanding of history would sure help with a lot of issues we face today: instead, we keep reinventing and re-stumbling because we’ve lost context.

As it turned out, the ancestors we were searching came to the US prior to the big “third wave” of US immigration, so Ellis Island didn’t have any of their records. But this whole process, and other activitives in structured data (like SemanticBible) reignited my interest in capturing our family tree in a reusable way.

My mom gave me some notes from some genealogy work a relative did back in the 70s. How the times have changed! These are foms developed by the Mormons (who have long been leaders in genealogy research because of some peculiar beliefs about being baptized for deceased relatives), filled out by old-fashioned typewriter, or with handwritten notes, along with some xerographic copies (that’s what they used to call them) of wedding announcements, obituaries, and the like. There’s some interesting correspondence with the head of the Custer County (Nebraska) Historical Society, who said he had collected some 40,000 obituaries (doubtless in some very large file drawers, in the pre-digital age), including some information about my great-grandfather, Arthur Napoleon Robinett(e).

So all this has inspired me to try to organize the information i have in an appropriate way for the digital age: i’m starting with XML, though eventually OWL might be more appropriate. My hope is to enter what i have (already quite a bit for the past three generations), and then get it posted on the web so the extended family can review and hopefully extend and correct what i have.

This category will operate somewhat independently from the rest of Blogos, though everything will get posted to the main URL as always. If you’re only interested in this category, you can view it here, or follow it via RSS with this channel (you’ll need an RSS reader like bloglines).