Encoding a relationship using nodes and edges

A relationship consists of three things: Two entities and their relation:

(entity1) (relation) (entity2)

An ambiguous relationship between two entities can be modeled using nodes and edges as follows:

(entity1) --- (entity2)

This is a binary relationship, but what we're really after is a three way, directed relationship. For example, "Daniel likes software":



This solves the problem of encoding the information, but we're already rubbing up against our desire to stick to only a directed graph representation, which don't include directed ternary edges. We'll let this slide for the moment.