Yet Another Ancestor Tree Explorer

+26 votes
593 views

I needed something to explore aspects of my ancestor tree and while Greg's Ancestor Webs almost gave it to me, it's not quite there yet, so I decided to roll my own. While it was intended just for my personal use, it turned out possibly being of use to others as well, so I'm telling you all about it in case you have a use for it. Here it is (before using this link, see the 2nd update below): https://apps.wikitree.com/apps/smit641/ale/

The "ale" stands for Ancestor Line Explorer. The idea is that you can load X generations of ancestors from WikiTree and optionally specify some people of special interest. When the tree is drawn, the (blood-)lines to those people will be highlighted. You can control (to some degree) how the tree and lines should be drawn (only the lines of interest, the whole tree, or only up to a certain level, etc.). 

Please read the help text (click on the ? in the green circle at the top right of the start page). Have fun and let me know if you find any issues. (Some "issues" might be features angel.)

[Edit: this app was not really intended for a small screen, but there has been reports that it is usable there as well.]

Update: In the past, people occurring more than once in the tree were marked with coloured squares and if you clicked on a square, all other occurrences of that person were highlighted (clicking a second time turned the highlight off). In the current version, that still happens, but in addition, the lines from the root to each occurrence are also highlighted.

Another Update: I have incorporated this tree view into the Tree Apps and it is in the queue to be approved and officially released. In the mean time you can test-drive it at: https://apps.wikitree.com/apps/smit641/dynamic-tree/#view=ale

Final(?) Update: This app can now be found on any WikiTree profile as Ancestor Line Explorer on the drop-down under Tree Apps.

in The Tree House by Riël Smit G2G6 Mach 2 (25.2k points)
edited by Riël Smit

8 Answers

+16 votes

Looks great. You should add it to the Tree Apps.  smiley

by Ian Beacall G2G6 Pilot (311k points)
There are so many of them already, I'm not sure if another is warranted. Also, I believe the Ancestor Webs might be getting some of this functionality, so I'll decide later after getting feedback and hearing what Greg and others might have to say.
I agree with Ian. This looks really promising!
Hi there Riël,

I like your Explorer, and do think that it should be added to the Tree Apps.  You're right in that this app and the Ancestor Webs can tackle the same problem, but from opposite ends - I think there's great value in both apps being available!  

I think for many, your approach to build up and choose the lines you want to investigate will be intuitive and constructivist, and the tree building as you go less mysterious than the Ancestor Webs approach.

By the way, I'm in the process of updating that app as well - the current version that's live in Tree Apps really is only a beta / first draft.  Stay tuned for that.
+9 votes
Hi Riël,

This looks good so far. I have a layout bug though. I have overlapping names, and some names are pretty close to other names that make it difficult to differentiate.

I tried to add a screen shot to this post, but the system won't let me due to size (and I keep reducing the quality and size of the file).

When I look at the issue, part of the problem is that the final generation on a branch shows the name to the right of the node, whereas, everywhere else shows the name to the left of the node. This causes both the overlap issue, and the "too close" issue. I think a consistent placement might help solve the issue.
by Eric Weddington G2G6 Pilot (522k points)

I am afraid that "layout bug" is one of those features :) The fact that the final branch layout has the text on the right is definitely by design (it solves one set of layout problems to do with overlapping names). It is quite difficult to get a perfect layout for all possible trees - at least, I have not mastered D3 enough to be able to do that, so I opted for the "let the user do it" approach. smiley  To get rid of overlapping names you have to play with the Edge Factor and Height parameters (and possibly with Width if things are pushed out too far the the right) until it is OK for your particular tree. Sorry about that, but that is what it is for now angel

Eric, you will be happy to know that names to the left for all nodes is now the default behaviour. I have also automated the hight selection for the tree.  As I have mentioned in the update above, the new version is at https://apps.wikitree.com/apps/smit641/dynamic-tree/#view=ale

+6 votes
I like it. I also like the height and edge options.

I have no clue what the "Labels left only" option is or does. It is NOT intuitive to me.  Also the hover over description was no help to me either.  Nodes?
by Tommy Buch G2G Astronaut (1.9m points)
My apologies, I slipped into computer-speak. I will update the help text. Replace "node" with "circle". A node is just a generic term for an item in the tree. :) In other words, if you hover over one of the circles (or even the square if it has one) representing a person, a tooltip with information about the birth and death of the person will appear.

If your tree has people (nodes) that have not been collapsed (i.e. the circe is filled with white) and no ancestors are shown for them (technical term: they are leaf nodes) and you remove the tick next to "Labels left only" and click "Redraw", you will see name associated with these leaf nodes appear to the right of the circle.
The text has been updated and uploaded to the link above.
Looks good.  How about an option to highlight the name with a color of the user's choosing when its a leaf node (aka brick wall)?  I would be more inclined to choose a color to save screen space then to display labels right of the circle.
Your colour brick-walls idea is a good one, but the name to the right does not necessarily mean a brick wall. If I have loaded only 4 generations, everyone in that last generation will have their name displayed on the right because they are expanded leaf nodes in the current tree.  The name-on-the right thing was part of the example code I borrowed from the internet to draw the tree and it works nicely in certain tree structures. I just added the option to not do it and changed the default after Eric's "complaint" :)
Brick wall colouring has been added
Thanks. It looks great!  The red brick walls sticks out very well with the black.
+5 votes
When someone enters a WikiTree-ID with one or more spaces before or after the ID, you should strip the id of those spaces before trying to load the id with one or more spaces attached to it.
by Tommy Buch G2G Astronaut (1.9m points)
Oops, thought I did that, but it got lost in a code restructure. Will add back in.

Edit: Actually I do that already. The current behaviour is outside my code (and affects all the Tree Apps), but I think I should be able to fix that.
This has been fixed now. Note that this is an issue on the production site as well.
Thanks. It does work for me now too.
+3 votes
Can you program a header row option to align left of circles to say what generation it is? For example:

Parents (or P)

Grandparents (or GP)

Great Grandparents (or GGP)

2nd Great Grandparents (or 2nd GGP)

3rd Great Grandparents (or 3rd GGP)

etc.
by Tommy Buch G2G Astronaut (1.9m points)
An optional tree header has been added
Awesome. I like how you added the generation number in parentheses.
+6 votes
Here is yet another site that plays with WikiTree but they are not WikiTree centric.

I am just sharing it so you might be inspired by other ideas you can adapt here.

https://learnforeverlearn.com/ancestors/?junk=doesnotmatter
by Michael Stills G2G6 Pilot (530k points)

Oh, that is very cool. Wish I had the skills/knowledge to do something like that. It is exactly the kind of thing I had in mind, but could not quite execute. smiley

You may have discovered that if you upload a WikiTree GEDCOM that it recognized it and adds linking features.
+6 votes
Well done!!  I like that it is fast, simple and gives you the most information in the available space.

I am currently travelling and it works well on my ipad despite a slow data connection.
by Leon Bezuidenhout G2G6 Mach 2 (23.7k points)
+4 votes
Hi Riël,

This is great! I love the highlighting lines for pedigree collapse. Like others, I also appreciate the clean and simple layout. Nice work.

It took me awhile to understand the distinction between these three:

1.) "Max Generations: N" + "(Re-)Draw Tree"

2.) "Get N Generations and Draw Tree"

3.) "Show Tree to Level: N"

Even now, after spending 15 minutes on it, I don't fully understand them. And I managed to crash things while attempting different combinations in order to figure them out.

You might consider removing one or two of them altogether. Even though you'd lose some functionality, it might make things more intuitive.

Thank you contributing your time and talents to our community!

Chris
by Chris Whitten G2G Astronaut (1.5m points)

Please, can you provide more information about the crash? Can you recreate it? I would really like to know what the issue is/was.

As for the confusion, my sincere apologies! I'm loathe to lose the functionality, but I'll see what I can do to make things clearer. For one, I see I neglected to add a tooltip to Max Generations, so that might be part of it. Anyway for the record, here is an explanation:

  • Max Generations determines the number of generations to fetch from the database, using the API and given the ID in the ID field. i.e. the app does this once when Get N Generations is clicked. Any data it might have retrieved previously is discarded at that point. Unfortunately, currently GO will set all parameters to their default values before fetching (e.g. max gen = 5). The reason for that was trying to prevent a person set max gen to a high number for one profile and then forget that it is high when they want to look at another profile's tree.
  • (Re-)Draw Tree just redraws the tree with whatever (possibly new) parameters have been set at the time. Max Generations only plays a role here in that it determined (at the time of the API calls) the maximum amount of data available to display.
  • Show Tree to Level N determines how much of the available data should be displayed. For example, if you have loaded 16 generations of your ancestors (and perhaps saved them to a file), you can then set the level to display at a comfortable 6 or 8 while investigating dead ends early in your tree and expand to higher numbers without having to wait for the API to go and fetch them again.
After the initial API calls, this app does not currently expand the tree via additional API calls (like e.g. the Dynamic Couples Tree). It is something I might add at a later stage.

Hi Riël,

Sorry, I was not able to recreate the loading problem. :-|

Here are a couple small changes that might help with the UI:

  1. Maybe you could move the "People of Interest" field and the "(Re-)Draw Tree" button inside the Options box to clarify which functions the button applies to.
  2. You might change the label "Show tree to level" to "Limit display to generation".
  3. Would it be possible to dynamically change the number of generations in the "Show tree to level" pull-down menu when the number of available generations changes? I know that would mean redrawing the options box, but if it's feasible, then you could limit the pull-down menu to the number of available generations.

Thanks again for your work on this!

Chris

I think I might have experienced the same "crash" as you did - if I open a tree for someone and then just leave the page for a while, when I come back and try to load more generations (either via load or go) without changing anything other than the max gen, then one of 2 things happen: either things seemingly just hang (their is actually an exception being thrown because the API call suddenly happens to return no data), or an error is displayed that WT does not know the requested WtId.  If one then refresh the page, things work again. I'll have to do more digging to try and find out what's happening.

Anyway, thanks for the ideas, I'll come up with something.

Your suggestions were good, Chris :). I have implemented them all and a PR is in the queue. You can see the changes at https://apps.wikitree.com/apps/smit641/dynamic-tree/#view=ale

That's great, Riël!

When this goes live, I hope you'll post a new G2G announcement for this. If you don't, Jamie or I will. We will want to get it in the newsletter.

Related questions

+51 votes
9 answers
3.8k views asked Jun 19, 2023 in The Tree House by Riël Smit G2G6 Mach 2 (25.2k points)
+53 votes
24 answers
1.7k views asked Jul 11, 2023 in The Tree House by Riël Smit G2G6 Mach 2 (25.2k points)
+17 votes
3 answers
+17 votes
1 answer
+8 votes
1 answer
+25 votes
10 answers
+12 votes
2 answers
386 views asked Jan 28, 2023 in WikiTree Help by James Evans G2G6 Mach 1 (10.7k points)
+12 votes
1 answer
155 views asked Aug 4, 2023 in The Tree House by Steven Harris G2G6 Pilot (756k points)
+5 votes
1 answer

WikiTree  ~  About  ~  Help Help  ~  Search Person Search  ~  Surname:

disclaimer - terms - copyright

...