Core principals
Data discovery in ARLAS
When exploring data, ARLAS maintains coordination between all the filters and visualisations produced by the map, widgets and lists: they all respect the same set of rules when it comes to which elements of the dataset are to be displayed or analysed to constitute analytics. This retrieval of this data is performed by the contributors.
Contributor
The contributors of ARLAS-web-contributors constitute the data retrieval layer of ARLAS.
They are the interface between ARLAS-Server and the graphical components developed in ARLAS-web-components.
They collaborate together through the CollaborativeSearchService
.
Its role is to centralize all events that relate to data fetching (adding or removing filters).
Those events are called CollaborationEvent
.
When created, a contributor is registered in the CollaborativeSearchService
and will receive and emit updates based on new CollaborationEvent
.
If the contributor needs to update its data based on the CollaborationEvent
, it will request updated data based on the current filters applied.
Collaboration Event
Whenever a filter is applied through a widget, the map or the result list, the corresponding contributor generates a collaboration event.
Then, the contributor which originated the collaboration notifies the CollaborativeSearchService
through the Collaboration Bus that can be observed by the other contributors to be notified of those 'CollaborationEvent'.
CollaborationEvents are constituted of 3 attributes:
- id: id of the contributor or 'all' or 'url'
- operation: whether it is added or removed from the current collaborations
- all: whether the collaboration applies to all contributors
They can be emitted through the following events:
- When the application is loaded (url)
- When a component selection is changed
- When all filters are removed
Contributor behaviour
CollaborationEvents
are used by the Contributors
to know when to update their own data, following the pattern below:
A collaboration can be of interest for the contributor in the following case.
"Mine" designates when the id of the CollaborationEvent
is the same as the Contributor
's or as its LinkedContributor
(is used in ARLAS to link a widget to a shortcut).