Paul,

This all sounds very cool!

I have been thinking that it would be neat to do a google smashup that would take all locations for an individual and plot them on a map as a polyline based on time or just as simple events with pop ups to explain them.

Another variation would be to show all EVENTS from the gedcom for a given map area as pushpins and pop ups. These could be filtered by event type.

Both these can be done by calling the web service to fetch the information and then passing it to the google API. I may get to this myself, but I have not had anytime for extra activities lately so if someone else want to try, go for it. :)

-Steve

Paul Johnson wrote:
On Fri, Nov 18, 2005 at 10:10:51AM +0000, Dave Cross wrote:


One of the interesting things I found out at last night's Web Frameworks Night[1] in London was that Catalyst[2] has a driver which allows you to use a Gedcom file as a model[3].

Haven't tried it yet, but it looks very interesting.


In a similar vein, I thought that Gedcom.pm seemed to be somewhat lacking in
buzzword compliance, so I decided it was about time we graduated to Web 2.0.
Woohoo!

I've done a little work recently on a web services module for Gedcom.  I think
the Gedcom.pm API is fairly good already, so building on that has been
reasonably straightforward.  At the moment there is a plain text interface as
well as XML and JSON.  I'm not sure whether I'll bother with SOAP.  It's all
very RESTful.  See how buzzword compliant we are becoming already?

So at the moment you do things like:

    $ wget -qO - 'http://wesley:8529/ws/plain/royal?search=elizabeth_ii'
    /ws/plain/royal/I9

    $ wget -qO - http://wesley:8529/ws/plain/royal/i9/name
    Elizabeth_II Alexandra Mary /Windsor/

    $ wget -qO - http://wesley:8529/ws/plain/royal/i9/birth/date
    Wednesday, 21st April 1926

    $ wget -qO - http://wesley:8529/ws/plain/royal/i9/children
    /ws/plain/royal/I11
    /ws/plain/royal/I15
    /ws/plain/royal/I19
    /ws/plain/royal/I23

    $ wget -qO - http://wesley:8529/ws/plain/royal/i9
    0 @I9@ INDI
    1   NAME Elizabeth_II Alexandra Mary/Windsor/
    1   TITL Queen of England
    1   SEX F
    1   BIRT
    2     DATE Wednesday, 21st April 1926
    2     PLAC 17 Bruton St.,London,W1,England
    1   FAMS @F6@
    1   FAMC @F4@
    1   RIN 10

    $ wget -qO - http://wesley:8529/ws/xml/royal/i9
    <INDI ID="I9">
      <NAME>Elizabeth_II Alexandra Mary/Windsor/</NAME>
      <TITL>Queen of England</TITL>
      <SEX>F</SEX>
      <BIRT>
        <DATE>Wednesday, 21st April 1926</DATE>
        <PLAC>17 Bruton St.,London,W1,England</PLAC>
      </BIRT>
      <FAMS REF="F6"/>
      <FAMC REF="F4"/>
      <RIN>10</RIN>
    </INDI>

    $ wget -qO - http://wesley:8529/ws/json/royal/i9
    {"rec":{"xref":"I9","level":0,"tag":"INDI","items":[{"level":1,"pointer":"","value":"Elizabeth_II Alexandra Mary/Windsor/","tag":"NAME","items":[]},{"level":1,"pointer":"","value":"Queen of England","tag":"TITL","items":[]},{"level":1,"pointer":"","value":"F","tag":"SEX","items":[]},{"level":1,"tag":"BIRT","items":[{"level":2,"pointer":"","value":"Wednesday, 21st April 
1926","tag":"DATE","items":[]},{"level":2,"pointer":"","value":"17 Bruton St.,London,W1,England","tag":"PLAC","items":[]}]},{"level":1,"pointer":1,"value":"F6","tag":"FAMS","items":[]},{"level":1,"pointer":1,"value":"F4","tag":"FAMC","items":[]},{"level":1,"pointer":"","value":10,"tag":"RIN","items":[]}]}}

The interface is basically the same as that of Gedcom.pm, so any data retrieval
method you could use in the module should be available in the web service.

At the moment it only supports GET, though I see no reason not to support POST
and/or PUSH, and DELETE, with appropriate safeguards.  It's also not quite
finished, but it is slowly moving forward.  I really need to make my svk
repository publicly available.

The next step, of course, would be to make some super duper AJAX app.  I'll
probably do a noddy one so we can tick another buzzword off the list.

I'll put something up so people can play with it and get some code out of the
door as soon as I can.  I'm hoping that having written this I will now do that
sooner rather than later.  Any comments about the interface and the direction
in which it should go would be most welcome.


Reply via email to