Non-Cyclic

QName: f:non-cyclic

Marks an association as one that does not allow cyclical chains in the graph.

Cloud CMS does not assume that cyclical chains are invalid. In fact, for modeling some content, they may be encouraged. This feature gives you a way to indicate that some associations should not support them.

An example of a valid cyclic graph might be one where you have multiple friends - Joe, Diane and Pete. An association might be modeled called "is best friends with". In this graph, we might assert that:

  • Pete might considers his best friend to be Joe.
  • Joe might consider his best friend to be Diane.
  • Diane might consider her best friend to be Joe.

Thus, there is a cyclical reference between Joe and Diane. It's a valid structure. In this case, the "is best friends with" would not have the f:non-cyclic feature as it is allowed to be traversed multiple times in a traversal of the graph.

An example of an association that is non-cyclical is the a:child association which is used to model containment within a file system structure. If parent A has child B, then child B should not be a parent of parent A.

Configuration

This feature does need configuration.

Non Cyclic Example

{
    "title": "Has Friends With",
    "_features": {
        "f:non-cyclic": {
        }
    }
}