1. All ancestor and descendant trees watch out for duplicate branches because otherwise trees can grow too large or in the case of errors can enter and end less loop.
2. For each direct ancestor os descendant is checkd if they have been in the tree before as a direct descendant. If yes, their name is displayed but further ancestors or descendants after them are only displayed the first time they appear.
3. On subsequent appearances, the name is displayed with a cross reference to their first appearance so you can follow further ancestors or descendants. But, if that duplicate individual has no ancestors or descendants, the second appearance does not have a cross references (because it is not needed), but the name still appears.
Your tree has proceeded as follows. Pierre Jacques BROSSIER is the duplicate direct descendant. The first appearance is in the direct line
Pierre BROSSIER -> Pierre Jacques BROSSIER
His second appearance is in the direct line
Marie LELAURRE -> Pierre Jacques BROSSIER
Although Pierre BROSSIER and Marie LELAURE have also appeared twice, they have each only appeared once as a direct descendant and thus neither have been considered yet as a direct descendant. Pierre Jacques BROSSIER, however, has now appeared twice as direct descendant. He shows without a cross reference, however, because he has no descendants. If he had descendants, the cross reference in #3 would appear. Attached is piece of your tree with a child added to Pierre Jacques BROSSIER. You can see his second appearance now has a cross reference.
I can't recall exactly why I did by this method. I am sure this method catches all trees duplicate branches and makes sure no one is mistakenly left of the tree. I think if duplicates were checked one level higher (i.e., at the spouse level) it was possible to lose connections to additional spouses for certain individuals. I can't think of example now and maybe it can be improved, but the current version does work as intended.
Now, in scripts, you can be sure no one will appear too many times, but individuals may appear more than once. One of the best ways to find ancestors or descendants in trees is to "show ancestors" or "show descendants" and then use the "listed records" property of that window to get a list of ancestors or descendants. For duplicate individuals, their entry will have a third item with the cross reference number. For a duplicate like Pierre Jacques BROSSIER, however, it may not have the cross reference number (I would have to check). If is not there, I will see if it can be added. Otherwise, if it is important, you script would have to check (but would only have to check those have no further ancestors of descendants). I would need to know about the script to see how to do that. One thing I do (more commonly in python) is to create a dictionary variable and add an entry for each individual processed using their id property as a key. For each individual, you then check first if the key is already in the dictionary before proceeding. Checking keys in dictionaries is much faster than other ways to check for duplicates. If your script manually builds trees by following connections, it has to have its own method to check for duplicates.
On Oct 22, 2011, at 5:52 AM, Stéphane LELAURE wrote:
> Hi John,---------------
> I have had a problem with one of my AppleScipt outputs: I have noticed that
> GEDitCOM II doesn't consider this individual as being the same, so when I
> Thank you very much.
John Nairn (1-541-737-4265, FAX:1-541-737-3385)
Professor and Richardson Chair
Web Page: http://www.cof.orst.edu/cof/wse/faculty/Nairn/
FEA/MPM Web Page: http://oregonstate.edu/~nairnj
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.