rstacruz / kingraph

Plots family trees using JavaScript and Graphviz
439 stars 86 forks source link

Duplicated names #1

Closed adomingues closed 7 years ago

adomingues commented 7 years ago

I am making my family tree, and kingraph is a great tool for the job. I am having some problems with Duplicate names though: Both my father and I share the First name, so I end married to my mother, which is weird :)

Is there a way to resolve this without resorting to using my middle name? This also an problem in that YAML will not allow names with spaces (I think). For instance:

people:
  Antonio Miguel:
    name:  Antonio Miguel
    fullname: Antonio Miguel de Jesus Domingues
    gender: m 

Cheers.

adomingues commented 7 years ago

This also an problem in that YAML will not allow names with spaces (I think)

I thought wrong: YAML does allow something like:

    parents: [Antonio, Graciete]
    children: [Antonio Miguel, Catarina]

The point about duplicated still stands, since this is common in large families. Probably unsolvable, but I will leave it here nonetheless.

rstacruz commented 7 years ago

oh hey, sorry this took a while. spaces are fine. You can indeed use spaces in the person's ID.

families:
  - parents: [John, Susan]
    children: [John II]

people:
  John:
    name: John
    fullname: John Marks
  John II:
    name: John
    fullname: John Marks

how you choose your ID's is up to you; sometimes a middle name (or initial) would be necessary to disambiguate.

rstacruz commented 7 years ago

Some hints on how to go about with duplicate names:

In the same family

In some Western cultures, the convention is to use roman numerals to denote later generations (eg, James Potter II in the Harry Potter example).

Some cultures also like using Sr and Jr to designate the first and second generations, respectively (eg, Jimmy Carter Jr.), with III and so forth for subsequent generations.

In different families

The problem now is when one name appears across 2 different families with the same last name. You can use an initial of their maiden names (eg, James K Potter and James R Potter) to disambiguate.

rstacruz commented 7 years ago

@adomingues, I'd love to know more about your experience with Kingraph! Were you able to come up with a useful family tree? What other tools have you tried?

adomingues commented 7 years ago

HI @rstacruz,

my turn to apologize for the late reply - Easter happened :)

Empty spaces

Cheers. I ended up doing what I should have done before writing the issue and tested it. As you say, it worked without problems.

In different families

The problem now is when one name appears across 2 different families with the same last name. You can use an initial of their maiden names (eg, James K Potter and James R Potter) to disambiguate.

Yep, that is the issue that I have: very large family on both my parents side's and thus some names are repeated. I ended up using the last name to disambiguate and it works fine.

adomingues commented 7 years ago

I'd love to know more about your experience with Kingraph! Were you able to come up with a useful family tree? What other tools have you tried?

@rstacruz the experience has been good. It was straightforward to install (Linux Ubuntu 16.4) and to create a simple tree. Creating a larger one required some trial and error mostly because the indentation needs to be keep accurate and, well, mistakes happened on my side.

My goal was to create a simple and visually attractive tree, and it should be a free tool, preferably using code so that I could fiddle with it if needed. I first saw what could be done with R/python because those are the languages I am more familiar with, but there was nothing that appealed:

  1. Very few tools available
  2. Some of the graphics in the documents were ugly
  3. The process to generate the trees was not very straightforward

So kingraph came to the rescue. It fits almost all my requirements, and though being JavaScript, the templates are YAML which I am familiar with. It was also very easy for my sister to help me with little explanation, even though she never used YAML - she knows JAVA and c++ though.

As for the results, it is looking good at the moment. The tree only goes back to my grandparents, but includes all my 13 uncles and dozens of cousins and their families. It also has my wife's family, so it is pretty complex. Kudos for the output in svg in case people want to customize it post-generation.

One feature I would suggest would be to have the possibility to have families in separate files, and then "source" them as needed. Say I would like to remove my wife's family it have to comment out or delete it. If it is nested with other families it might get messy. By sourcing into a master file it would be easier to mix and match the tree. I don't know JS so no idea how feasible or how much work it would require.

Nevertheless as it is, kingraph does one job and does it well

Cheers.