Arcs

Top  Previous  Next

Arcs are a Web3 extension to the Topic Map data model that allow for simpler topic-to-topic relationships than associations. An arc is simply a typed relationship from one topic to another topic, where the type is also defined by a topic. There are no roles on an arc, but one topic is defined as the start of the arc, and the other topic is the end of the arc. Arcs can be accessed from a topic by one of two collections - the outgoing arcs are all arcs where the topic is the start of the arc and the incoming arcs are the arcs where the topic is the end of the arc.

 

The diagram below shows an association and an arc that both represent the fact that John Smith's Employer is ABC Ltd.

Association vs Arc Structure

Association vs Arc Structure

 

As the diagram shows, an arc is a much simpler form than an association but it has a number of limitations:

Arcs can only ever involve two topics - a start and an end. Associations can involve any number of topics
Associations roles allow the model to be specific about exactly what the topic is doing in the relationship. There is no way to directly tell from the Employer Arc example that John Smith is an Employee of ABC Limited - that inference (that Employee is the inverse of Employer) would need to be encoded in the application.
Associations support scope, but arcs do not.
In the Web3 editor and browser it is only possible to view and edit the outgoing arcs of a topic

 

However, for all their limitations, arcs can be useful and provide some performance benefits and make editing easier when managing lots of "property-style" relationships between topics - especially where a few topics can be the target of a large number of arcs.