I agree that we should have the control that Marco describes below, but do not 
have any idea of a conceptual framework that would be compatible with the 
current Therion extended control.

Stacho's suggestion
>Not to implement extend stop, equate, but add the possibility of 3 stations in 
>extend ignore. I.e.
>extend ignore <s1> <s2> <s3>
>would mean, do not go to s3 if you came to s2 from s1. In your case Tarquin, 
>specifying
>extend ignore 8 7 11
>extend ignore 6 7 12
>should save the situation. Am I still missing something?

I think that might be a good solution to add to Therion's current extend 
controls.

As a digression, the idea of 'ignoring' particular routes through a station (as 
Therion currently requires) is not only counterintuitive, but inefficient.
Imagine the typical case of one station with two legs attached.  There are two 
ways available to traverse this, 1-2-3 and 3-2-1.
For one station with three legs attached.  There are six possible ways to 
traverse (three in each direction).
For one station with four legs attached. There are twelve possible ways to 
traverse (six in each direction).
The pattern is, for a station with n legs attached, there are n.(n-1) ways that 
an extend network could theoretically travel through the station.
Therefore, for a station with a number of survey branches attached, it becomes 
very inefficient to specify with certainty the way the extended network should 
generate.
For the simplest branch (one station with three legs) we could in theory 
specify one route that must be taken, or five routes that must not be taken, if 
we want to be certain of the result.
Because we must specify (with ignore) those that must not be taken, I tend to 
be lazy and stop specifying ignores as soon as the network behaves as I wish it 
to.
The risk with this, (I imagine) is that a new survey will one day be added to 
the network, or there might be some other data change, which changes things 
sufficiently that Therion takes an unwanted route that has not been 
specifically 'ignored'.  Hence that which worked will suddenly no longer work, 
and the poor user must study what will by then be an unfamiliar network to 
track down the problem.
If an intuitive and dependable conceptual means of controlling extends could be 
found that is not compatible with our current approach, then would it be 
acceptable to introduce a toggle like:
extend-method [old-way (default) | new-way]
This way old datasets will continue to work as before, and for current and 
future datasets, users could adopt what is hopefully a better means of extended 
control.

It might be a bit of work, but worth it if it could provide easily understood 
and predictable control.
Maybe TopoDroid has some lessons for what might work well? 

Bruce

-----Original Message-----
From: Therion <therion-boun...@speleo.sk> On Behalf Of Marco Corvi
Sent: Monday, 20 July 2020 23:26
To: therion@speleo.sk
Subject: Re: [Therion] Revisiting Breaking extended elevations on specific 
stations

i realized i was too naive:
the "principle" of the spanning tree is ok, but it is not enough.

suppose to have five legs at a station
  6-7
  7-8
 20-7
  7-21
  7-45
and some of them belongs to loop(s).
Suppose that the user wants to have 6-7 7-8 together, and 20-7 7-21 together 
but the two pairs separated, because of the way loops get extended.
and 7-45 attached to 6-7 7-8 at station 7.

the abstract picture i came up with was to replace a crossway station, like "7"
in the above example, with a complete graph (for 3-leg crossway this is trivial)

to make the story short i think therion syntax needs a way to specify that
6-7 7-8 and 7-45 share station "7" in the extended elevation and 20-7 7-21 
share a separate station "7".

marco
_______________________________________________
Therion mailing list
Therion@speleo.sk
https://mailman.speleo.sk/listinfo/therion

_______________________________________________
Therion mailing list
Therion@speleo.sk
https://mailman.speleo.sk/listinfo/therion

Reply via email to