Javadoc
Find a relationship between two asymmetric lists ordered from deepest
to shallowest ancestor. Each node has it's PointerType set to the kind of
relationship one need to follow to get from it to the next node in the list.
Take the dog/cat relationship. To get to carnivore, a hypernym relationship
must be used to get from dog to carnivore, but then a hyponym relationship
must be used to get from carnivore to cat. The list will look like this:
dog(hyper) -> canine(hyper) -> carnivore(hypo) -> feline(hypo) -> cat(hypo).
In this instance, cat's PointerType is meaningless, but is kept to facilitate
things like reversing the relationship (which just involves setting each node's
pointer type to the symmetric type of its current type.