An edge can be inserted at any time into the semistructure. On insertion,
the transaction time of the label on the inserted edge
is set to
.
[Edge insertion]
Let T be the current time.
An edge is inserted into a semistructure,
,
as follows.
![]()
,
where{(transaction time:
`
2
Redundant and overlapping labels are permitted on edges, i.e., the data is not stored coalesced. Note also that edge insertion inserts nodes if the nodes not already exist in the database. We do not give a separate operation to insert only a node (our focus is on the relevant changes needed to support properties in labels).
Edges are (logically) deleted by terminating their transaction-time interval.
[Edge deletion]
Let T be the current time.
An edge is deleted from a semistructure,
,
as follows.
![]()
,
If the transaction time property is missing fromtransaction time:
![]()
transaction time:
![]()
transaction time:
`
2
Finally, a node can be (logically) deleted by removing all incoming edges, and an edge modification is modeled as an edge deletion followed by an edge insertion.
transactions that created the two edges in Figure 4 are given below. Let
v := &Star Wars IV,
w := &by Videotastic,
(name: review), (security! developer)}, and
(name: review), (security! paid subscriber)}.
On 15/Mar/1998, the first edge is inserted:
15/Mar/1998,
![]()
On 24/May/1998, the first edge is deleted:
24/May/1998,
![]()
On 25/May/1998, the second edge is inserted:
25/May/1998,
`
2