Interfam is two things.  In the beginning it was the family tree system I designed and coded,  but it has now widened into a repository of family history, photo albums and documents, now hosted on the internet at this website. 

Interfam started without a name many years ago, before the age of computers and “technology” when I began to collect notes about family connections.

We had a fair number of close and not-so-close relatives but to me the relationships seemed quite complicated as to who these people were, and who belonged to whom.

But knowing only one grandparent, and three out of the four being immigrants, our family history knowledge went back no further than to them, except for my grandmother who would occasionally recount her Lithuanian origin, and speak of her father.

I knew my father’s family came from Brezin in Poland which was Russian at the time, but it was an eye-opener to me when I visited New York for the first time in 1978 and stayed with my father’s cousin. Whereas my father was born in 1909 and grew up in and knew London, Milton had grown up in Brezin and only went to the U.S. around 1926. He not only remembered Brezin, he even had neighbours he knew in New York who had also lived in Brezin (Landsmen) and he took me to meet some of them. They had a Brezin Immigrants Welfare Society and Milton was the secretary. It was astonishing to me that something that hitherto been a dusty footnote to the memory of past generations was still alive in the minds of people I met. He even had a photograph of the shul of which I took a copy.

Insert picture here.

However it wasn’t until the 1987 when I bought my first personal computer that the data I collected on a few scraps of paper took on a more organised form.

Having studied computer science and learning about data structures and the logic behind tree traversal I set about thinking how to structure the data and how to construct a program to present it.

I was not the first or the last to do this but I did it independently myself. I had learned a capable but somewhat eccentric computer language called APL and was able to get a version of this which ran on my PC, so it was natural that I should use APL and APL thinking to realise my electronic family tree system.

As it happens APL was exceptionally well-suited to this task as it is a recursive language and recursion is the exact technique required to trace out a family tree where it not known how many generations will have to be visited. Other languages imposed limits and required clumsy techniques to simulate APL’s native functionality and without APL’s expressive elegance and efficiency.

There was no Google then so I had to figure out how to do it as I went along. I conceived of a person record holding each individuals information and a relationship record which linked two people together as parents. Every individual could have one and only one parent record, and this pointed to that individual’s parents.

It seemed that family trees one saw drawn out were highly arbitrary in the sense they were partial and selective and designed to highlight one family line and/or just a couple of generations, and often concentrate on the “name” line. Once charted up they remain for ever.

But what happens when new information is discovered, corrections are made and new relationships are discovered. And our families are constantly changing and growing. New connections are made and new family members arrive.

It seemed to me that a family tree is a highly dynamic concept. Every new individual means another different family tree has to be capable of being drawn. and that every time a new parental relationship (marriage etc.) is formed two previously separate (although not always quite so separate) trees merge into one. One family now becomes inextricably linked to another from the point of view of the descendants.

This interlinking of families gave me the idea of calling the system “Interfam” and this was reinforced by it being an interactive and not static system.

So it seemed to me that due to the dynamic nature of family data, there is there is such thing as “the” family tree. No two people have exactly the same family tree as each one’s starts/ends with themselves, and a family has a plethora of similar but slightly different trees. Each of these family tree is just a snapshot, a momentary graphical representation of family relationships at a given point in time, AND which have and arbitrary starting point (root note) and an arbitrary direction – either up or down.

So I designed my program to require a single individual to start from, and then an instruction of whether to work backwards to find ancestors, or work forwards and find descendants. Give these to my program and it will draw that specific tree from the data available at the time.

But how to represent this on a screen or print on paper. A traditional tree starts at the top with one person and then gets progressively wider as it descends until the screen or page cannot take an more. Probably no more than two or three generations at the most. Also the starting point is in the centre at the top and centering and setting up complex print output was not a strong point of APL.

So I decided to output the data in a different way. Only one person (plus the second parent) on each line starting top left with the root node and then depending on the direction, their parent’s or their first descendant and so on until all the data is traced out. Each successive generation being given more left padding so that all individuals in the same generation are placed in the same column. It looks different from a traditional family tree but it is logically identical, and it uses screen/page space far more efficiently.

Unfortunately with the passage of time it became harder to maintain the original APL version and I wanted to make it available over the Internet, something not possible with APL at the time, so mirroring the direction of my own career I migrated the Interfam data to an Oracle database and rewrote the entire system in Oracle PL/SQL. Again I did this entirely on my own and the free version has no support, so I had to labour long and hard to overcome a large number of technical problems involved in structuring the system for the Internet until I was able overcome all the problems and difficulties. Originally this ran under Red Hat Linux and Oracle 8, but was later ported to Oracle 10 running on a Windows7 PC as the Oracle software did not yet run on Windows 10. At the time of writing in 2020 it is still on Win7 even though Microsoft have stopped supporting it. I do feel the need to take it to Win10 but the thought of the effort required to work out how to do this is an inhibitor.

Recently had some thoughts about integrating the tree into the WordPress site via PHP and MySQL.  Watch this space.

Any volunteers to help welcome!

Leave a Reply