From: Nick H. <nic...@ho...> - 2013-10-08 16:49:47
|
On 08/10/13 17:28, Craig Treleaven wrote: >> Last year I wrote a prototype to investigate a hierarchical data >> structure: >> >> http://www.gramps-project.org/wiki/index.php?title=GEPS_006:_Prototype >> >> The prototype keeps the existing Place object to hold genealogical data, >> but creates a new Location object to hold physical location data. These >> Locations are stored in a hierarchy. >> >> I also investigated a couple of new widgets which exploit this new data >> structure. >> >> All the feedback I received was positive, but not many people seemed >> interested at the time. Perhaps I should raise it on the development >> list again for inclusion in v4.1? > > Nick, could you outline how the hierarchy will work. In my case, many > of my ancestors came to an area of Southern Ontario, Canada, near the > border between Bruce and Huron counties. Can you specify a radius > (40km, ~25 miles) or does the hierarchy only work on political > boundaries? Instead of a place being represented by a single record in the database, it would consist of a hierarchy of places. In your example, you would create a location called "Canada" and flag it as a country. You would the create a location called "Ontario" and flag it as a "Province". "Ontario" would have "Canada" as its parent. Then you would create locations for the counties, with the provinces as the parents. This allows you a create a very flexible structure in which locations such as "Canada" are re-used for many places. Your existing data will be converted and locations created for you. Don't try the prototype with live data though because it will convert your database into an unsupported format. The prototype only allows for a single parent for each location. Obviously, I will allow multiple parents in the final version. It will be up to you how to define the hierarchy. A radius is not really applicable, but the idea is to store a magnification factor alongside the longitude/latitude so that the geography view can display the relevant region. Nick. |