5. APIs only publish most recent state!
Resource state changes lead to
inconsistenties in mashup results!
http://example.com/average-income!
http://example.com/unemployment-rate!
2004
2012
InaccuRate MASHUP!
16. M1 M3 M4M2
Provenance !
describes when resource values change!
Was revision of Was revision of Was revision of
A2 A4A3A1
generated generated generated generated
18. Publish data as!
TIME CONSISTENT API
Storage! API! Memento!
Data management!
Versioning!
Publishing Resources!
HTTP interaction!
Datetime negotiation!
PROVENANCE
25. Decision Engine
GENERIC Memento PROXY
TG
PROV
GET!
Accept-Datetime:!
2014-05-14T00:00:00!
N3
rules
EYE
Reasoner
M
+
V
302 Found!
Location: URI - M!
26. DeCISION LOGIC WITH SEMANTIC REASONING!
EYE reasoner and N3 rules select memento!
prov:wasRevisionOf rdfs:subPropertyOf :memento.
:memento a owl:TransitiveProperty.
:request :datetime "2014-05-15T00:00:00Z"^^xsd:dateTime
27. DeCISION LOGIC WITH REASONING!
EYE reasoner and N3 rules select the memento!
{
:request :datetime ?req_datetime.
[] e:findall (?datetime {
?rev prov:endedAtTime ?datetime .
(?datetime ?req_datetime) pred:dateTime-
less-than-or-equal true.
} ?datetime_list) .
?datetime_list e:max ?current_datetime.
?current prov:endedAtTime ?current_datetime.
}
=>
{
:response :memento ?current.
}.
IF
prov:endedAtTime
is largest prior to
given ?req_datetime
THEN!
Selected memento is
the !
?current one
28. DeCISION LOGIC WITH REASONING!
EYE reasoner and N3 rules select the memento!
:response :memento <Resource/M1> .
:response :next-memento <Resource/M2> .
:response :last-memento <Resource> .
29. Publish data as!
TIME CONSISTENT API
Storage! API! Memento!
Data management!
Versioning!
Publishing Resources!
HTTP interaction!
Datetime negotiation!
DYNAMIC + GENERIC ??
30. Publish data as!
TIME CONSISTENT API
Storage! API! Memento!
Data management!
Versioning!
Publishing Resources!
HTTP interaction!
Datetime negotiation!
PROVENANCE