User:Segubi/Tentacles

From OpenStreetMap Wiki
Jump to navigation Jump to search

Introduction

The actual situation as from November 20th, 2021: The evaluation of numbered node networks in knooppuntnet.nl fails in some strange nodes in Bielefeld.

Of course it may have something to do with the unclear quantum state of Bielefeld (see Wikipedia). But I try to find out how it would be possible to define nodes, routes, tentacles and so on in a node traffic network, and how to deal with it.

Axiomata/Definitions

  • A node is a single point.
  • You can connect exactly two different nodes by a route. (We could refer to them as node A and node B).

So far so simple... But the reality has some nice special features for us. I comment on them step by step as needed.

There may be more than one route between two nodes.

Example: Node 55 and Node 51 have the following connecting routes: Route 55-51 and Route 51-55.

There is just a new feature in these routes: The one of them (55-51) is just signposted in one direction. So we get the next thing:

  • A route may be followed from A to B or from B to A or both.

In reality you have a lot of places where nodes are split onto different guideposts that have to be treated separately for routing purposes. Here you see that the term node is not a geographical point but a logical object. We have to introduce a second term for the fragments that together build one node. I just create the word splitnode to make clear that a node should here refer only to the logical single node. So you get to:

  • A node can be represented by just one splitnode or a group of splitnodes in the reality. (We could refer to them as A.a or a series A.a, A.b ...). A splitnode has a position in space.
  • Between points in space (splitnodes) there may be ways in space. As I have understood, they are called in the knooppuntnet-scala software "segments". I want to call them here ways. And I mean by way one exactly defined way from one point to the other.
  • The route from node A to B fulfills the following criteria: There exists exactly one way from each splitnode of A to each splitnode of B.

To define tentacles we have the following image in mind: the squid has a body, imagined as a point with several tentacles going from this point and ending in the free water (space). Ok, we don't have any squids here in Bielefeld on the streets... On the street there is meant by this: we have a route that we follow and we come to a point where we are about to reach our node and look for the next route to follow from which it depends what way we exactly will take.

  • There is the implicit assumption in it that: all ways from A to B share a common part in the middle of them.

That needn't be so in reality, but it is necessary and sensible for two reasons: If you had ways that don't share common parts at all you would be able to separate the route into several routes. The second thing is of practical nature and OSM related. In a relation of ways you have at the moment exactly two roles to make up parallel ways without losing linearity of the relation: forward and backward. If you had additional ways from A to B besides these two possibilities you would have a relation that has no ordered linear section in it at all.

  • If I want to explain some problems and structure of tentacles I'd like to have a term for the collection of all ways from A to B that make up the part of the route that leads from A to B. I call this routepart (not nice but clearly distinguishable from way, route and so on).
  • A routepart is made up by a beginning with tentacles from each splitnode of the starting node, also called starttentacles followed by one linear way, kind of a backbone of the route in that direction, followed by tentacles to each splitnode, also called endtentacles.

Interesting thing is that in the endtentacles you can rely on the existence of a node of the network as the cyclist has to find the proper tentacle. In the converging start tentacles signposting may be missing as it is in one of the strange routes like 44-53.

Example: Route 44-53 of the numbered node network in Bielefeld. The splitnodes are named 44.a, 44.b, 53.a, 53.b, 53.c each from left to right (west to east).

For the routepart 44-53 you have the following 6 ways: 44.a-53.a, 44.a-53.b, 44.a-53.c, 44.b-53.a, 44.b-53.b, 44.b-53.c:

All routings from 44-53 with respect to tentacles.
All routings from 53-44 with respect to tentacles.

The analysis tool knooppuntnet has substantial difficulties to identify these 12 ways.

Problems

The analysis algorithms of knooppuntnet.nl evaluate all ways of a route relation and their roles together with the information of the given node information (splitnodes). The order of the items of the relation could serve as an additional source of information. At the moment the order is ignored (which has the advantage to be more independent of the quality of the data in OSM).

With this information it is not always possible to reconstruct the real tentacles as in 44-53 around the node 53.

Solutions

One could invent a scheme of the order of the tentacles to reconstruct the situation. Problem will be that it can remain unclear which are starttentacles and which are endtentacles.

One could double some ways to make that clear but has to tolerate the warnings of the editor.

One could use additional roles like starttentacle endtentacle or give just numbers to discriminate the tentacles.

One could put nodes into the route relations.

For feasibility, the algorithm should be unchanged and switch only to another evaluation scheme if there occur problems, so you don't have to change much data in OSM but only a few difficult routes.