6 Updating
In previous section objects were generated by importing files and
directories. However it is also possible to create purely extrinsic
objects that are under full control of Camelis. This is done by
activating the command Updating > Add object. A dialog window
asks for a short text description and an optional picture (to be
displayed in the extent window), as well as a system command that may
be activated from the contextual menu of the extent window. The
initial description of the new object is made by applying the selected update to the empty description. The selected update is
the conjunction of selected features in the navigation window, or
alternately the current query (see Section 2 for the
definition and use of updates).
Another way to create extrinsic objects is to use the monitor.
The monitor is a kind of source that produces an extrinsic object
every 6 minutes (10 per hour) when a query is registered. Each object
is given the features of the query as a description. Two commands are
provided: Updating > New state to register the new query to be
used for every coming minute out of 6; and Browsing > Current
state to move to the current monitor query. Objects are effectively
created when activating the button Update. Then feature counts
correspond to duration of various activities in tenths of hours.
Whereas intrinsic descriptors are under control of the source of
objects, extrinsic descriptors can be added, changed, and removed from
the description of objects, whether these objects have been generated
from a source or not.
The common scope of an update is a set of selected objects, but we
will see how this can be generalized to sources and queries. Before
applying an update on objects, a set of objects must be selected
through the command Updating > Copy objects, which is also
available in the contextual menu of the extent window. It is important
to note that, when no object is selected, the full current extent is
taken as default.
Once a scope has been defined (copy), and an update has been selected,
this update is applied on each selected object by activating one of
the command Updating > Paste and Updating > Paste not,
which are also available in the contextual menu of the navigation
window, and also as a button. The latter applies negation on each
feature of the selected update, which has the effect of removing these
features from the descriptions of objects, instead of adding them with
the command Paste. The command Copy and paste to... copies
an object selection, and asks the user for an update to be applied on
the copied objects. When the scope covers only one object, and the
selected update is made of only one feature, the copy and paste
operation can be performed by a simple drag-and-drop from the object
onto the feature.
Adding and deleting objects can be seen as special cases of the
copy-and-paste mechanism. Adding an object, as defined above, is like
copying a new object, and pasting it in the selected update. Deleting
objects is like copying some scope, and pasting them in nowhere,
i.e. deleting them. When a source has generated several objects, and
only a subset of them has been selected for deletion, there is an
ambiguity as deleting these objects requires deleting the source. In
such a case we take the conservative option not to delete these
objects. Only when all objects from a source are selected this source
is deleted (of course the corresponding file is not modified in any
way, but only its handler in Camelis).
Updates can also be applied on sources through the source dialog
(command File > Import > List sources...). Indeed sources are
equipped with an initial description, which can be updated through the
button Paste in the source dialog. Sources can also be directly
deleted in this dialog through the buttons Delete and Clear.
Updates can also be applied on queries, where queries can be seen as
dynamic sets of objects. In this case the selected update is applied
to the extent of the query, and then a rule query →
update is registered in order to be applied whenever an object is
created or moved into the extent of the query. The query is selected
by the command Logic > Copy query, also available contextually
on the query area, and the update is defined by applying Paste
or Paste not on selected features or another query. A command
Copy and paste to... is also available. When applying the
command Logic > Delete query, also available contextually, this
creates a kind of hole as any object that comes into it is
immediately deleted. A possible application of this is the filtering
of spams in an email box. The list of all rules can be displayed in a
dialog window by the command Logic > List rules.... On each line
one can visualize the kind of the rule (paste or delete),
the selected update, and the query. The available actions are:
-
Refresh: refresh the list of rules,
- Delete: deletes the rule (no retroactive effect),
- Close: close the rule list window.