Как в Datomic получить временную шкалу изменений, внесенных в значения определенного объекта?

Я следую руководству, http://www.datomic.com/company/resources/tutorial, но я думаю, что мне не хватает простого часть головоломки о том, как получить доступ к временной модели Datomic.

Если я делаю серию добавлений и отзывов

;; DO a series of transactions 
;; (transact conn [:db/add entity-id attribute value0])

(use 'datomic.api)
(dir datomic.api)
(def conn (connect "datomic:dev://localhost:4334/demo"))

(transact conn '[:db/add 2000 :db/doc "Hello There"])
(q '[:find ?e ?n :where [?e :db/doc ?n] [(= 2000 ?e)]] (db conn))
; => 

(transact conn '[:db/add 2000 :db/doc "Hello There 1"])
(q '[:find ?e ?n :where [?e :db/doc ?n] [(= 2000 ?e)]] (db conn))
; => 

(transact conn '[:db/add 2000 :db/doc "Hello There 2"])
(q '[:find ?e ?n :where [?e :db/doc ?n] [(= 2000 ?e)]] (db conn))
; => 

(transact conn '[:db/add 2000 :db/doc "Hello There 3"])
(q '[:find ?e ?n :where [?e :db/doc ?n] [(= 2000 ?e)]] (db conn))
; => 

Как можно получить серию изменений значения (атрибут объекта 2000: db/doc)?

Я хочу получить что-то в формате

[ [Transaction Number, Time, Value] .... [Transaction Number, Time, Value]]

Например:

[ [T1, "2012-March-16-9:30:12", "Hello There"] 
  .... 
  .... 
  .... 
  [T27, "2012-June-14-9:54:38", "Hello There 3"] ]

Это может быть не так сложно, но есть много внутренних параметров :db, с которыми я не знаком.

12
задан zcaudate 14 June 2012 в 01:11
поделиться