Delete Model
When deleting a model from the system (using the REST API DELETE-model), a number of triples are inserted in the datastore.
Let's assume that:
- the sub-component that has to save the model in the datastore received it in a certain time (e.g. with a timestamp
1425399022110, corresponding to the date Tue, 03 Mar 2015 17:10:22 GMT+1:00), - the
:idparameter in the API had valueid1425399019932.
The assumption that no other model is considered at the exact same time is done. Then, a graph with the name containing the timestamp above is created (e.g. http://www.modaclouds.eu/historydb/model/cancellations/1425400773874).
The graph will contain two triples, both with the value of the :id parameter as the subject. Both the predicates will have the base prefix http://www.modaclouds.eu/rdfs/1.0/deletedmodel#, and there are:
id, the id of the model that we want to delete,timestamp, the timestamp in which the message was received.
Another graph with the name associated to the day in which the timestamp is contained (e.g. http://www.modaclouds.eu/historydb/meta/model/cancellations/1425340800000 for the example above, where 1425340800000 corresponds to the date Tue, 03 Mar 2015 00:00:00 GMT+1:00) is created or used if it already exists.
Only one triple is added, and this has as the subject the name of the graph considered before (e.g. http://www.modaclouds.eu/historydb/model/cancellations/1425400773874), the predicate <mo:timestamp> and the actual timestamp as the object of the triple (e.g. 1425400773874).
Lastly, in the default graph, one tuple is added, with:
- the subject that is the URI of the graph (e.g.
http://www.modaclouds.eu/historydb/model/cancellations/1425400773874), - the predicate is the constant
mo:timestamp, and - the object is the hour in which the timestamp is contained (e.g.
1425398400000for the example above, where1425398400000corresponds to the date Tue, 03 Mar 2015 17:00:00 GMT+1:00).
Examples of Query
Here are some examples of SPARQL query:
- find all the cancellations of model inserted:
SELECT * {
?s <mo:timestamp> ?o
FILTER (regex(str(?s), "model/cancellations"))
}
- find all the cancellations of model inserted in a specific hourly timestamp:
SELECT * {
?s <mo:timestamp> ?o
FILTER (?o = 1425574800000 && regex(str(?s), "model/cancellations"))
}
- find all the cancellations of model inserted in a range of hourly timestamps:
SELECT * {
?s <mo:timestamp> ?o
FILTER (?o >= 1425574600000 && ?o <= 1425574900000 && regex(str(?s), "model/cancellations"))
}
