[Thought] A difficult Logical Problem...

149 views
Skip to first unread message

@TiddlyTweeter

unread,
Jul 9, 2019, 4:50:40 PM7/9/19
to tiddl...@googlegroups.com
This a difficult logical problem, not just in TW, but in much software.

Bear with me.

An issue is we use HTML lists for representation of structural hierarchy.

We got good at nesting them and delving through complex nested hierachy (e.g. bimlas' excellent recent work).

But there is still a probem.

The problem is combining equality with hierachy.

To try make this clearer. Its easy in TW to, through tagging, accurately depict ...

.father
 
.son
 
.son's daughter

but very difficult to depict

.father + .mother
   
.son + .wife
     
.daughter

I'm not sure you may even understand what I'm talking about.

ONE thing is very clear to me is that HTML lists can only depict SINGULAR HIERARCHY. It can branch but it can't conjoin. That is a serious limitation on the depiction of actual things.

Like every net thing TW is limited by what is expressed in HTML. But I think its an interesting issue. Some limitations, I think, in TW, arise directly out of the limits of HTML lists.

Thoughts
Josiah



@TiddlyTweeter

unread,
Jul 9, 2019, 4:51:12 PM7/9/19
to tiddl...@googlegroups.com
Repeat for those on email


On Tuesday, 9 July 2019 22:50:40 UTC+2, @TiddlyTweeter wrote:
This a difficult logical problem, not just in TW, but in much software.

Bear with me.

An issue is we use HTML lists for representation of structural hierarchy.

We go good at nesting them and delving through complex nested hierachy (e.g. bimlas' excellent recent work).

But there is still a probem.

The problem is combining equality with hierachy.

To try make this clearer. Its easy in TW to, through tagging, accurately depict ...

.father
 
.son
 
.son's daughter

but very difficult to depict

.father + .mother
   
.son + .wife
     
.daughter

I'm not sure you may even understand what I'm talking about.

ONE this is very clear to me is that HTML lists can only depict SINGULAR HIERARCHY. It can branch but it can't conjoin. That is a serious limitation on the depiction of actual things.

Jeremy Ruston

unread,
Jul 9, 2019, 5:00:17 PM7/9/19
to tiddl...@googlegroups.com
I think there are many structures that are easy enough to hold in our heads but actually very hard to render as a 2D snapshot of a graph. It feels to me that progressive disclosure is required to “unroll” the portions of a potentially infinite visualisation space that we want to explore (much like the TOC). Thus, apprehending a complex structure cannot be accomplished merely contemplating a picture, it requires interactive exploration.

Best wishes

Jeremy

On 9 Jul 2019, at 21:51, @TiddlyTweeter <Tiddly...@assays.tv> wrote:

Repeat for those on email

On Tuesday, 9 July 2019 22:50:40 UTC+2, @TiddlyTweeter wrote:
This a difficult logical problem, not just in TW, but in much sortware.

Bear with me.

An issue is we use HTML lists for representation of structural hierarchy.

We go good at nesting them and delving through complex nested hierachy (e.g. bimlas' excellent recent work).

But there is still a probem.

The problem is combining equality with hierachy.

To try make this clearer. Its easy in TW to, through tagging, accurately depict ...

.father
 
.son
 
.son's daughter

but very difficult to depict

.father + .mother
   
.son + .wife
     
.daughter

I'm not sure you may even understand what I'm talking about.

ONE this is very clear to me is that HTML lists can only depict SINGULAR HIERARCHY. It can branch but it can't conjoin. That is a serious limitation on the depiction of actual things.

Like every net thing TW is limited by what is expressed in HTML. But I think its an interesting issue. Some limitations, I think, in TW, arise directly out of the limits of HTML lists.

Thoughts
Josiah




--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/fa8ad5f5-89c2-4945-9bdb-9a3dcdd2d12d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mat

unread,
Jul 9, 2019, 5:01:06 PM7/9/19
to TiddlyWiki
I'm not sure you may even understand what I'm talking about.

Correct ;-)

Is the "starting point" the daughter? And you want a view of how relationships propagate upward?


Repeat for those on email

Do the people using the email lists never get the initial message of a thread?

<:-) 

@TiddlyTweeter

unread,
Jul 9, 2019, 5:15:05 PM7/9/19
to tiddl...@googlegroups.com
Mat wrote:
I'm not sure you may even understand what I'm talking about.

Correct ;-)

:-)
 
Is the "starting point" the daughter?

NO. Its the RELATION between the father and the mother (neither independent of the other, the relationship creates the daughter). In other words, its not the object (daughter, person), its the relations. This way of thinking  is not easily depictable in HTML lists, I think. But its obviously life as we know it.


And you want a view of how relationships propagate upward?


Repeat for those on email

Do the people using the email lists never get the initial message of a thread?

They don't. its an ongoing  mystery why ...

Annotation 2019-07-09 230550.jpg


Best
TT

@TiddlyTweeter

unread,
Jul 9, 2019, 6:07:54 PM7/9/19
to TiddlyWiki
Jeremy Ruston wrote:
I think there are many structures that are easy enough to hold in our heads but actually very hard to render as a 2D snapshot of a graph. It feels to me that progressive disclosure is required to “unroll” the portions of a potentially infinite visualisation space that we want to explore (much like the TOC). Thus, apprehending a complex structure cannot be accomplished merely contemplating a picture, it requires interactive exploration.

Totally agree.

 But assiting the user/explorer is an interesting issue. On the one hand we have great structuring principles that are basically, hierachical trees (lists in HTML)  or more free form free text assembledge. 

  But in the middle, between them I hit issues. 

For instance, I find it incredibly difficult to depict kinship correctly in TW (and most any other software too). 

The point about kinship is you have "objects" (people) and you have "relationships" (connections between them) and both need to figure in depiction, merged. Try it through tagging, lol. :-) 

Its a simple challenge case, I think, to illustrate the place where structureS merge. Its that merging to two levels of reality seamlessling: man+woman=child (conjunction) v. father -> son (innacurate hierarchy where half gets lost).

Something like that.

Thoughts
Josiah

Mat

unread,
Jul 9, 2019, 6:08:19 PM7/9/19
to TiddlyWiki
@TiddlyTweeter wrote:
NO. Its the RELATION

I know we've touched on this previously and that you're experienced in this matter. Do you have an image of how such a visualization could look and that you're hoping TW could replicated?

<:-)

@TiddlyTweeter

unread,
Jul 9, 2019, 6:34:53 PM7/9/19
to tiddl...@googlegroups.com
Ciao Mat

Mat wrote:
I know we've touched on this previously and that you're experienced in this matter. Do you have an image of how such a visualization could look and that you're hoping TW could replicated?
Nice of you to ask. Thankyou!

Of course I can draw them in TW manually. But for the life of me I can't figure out how to generate this ...

Annotation 2019-07-10 001829.jpg


The issue at first looks easy. But its difficult. 

You certainly can't do it through HTML list representations. 

What you have is INTERSECTING hierarchies where the mediation of lateral connection is  a relationship (equality), OR one has determinative descent.  

The diagram explains it better than words. 

How would one generate that diagram?

Best wishes
Josiah

Mat

unread,
Jul 9, 2019, 6:42:53 PM7/9/19
to TiddlyWiki
In your image, could you encircle all the individual relations that should be represented?

And I'll say it right away, I'm not sure I can help, just so the expectations don't jump too high. But, who knows.

<:-)

TonyM

unread,
Jul 9, 2019, 6:44:14 PM7/9/19
to TiddlyWiki
Josiah,

If your main concern is to represent trees containing two parents like any genealogical tree it is already possible. It can be done with tags but much more easily with an alternate field. I would be happy to explore this further with you.

HTML lists are just that - one dimensional lists. But we can build our own lists or structures,

Here is a quick illustration
  • Joe and Jill are people, joe is male, Jill is female
  • One day Joe and Jill become parents to chloe
  • Chloe is thus tagged with Joe and Jill
  • If you are looking at chloe you can search the tags on chloe
    • for a person who is male and you find her father
    • for a person who female and you find her mother
In the above case we interrogate an attribute of the tiddlers used to tag Chloe, to determine more information and thus the relationship.  The relationship is identified.

If however Chloe is given additional fields like Mother and Father it will work much better. In fact you can also add step parents and other relationships. The relationship is defined in the name of the field, and the contents make that relationship.

When building trees from such genealogical relationships Bimlas's Kin operator is great here, and you can decide if you want a matrilineal or patrilineal tree. You choose of its a tag or another field.

However it is important to recognise that a genealogical tree can stretch to infinity and when generating a tree you may have to set constraints, eg number of generations forward or back, or matrilineal or patrilineal tree.

I have already built macros that determine from a named person, their siblings, brothers, parents and grand parents even cousins. Thanks to the Kin filter is is easy because you can add/subtract the result of one or more kin filters from one and another.

It is the beauty of TiddlyWiki that almost any data structure can be modeled, and listed. Because of this "flat lists" or html lists will never be adequate all the time.

Regards
Tony

@TiddlyTweeter

unread,
Jul 9, 2019, 7:08:30 PM7/9/19
to TiddlyWiki
Cioa TonyM

Thanks for the positivity! 

I'm slightly skeptical as I been round this issue a few times :-)

It looks easy at Level 1. But at the level of my "Father's Eldest Brother's Youngest Daughter's First Daughter" I'm not so sure. That is a description of a relationship chain. How many tags would that be, just to represent the linkages between "Father" and .... "First Daughter"?

Part of the issue with depicting kinship anthropologists solved well was to clear delineation between AFFINITY (roughly, marriage) and DESCENT (roughly, children). If you can figure a way to do that so that each person is BOTH potentailly an AFFINE and a DESCENDENT (but diferentiable) in an economic way I'd be interested. My suspicion is you will rapidly get swamped in tags and not find a solution beyond generation 3 from complexity. :-)

Best wishes
Josiah

@TiddlyTweeter

unread,
Jul 9, 2019, 7:28:05 PM7/9/19
to TiddlyWiki
Mat wrote:
In your image, could you encircle all the individual relations that should be represented?

And I'll say it right away, I'm not sure I can help, just so the expectations don't jump too high. But, who knows.

Lovely of you to ask! Don't worry I'm not expecting a solution :-)  

I think its more difficult than it first looks like. TiddlyMap can't do it. The common JS visual libraries can't do it. So if you can do it I'd be overjoyed. Just not holding my breath. 

I'd say a starting place would be to generate at least 2 generations "up". I.e be able to chart me (ego) and my parents and my parents parents (including blood siblings) and affines in that.

That IS the scope of that diagram :-)

J.

TonyM

unread,
Jul 9, 2019, 7:46:43 PM7/9/19
to TiddlyWiki


It looks easy at Level 1. But at the level of my "Father's Eldest Brother's Youngest Daughter's First Daughter" I'm not so sure. That is a description of a relationship chain. How many tags would that be, just to represent the linkages between "Father" and .... "First Daughter"?

Including a birthdate on each person. This is the only additional information you need because "Father's Eldest Brother's Youngest Daughter's First Daughter" can then be found by "walking the tree" and testing dates. There are no additional tags required. However this is a complex question and presumes that such a person exists in each part of the tree. I also wonder how often such a question would be asked? also why would it be asked if it is visible in a tree?
 

Part of the issue with depicting kinship anthropologists solved well was to clear delineation between AFFINITY (roughly, marriage) and DESCENT (roughly, children). If you can figure a way to do that so that each person is BOTH potentailly an AFFINE and a DESCENDENT (but diferentiable) in an economic way I'd be interested. My suspicion is you will rapidly get swamped in tags and not find a solution beyond generation 3 from complexity. :-)

I would not use tags, as suggested previously,however if I did its unlikely to be more than 4 tags per person. I seriously see no problems. I would expect however there may need to be a date for both birth, and affinities as they are in fact transactions. I would also suggest that the best solution is always the most economical way. 

As a Knowledge and Information management professional I am confident this can all be encapsulated in tiddlywiki and that producing the graphical representation of such relationships is a matter of user interface design.

Regards
Tony

bimlas

unread,
Jul 10, 2019, 1:53:49 AM7/10/19
to TiddlyWiki
Josiah,

Just a quick thought: you might want to think about "text to UML diagram" tools like Mermaid flowchart (TiddlyWiki plugin) or one of the PlantUML generators (TiddlyWiki plugin). The structure could be converted with the wikify widget to the text needed to create the UML diagram.

Another option is Draw.io, which is able to draw complex charts from CSV (I haven't tried it yet, I don't know if it really fits the job): you can export tiddlers as CSV, import it into Draw.io and you're done. The (static) result can be embedded in a wiki if you export from Draw.io (vicious circle :D).

Jed Carty

unread,
Jul 10, 2019, 5:24:00 AM7/10/19
to TiddlyWiki
I think that the most difficult part here would be routing the lines for when a group of siblings has more than three parents between them.
It becomes difficult to display the parents on one line with the chilhren below them without lines crossing.

PMario

unread,
Jul 10, 2019, 6:22:26 AM7/10/19
to TiddlyWiki
On Wednesday, July 10, 2019 at 12:34:53 AM UTC+2, @TiddlyTweeter wrote:
...
Of course I can draw them in TW manually. But for the life of me I can't figure out how to generate this ...

Annotation 2019-07-10 001829.jpg


The issue at first looks easy. But its difficult. 

That's for sure. Since the "names" can change, depending on the viewpoint.

eg: My mother has a brother, which is my uncle. ... That's not easy for an algorithm to create, if it gets this info:

GrandFather (male) married GrandMother (female)
  Child 1 (male)
  Child 2 (female) married Father (male)
     me \o/ (male)

As you can see. From my point of view "Child 1" is my uncle
From my Mothers point of view "Child 1" is a brother
From my Fathers point of view "Child 1" is a brother in law.

And that's a simple relation. .. Just think about relations which contain divorce, death and marriage, 2 fathers, 2 mothers + Children in every possible combination.

have fun!
mario





Mark S.

unread,
Jul 10, 2019, 11:02:27 AM7/10/19
to TiddlyWiki
Are we talking about modeling relationships, or about portraying them?

Relational databases can model just about anything with a regular, defined structure. And TW, in turn, can model anything in a relational database, albeit without the tools that prevent conflicts that real relational databases have. So it requires discipline. But you may have to abandon hope of doing it with just tags, and simple models where everything you need to know about Joe (marriages, encounters, offspring, etc.) is contained in a single tiddler.

In a relational database I might start with a table of individuals. Then I might have a table of biological mates that pair the two. Each pairing has a unique id. Then another table of marriages. Each pairing has a unique id.  In the individuals table, there might be a field to indicate a link to which biological pairing represents parentage, and another to indicate which marriage represents parentage. Actually at this point I might check out if someone has already produced a data structure, rather than have to think of every possible situation myself. But you can see that already you can quickly locate biological and acknowledged sibling pairings.

With the right structure, you should be able to produce lists of whatever relationships you want to know about.

Portraying the relationships graphically is a different matter, since the existing graphing technologies use their own idiosyncratic relationship structure. It might be that, after creating the relationship data for physical representations, you have to then run a process that produces the data (in separate tiddlers) for the graphical representation. Assuming that tmap or whatever you use is up to the job.

-- Mark

@TiddlyTweeter

unread,
Jul 11, 2019, 7:43:22 AM7/11/19
to TiddlyWiki
Thanks everyone for the interesting comments.

One thing that helped was grasping I need to define the issue tighter. A few comments ...

Mark S: Are we talking about modeling relationships, or about portraying them?

Right. Good question! I think I'm too foggy. 

Actually, my principle interest is in kinship terminology ... for instance.

NOT so much: "My Uncle Fred"
AS: "My Father's Youngest Brother".
 
Its not genealogy per se that I want to depict, so much as formal kinship terms (e.g. in many cultures the term for what we call "Uncle" is different if its "Fa Br" or "Mo Br", two terms, not one).

In one sense its fininte in that there are only so many kin-terms a culture uses. Though the "kin-term" approach is fully compatible with genealogical trees of actual people.

Mark S: With the right structure, you should be able to produce lists of whatever relationships you want to know about.

Portraying the relationships graphically is a different matter,

Right. That was part where I started that HTML lists (as far as I know) can only depict one hierarchy at a time (so it works for "unilineal" descent [i.e. you only tracing descent through either the male or female line]). But for visual depiction you really need something that can deal with "marriage" (affinity), a lateral intersection of hierarchies (most Western kinship is "bilateral").

So you probably right I could trace lines of descent (via TW emulating a relational database to worm your way through it). And Bimlas' "kin filter" seems to make that easier too. But graphical representation looks like its a different ball game??

PMario: Just think about relations which contain divorce, death and marriage, 2 fathers, 2 mothers + Children in every possible combination. 

Absolutely right, in actual usage, for instance, many Westerners use "qualified" kin terms (though these are nearly always based on the underlying social concept of biological generation. But they extend on them in many ways). This greatly increases the complexity of the issue. Like: "my adopted daughter", "my foster child"; "my biological child", "my real mother", "my partner", "my third husband", "my same sex husband" etc.

Jed: I think that the most difficult part here would be routing the lines for when a group of siblings has more than three parents between them. It becomes difficult to display the parents on one line with the chilhren below them without lines crossing.

Right. I know how to do it in hand drawn diagrams even for complex cases like "the levriate" where a dead man's brother has to marry the deceased's wife. Its an interesting problem. I can do it manually but I just not can figure out how to do it computationally.  

bimlas: Just a quick thought: you might want to think about "text to UML diagram" tools like Mermaid flowchart (TiddlyWiki plugin) or one of the PlantUML generators (TiddlyWiki plugin). The structure could be converted with the wikify widget to the text needed to create the UML diagram.

Thanks! I think its a good suggestion to look at those diagramming tools. I kinda overlooked them. I tried in a number of graphics libraries and failed as they couldn't do lateral conjuction and hierarchy at the same time. I should look again!

TonyM: ... I am confident this can all be encapsulated in tiddlywiki and that producing the graphical representation of such relationships is a matter of user interface design.

You may be right that tiddlers can be used to record the relationships between people accurately (like Mark S, too, indicates). But as you hint, I the presentation of that data could be very tricky. I haven't got anywhere with it. 

 Thanks again! And best wishes
Josiah

 

TonyM

unread,
Jul 11, 2019, 9:17:28 AM7/11/19
to TiddlyWiki
Josiah,

I recommend working on the fundamental structure and organisation. The representation really is just eye candy.

Regards
Tony

Reply all
Reply to author
Forward
0 new messages