Drupal, The Semantic Web and Genealogy

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
brucewhealtonjr's picture

Hello all,
I would like to develop a genealogy application in Drupal. I wanted to see what has already been done specifically as it relates to using the Semantic Web. I know there are some genealogy modules but I'm interested in this from a Semantic Web perspective. I know that Drupal 7 supports RDFa out of the box, as it were. However, for Genealogy there are two specific vocabularies (at least) that one would want to use for Genealogy, that being BIO for biographic information and it has a focus around events in one's life. It is defined here:
http://vocab.org/bio/0.1/.html
and REL for relationships which is defined here:
http://vocab.org/bio/0.1/relationship.html
FOAF is valuable too for genealogy.
Two of those vocabularies do not come with Drupal by default so maybe in the template one would define the prefix/namespaces to appear at the top of every html file sent to the browser.
This could be good for just presenting one's own family's genealogy but I'd like to think of contributing to the Semantic Web of data.
We wouldn't want the average user to have to figure out which terms to use when entering information into a content submission form. So, we would have custom content fields defined and if fields for Mother, Father, children, marriage, etc. they would just enter in text values and the mapping of the property to the value would happen behind the scenes as it were. This would allow for consistency for one, and in addition, it would ensure that properties are being applied to all information that is entered, so that we have semantic data, as it were.
We might have Content Type Individual and there would be fields for Mother, Father, DOB, birth location. So, we would want to be sure that one person doesn't enter their mother's name and apply a property that they make up themselves, such as hasMother. That is what I was doing before I realized there are vocabularies and now I realize the value of using a shared vocabulary, such as foaf, bio, and rel.
How hard would this be to do?
I could use ideas on how to promote the idea with others as well. I know of some people who know about Genealogy and are into that but are not so much into the Semantic Web. They want to know what will be different about this? There are many sites out there that indeed do offer many features and data for genealogy research but not many are using open-data, semantic web technologies and the companies that do offer genealogy data online will not be offering everything for free. However, I think there is value in building a semantic web and would like to contribute to it.
Any advice would be appreciated.
Oh, lastly, I think it would be valuable to publish the data as RDF as well, a RDF dump, as it were... something that could be queried and maybe submitted to Freebase, as well as Sindice and other semantic web indexes. I'm not yet sure how to use Freebase and could use advice on that as well. I know with sindice.com one just enters the url of the rdf file.
Thanks,
Bruce

Comments

Check a related post

scor's picture

Check a related post Genealogy with views and cck (and RDF?). I don't know much about genealogy in Drupal specifically, but it's worth checking what modules are available and maybe map them to RDF if they use nodes or even better, entities in Drupal 7. As far as vocabularies are concerned, I had heard of Ian Davis work on genealogy, so that's surely some route to investigate.

There are many sites out there that indeed do offer many features and data for genealogy research

Before diving into the RDF aspect of this, I would check if a vanilla Drupal 7 with Fields (using core fields modules and references) can fit your use case, especially in comparison to purpose-built applications like you mention above. You might have to write some custom code (not related to RDF) to match their feature set.

So, we would want to be sure that one person doesn't enter their mother's name and apply a property that they make up themselves, such as hasMother.

The current RDF implementation will play in your favor here... applying a random property is actually not possible with the current way the RDF mappings work: once you define a set of properties for a given field, all the entities with that fields will inherit that setting. In other words, the RDF mapping is "locked" at the entity type model level (which is what you want here to avoid people entering data to make mistake).

I think it would be valuable to publish the data as RDF as well, a RDF dump

not a problem with RDF Extensions which can give you RDF in many formats for each entity or your whole site via a SPARQL endpoint (which you can query for specific results or just get the whole dataset).

Semantic Web

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: