Enabling the Distributed Family Tree

This is the official research blog for the Distributed Family Tree, an open network of genealogical data and metadata.  In a nutshell, the big idea is that we can combine all available genealogical information on the Internet into a single distributed network.  The foundation for this network is the substance of the Master's Thesis that I am currently working on.

Scriptable Plug-ins

Date Interpretation 
I want to write a plug-in that will interpret dates in string form as they are added to the cache and add the appropriate date form as well.  In other words, when it sees dates like these:

“7 JUN 1873″
“abt 22 dec 1906″
“between 1817 and 1819″

It will interpret them and add a consistent, comparable, searchable version of the date to the cache.  However, there’s no way that I can cover all the cases, and I most certainly cannot cover all languages:

“rond 10 juli 1549″
“7 junio 1912″

It makes sense then to provide an easy way for others to extend this plug-in.  The Eclipse plug-in architecture, though powerful, is not only overkill but it reduces the set of people with the technical knowledge neccessary to implement a plug-in to statistically zero.  With this in mind, I thought I’d try a new approach: scriptable plug-ins.

Scriptable Plug-ins
A scriptable plug-in is a single file written in the scripting language of your choice: Javascript, Ruby, Python, Tcl, Groovy, XSLT, PROLOG, JudoScript, ObjectScript, NetRexx, or ooRexx (a list that coincidentally coincides with the scripting languages supported by Jakarta BSF, fancy that!).  Genesis will load these scripts at startup, at which time they can install their own hooks into the system and/or start their own secondary threads.  Installed scripts can be managed just like any “real” plug-in.  And because Genesis is based on the Eclipse RCP, it wouldn’t be too difficult to provide script editors with syntax coloring and debugging!

But of course the bells and whistles are way over the distant horizon.  What you can expect in the near future is the ability to write scriptable plug-ins and install them into Genesis.  I’ve already done some preliminary testing, and things are really looking great!  I hope that this will really improve the extensibility mechanism and that we can start seeing community contributions.  If anyone is interested in writing an extension of any kind for Genesis, please let me know!  I’ll bend over backwards to make it possible.

    Comments

  1. Permalink to this comment crex

    Splendid idea to make it possible to use scripted plugins. That would be interesting to try out. Looking forward reading more on how communicating with Genesis is done. A pity that Jakarta BSF doesn’t support the most used Internet scripting languages: PHP, Perl, VBScript … but the onces supported are powerful enough. Could be a reason to learn a new language :)

    I’m impressed by the pace you set in this project. Good work!

  2. Permalink to this comment Hilton

    Thanks! I wish there was support for those languages as well, but I guess noone has taken upon themselves the task of writing an interpreter for them in Java. Personally I’m quite excited to start writing plug-ins in Ruby.

  3. Permalink to this comment Anders Berg

    Support for php and perl would have been nice…!

    Regarding date interpretation and making it searchable you should focus on just the year, and leave the rest for the moment. When searching I see no need to be search more specific. The presentation should make it sortable, ie with year, month and day in that order.

    Just another thought. Did you ever consider making this a web project rather than a stand-alone program?

  4. Permalink to this comment Jesper Zedlitz

    Keyword “web project”: It would be nice if Gensis’ logic could be separated from code needed to build the Eclipse GUI.

    I am working on a web application for DFT (that will eventually replace my very projects http://gedbas.genealogy.net, http://adressbuecher.genealogy.net and several other databases at genealogy.net)

  5. Permalink to this comment Hilton

    I knew I would be doing this as a thick client from the start for a number of reasons. First of all, I want Genesis to do inference, which requires a lot of processing time and it makes more sense (to me) to do all that work on each person’s computer rather than on a server. Second, I wanted a very nice user interface without sinking a lot of time in it. Finally, I’d like to write a peer-to-peer layer plug-in for Genesis in the future.

    At the same time, however, I’m being careful to separate the logic from the UI. If anyone ever wants to reuse the logic code in a web application they’re welcome to. Furthermore, we may see a framework in the future that can produce a web UI from Eclipse UI code (http://www.eclipse.org/proposals/rsp/).

    I’m really excited about the work Jesper is doing on a web application for the DFT though. Not only will it really empower Genesis, but I think it will have a significant impact on Internet genealogy as a whole.

  6. Permalink to this comment Anders Berg

    I am myself working on a web application similar to DFT. I came up with this idea independently of you and Jesper. I was just recently informed of your work. My approach is slightly different. I focus on several different sources, both web sites such as PGV and public databases, and I also concentrate on material from my home country Sweden. The idea is however similar. To be able to search in detail and easily access a wide variety of genealogical data spread over a large number of places on the net.

    The site is mainly in Swedish, but you can try it out at

    http://personsok.scangen.se

    I am doing this for my own personal enjoyment and it is not part of any commercial enterprise or larger genealogical project.

    I think most Swedish phpGedView sites are included. It is not widely in use.

  7. Permalink to this comment Hilton

    This looks really great!

    Recently a subset of the PGV web service (http://api.coret.org/zoeken/genealogyservice/) was implemented on the Genealogie Online website (http://www.genealogieonline.nl/), making over 2.2 million names available with a single request (which is much faster than searching PGV sites one-by-one as you already know). If you’re willing, I think it would be wonderful for Genesis to be able to search your site when looking for data. Or if we can cooperate in some other way, please let me know!

  8. Permalink to this comment Anders Berg

    Let’s see if we can combine our forces at some stage. I will keep following your work of course! I don’t think you should at this stage “hook up” on my “personsök” (Person Search) because it is also at an early stage in development. I need to look over a number of things apart from adding more material. I also wish to monitor my traffic regarding bandwidth for some time.

    You can however add my PGV site to Genesis:

    http://scangen.se/phpgedview/

    All the best and Happy Easter,
    Anders

  9. Permalink to this comment Hilton

    That makes sense, just let me know. You can add your site at http://www.dftproject.org/registry/ (which will allow you to use your own e-mail address and password). And Happy Easter to you too!

Leave a Reply

cheap generic kamagra kamagra uk viagra, Viagra Buy generic viagra levitra and cialis pills