Archive

Posts Tagged ‘FOAF’

Genealogy and Linked Data (revisited)

November 4, 2009 10 comments

I now have a new improved version of my family tree up as linked data here. To produce this family tree I converted the original family tree that my parents created using a perl script that takes GEDCOM to RDF. I then manually cleaned up the RDF to get the URIs in a form that I wanted.

This resulted in an RDF file giving information about parent/child, sibling and spouse relations for my family members. The vocabularies (or ontologies) used for this were FOAF, BIO and RELATIONSHIP.

I was interested in displaying more than just parent/child, sibling and spouse relationships and decided a simple extension could be to have grandparent/grandchild and ancestor/descendant information. To compute this information I used the Protege 4 OWL 2 editor. To compute grandparent information I used a property of OWL 2 called “property chains“. The property chain for computing grandchild relationships from child ones was straightforward:

childOf o childOf -> grandChildOf

(or for those who prefer rules: childOf(?x,?y) , childOf(?y,?z) -> grandChildOf(?x,?z) )

This simply states that “the child of the child of someone is a grandchild of that someone”.

The ancester information was event more straightforward to compute. Here we just make the property parentOf a subproperty of ancesterOf and then make ancesterOf a transitive property.

Given the two axioms above we can then let the OWL reasoner in Protege 4 do all the hard work and compute the implicit relationships based on the explicitly stated ones. Anyone interested in using OWL to compute more family relations should read this paper by Robert Stevens.

So I now have some RDF containing parent/child, ancester/descendant, sibling and spouse relationships. Also in this data are notions of family groups and information about birth [1] and death events. These events contain information about dates and places (given as text) of birth/death. Having this information as literals is not very interesting as it means I then have to go and use Google (or similar) to find additional information about the dates/places. To get round this (and create some links in my linked data) I decided to connect the places of birth/death to the corresponding resource in DBpedia (an RDF version of wikipedia) and do similarly for the dates [2]. An example of this can be seen here http://www.johngoodwin.me.uk/family/event1917. This means I can now find additional information about a persons place of death/birth by following the links in the data if I should choose to do so. To link birth/death events to dates/place I used the event ontology.

In order to host the data as linked data I used the Talis Platform and the Paget (2) PHP library.

There is a SPARQL endpoint for the data here. We can use this to query for my uncles as follows:

PREFIX rel: <http://purl.org/vocab/relationship/&gt;
PREFIX foaf: <http://xmlns.com/foaf/0.1/&gt;

PREFIX family: <http://www.johngoodwin.me.uk/family/&gt;
select ?uncle ?name
where
{
family:I0243 rel:childOf ?parent .      ( finds my parents)
?parent rel:siblingOf ?uncle .          (finds my parents siblings)
?uncle foaf:gender “male” .          ( find the male siblings)
?uncle foaf:name ?name .         (this returns their names)
}

My next plan is to build some mash-ups using this data. Such a mash-up could use resources on the web of linked data to find famous people born in the same place/year as various family members, identify BBC programmes that are about said places etc. etc.

Now all I need to do is find a long lost relative who is also into genealogy and linked data so I can connect some nodes…what are the chances???

 

 

 

[1] – for obvious privacy reasons no birth information is given for people still living.

[2] – this was a fairly tedious manualish process – but some scripting helped.

 

 

Reblog this post [with Zemanta]

Genealogy and the Semantic Web 2

April 18, 2009 2 comments

I’ve been busy converting my parents hard work on their  family tree into RDF. I blogged about initial attempts here. It’s far from finished, but at around 500,000 triples already it looks like it’s going to be a lot of RDF!

You can view the RDF (as it is) here, but seeing as RDF is for machines a more human friendly version can be browsed here. So far I’ve been concentrating on linking places of death and birth to various other datasets include geonames, DBpedia, Freebase and Ordnance Survey (though there still a fair few places to link).

To be done:

1) Finish connecting all the places.

2) Sort date formats out.

3) Turn into linked data with dereferencable URIs and content negotation.

A more detailed write up when it’s all finished…

Reblog this post [with Zemanta]

Web 3.0 and Social Networks

January 25, 2009 7 comments
Icon for the FOAF (Friend of a Friend) project...
Image via Wikipedia

It is probably fair to say that FOAF is where the social web meets the semantic web. FOAF, which has been around for a while now, basically creates a machine readable graph of the sort of information you might include on sites like facebook, myspace etc. Your FOAF file can include links to people you know, your interests and other personal information. It is probably also fair to say that FOAF files were, until now, the sole property of the geek. However, this has changed, and a number of social networking sites such as livejournal, identi.ca and friend feed build FOAF files from your profile information (are there others?). At least now you don’t need to know how to edit RDF in order to have your own FOAF file. Despite that, these profiles are limited by the features offered on the respective sites.

Recently though QDOS launched a new service that makes FOAF profiles extremely easy to build. This service allows uses to create a FOAF profile generated from information contained in your last.fm, livejournal and flickr profiles as well as importing existing FOAF files. You are then given the option to manually enter other information. Furthmore, you can create a public and private view of your FOAF file. I would not recommend including information like your address, phone number or date of birth in a public FOAF file.  So what are you waiting for – go building yourself a FOAF file and join the linked data web.  My FOAF profile can be found here (my original one is maintained here).

For any linked data geeks one other interesting thing about the QDOS FOAF builder is that it has started linking music data from last.fm to the new music linked data service from the BBC. Hopefully this will be just the beginning and we’ll see links to other linked data services from DBpedia, geonames and Ordnance Survey.

Reblog this post [with Zemanta]
Follow

Get every new post delivered to your Inbox.

Join 2,092 other followers