Coverage report: /development/source/library/org/datagraph/spocq-shard/src/shell/timemap.lisp

KindCoveredAll%
expression055 0.0
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; -*- Mode: lisp; Syntax: ansi-common-lisp; Base: 10; Package: org.datagraph.spocq.implementation; -*-
2
 
3
 (in-package :org.datagraph.spocq.implementation)
4
 
5
 #|
6
 generate timemap as ntriples
7
 
8
 sbcl --core sbcl-spocq.core
9
 (sb-ext:save-lisp-and-die "timemap" :executable t :toplevel #'spocq.i::main-timemap)
10
 
11
 sbcl --core sbcl-spocq.core
12
 (sb-ext:save-lisp-and-die "spocq-shell" :executable t)
13
 
14
 ? make it available as a static service?
15
 http://www.iana.org/assignments/media-types/application/link-format
16
 |#
17
 
18
 (defun main-timemap (&rest args &key
19
                            (query-parameters (sb-posix:getenv "QUERY_STRING"))
20
                            ((:response-content-type *response-content-type*) (select-mime-type (sb-posix:getenv "HTTP_ACCEPT")
21
                                                                                                (list mime:text/plain mime:application/link-format mime:*/*)))
22
                            &allow-other-keys)
23
 
24
   (handler-bind ((serious-condition
25
                   (lambda (condition)
26
                     (log-stacktrace "Error in request thread: ~a -> ~a." query-parameters condition)
27
                     (format *standard-output* "<html><body><pre>~a</pre></body></html>~%" condition)
28
                     (stop)
29
                     (return-from main-timemap))))
30
 
31
     ;; allow request query arguments to override the static script arguments
32
     (with-command-line-configuration (:allow-other-keys t (append (parse-query-parameters query-parameters) args))
33
       (setq *start-timestamp* (iso-time))
34
       (initialize-spocq :title (or (getarg "--title") "spocqtimemap"))
35
       (log-info "Start timemap ~a: (~a)" *start-timestamp* *response-content-type*)
36
       (destructuring-bind (&key (properties *timemap-properties*)
37
                                 (timemap-properties properties)
38
                                 &allow-other-keys)
39
                           *request-configuration*
40
         (flet ((split-iri-string (value)
41
                  (etypecase value
42
                    (string (mapcar #'intern-iri (split-string value #(#\space))))
43
                    (list value))))
44
           (assert *repository-id* () "repository-id is required.")
45
           (send-response-message  :|timemap|
46
                                   (compute-timemap *repository-id* :timemap-properties (split-iri-string timemap-properties))
47
                                   *standard-output*
48
                                   *response-content-type*))))))
49
 
50
 
51
 
52
 #|
53
 rapper -i ntriples --count 'http://admin.dydra.com/cgi-bin/timemap.sh?repository-id=statistics/de4.dydra.com&response-limit=200'
54
 curl 'http://admin.dydra.com/cgi-bin/timemap.sh?repository-id=statistics/de4.dydra.com&response-limit=20'
55
 
56
 QUERY_STRING='repository-id=statistics/de1.dydra.com&response-limit=20' ./timemap.sh
57
 QUERY_STRING='repository-id=statistics/de4.dydra.com&response-limit=20' ./timemap.sh
58
 QUERY_STRING='repository-id=statistics/de4.dydra.com&response-limit=20&properties=http://www.mementoweb.org/terms/tb/end' ./timemap.sh
59
 
60
 (compute-timemap (repository "jhacker/basic-term-1") :timemap-properties '(|rdf|:|type|))
61
 (main-timemap :query-parameters "repository=jhacker/basic-term-1")
62
 (main-timemap :query-parameters "repository=statistics/de1.dydra.com&response-limit=20")
63
 (main-timemap :query-parameters "repository=jhacker/basic-term-1&properties=http://www.mementoweb.org/terms/tb/end%20http://www.mementoweb.org/terms/tb/start")
64
 (main-timemap :query-parameters "repository=statistics/de4.dydra.com&response-limit=21&properties=http://www.mementoweb.org/terms/tb/start")
65
 
66
 
67
 <http://wulff.dev/jhacker/basic-term-1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/ResourceMap> .
68
 <http://wulff.dev/jhacker/basic-term-1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/TimeMap> .
69
 <http://wulff.dev/jhacker/basic-term-1> <http://purl.org/dc/terms/modified> "2013-03-29T14:39:52Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
70
 <http://wulff.dev/jhacker/basic-term-1> <http://purl.org/dc/terms/created> "2013-03-29T14:39:52Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
71
 _:timebundle <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Aggregation> .
72
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <urn:dydra:revision:fd578100-ebaf-11e1-a207-0665032ba83f> .
73
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <urn:dydra:revision:eb75de00-ebaf-11e1-a207-0665032ba83f> .
74
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <urn:dydra:revision:9934bd00-ebaf-11e1-a207-0665032ba83f> .
75
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <urn:dydra:revision:45c26f00-ebaf-11e1-a207-0665032ba83f> .
76
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <urn:dydra:revision:eb7da068-be68-434e-ab9d-9dceaa2cc95e> .
77
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <http://wulff.dev/jhacker/basic-term-1> .
78
 _:timebundle <http://purl.org/dc/elements/1.1/title> "Memento Time Bundle for 'http://wulff.dev/jhacker/basic-term-1'" .
79
 _:timebundle <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/TimeBundle> .
80
 <http://wulff.dev/jhacker/basic-term-1> <http://www.openarchives.org/ore/terms/describes> _:timebundle .
81
 <http://wulff.dev/jhacker/basic-term-1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/TimeGate> .
82
 <http://wulff.dev/jhacker/basic-term-1> <http://www.mementoweb.org/terms/tb/timeGateFor> <http://wulff.dev/jhacker/basic-term-1> .
83
 <http://wulff.dev/jhacker/basic-term-1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/OriginalResource> .
84
 <http://wulff.dev/jhacker/basic-term-1> <http://www.mementoweb.org/terms/tb/covers> _:blank0 .
85
 _:blank0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
86
 _:blank0 <http://www.mementoweb.org/terms/tb/start> 2012-06-30T12:53:13Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
87
 <urn:dydra:revision:fd578100-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/validOver> _:blank1 .
88
 <urn:dydra:revision:fd578100-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/mementoFor> <http://wulff.dev/jhacker/basic-term-1> .
89
 <urn:dydra:revision:fd578100-ebaf-11e1-a207-0665032ba83f> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Memento> .
90
 _:blank1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
91
 _:blank1 <http://www.mementoweb.org/terms/tb/start> 2012-08-21T16:48:10Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
92
 <urn:dydra:revision:eb75de00-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/validOver> _:blank2 .
93
 <urn:dydra:revision:eb75de00-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/mementoFor> <http://wulff.dev/jhacker/basic-term-1> .
94
 <urn:dydra:revision:eb75de00-ebaf-11e1-a207-0665032ba83f> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Memento> .
95
 _:blank2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
96
 _:blank2 <http://www.mementoweb.org/terms/tb/start> 2012-08-21T16:47:40Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
97
 _:blank2 <http://www.mementoweb.org/terms/tb/end> 2012-08-21T16:48:10Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
98
 <urn:dydra:revision:9934bd00-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/validOver> _:blank3 .
99
 <urn:dydra:revision:9934bd00-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/mementoFor> <http://wulff.dev/jhacker/basic-term-1> .
100
 <urn:dydra:revision:9934bd00-ebaf-11e1-a207-0665032ba83f> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Memento> .
101
 _:blank3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
102
 _:blank3 <http://www.mementoweb.org/terms/tb/start> 2012-08-21T16:45:22Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
103
 _:blank3 <http://www.mementoweb.org/terms/tb/end> 2012-08-21T16:47:40Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
104
 <urn:dydra:revision:45c26f00-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/validOver> _:blank4 .
105
 <urn:dydra:revision:45c26f00-ebaf-11e1-a207-0665032ba83f> <http://www.mementoweb.org/terms/tb/mementoFor> <http://wulff.dev/jhacker/basic-term-1> .
106
 <urn:dydra:revision:45c26f00-ebaf-11e1-a207-0665032ba83f> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Memento> .
107
 _:blank4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
108
 _:blank4 <http://www.mementoweb.org/terms/tb/start> 2012-08-21T16:43:02Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
109
 _:blank4 <http://www.mementoweb.org/terms/tb/end> 2012-08-21T16:45:22Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
110
 <urn:dydra:revision:eb7da068-be68-434e-ab9d-9dceaa2cc95e> <http://www.mementoweb.org/terms/tb/validOver> _:blank5 .
111
 <urn:dydra:revision:eb7da068-be68-434e-ab9d-9dceaa2cc95e> <http://www.mementoweb.org/terms/tb/mementoFor> <http://wulff.dev/jhacker/basic-term-1> .
112
 <urn:dydra:revision:eb7da068-be68-434e-ab9d-9dceaa2cc95e> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Memento> .
113
 _:blank5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
114
 _:blank5 <http://www.mementoweb.org/terms/tb/start> 2012-06-30T12:53:13Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
115
 _:blank5 <http://www.mementoweb.org/terms/tb/end> 2012-08-21T16:43:02Z^^<http://www.w3.org/2001/XMLSchema#dateTime> .
116
 
117
 
118
 ;;; the lim it is 30, but the actual result is just 28 as the next revision would not fit
119
 (main-timemap :query-parameters "repository=statistics/de4.dydra.com&response-limit=30")
120
 
121
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/ResourceMap> .
122
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/TimeMap> .
123
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://purl.org/dc/terms/modified> "2013-03-29T17:28:45Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
124
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://purl.org/dc/terms/created> "2013-03-29T17:28:45Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
125
 _:timebundle <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Aggregation> .
126
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <http://admin.dydra.com/statistics/de4.dydra.com> .
127
 _:timebundle <http://purl.org/dc/elements/1.1/title> "Memento Time Bundle for 'http://admin.dydra.com/statistics/de4.dydra.com'" .
128
 _:timebundle <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/TimeBundle> .
129
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://www.openarchives.org/ore/terms/describes> _:timebundle .
130
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/TimeGate> .
131
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://www.mementoweb.org/terms/tb/timeGateFor> <http://admin.dydra.com/statistics/de4.dydra.com> .
132
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/OriginalResource> .
133
 <http://admin.dydra.com/statistics/de4.dydra.com> <http://www.mementoweb.org/terms/tb/covers> _:blank0 .
134
 _:blank0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
135
 _:blank0 <http://www.mementoweb.org/terms/tb/start> "2013-03-05T22:34:44Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
136
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <urn:dydra:revision:445b8651-32a6-a04d-8fcb-c2c10a7669b1> .
137
 <urn:dydra:revision:445b8651-32a6-a04d-8fcb-c2c10a7669b1> <http://www.mementoweb.org/terms/tb/validOver> _:blank1 .
138
 <urn:dydra:revision:445b8651-32a6-a04d-8fcb-c2c10a7669b1> <http://www.mementoweb.org/terms/tb/mementoFor> <http://admin.dydra.com/statistics/de4.dydra.com> .
139
 <urn:dydra:revision:445b8651-32a6-a04d-8fcb-c2c10a7669b1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Memento> .
140
 _:blank1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
141
 _:blank1 <http://www.mementoweb.org/terms/tb/start> "2013-03-26T17:54:43Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
142
 _:timebundle <http://www.openarchives.org/ore/terms/aggregates> <urn:dydra:revision:83c07043-d2a2-1d4e-9d20-0b047c97d671> .
143
 <urn:dydra:revision:83c07043-d2a2-1d4e-9d20-0b047c97d671> <http://www.mementoweb.org/terms/tb/validOver> _:blank2 .
144
 <urn:dydra:revision:83c07043-d2a2-1d4e-9d20-0b047c97d671> <http://www.mementoweb.org/terms/tb/mementoFor> <http://admin.dydra.com/statistics/de4.dydra.com> .
145
 <urn:dydra:revision:83c07043-d2a2-1d4e-9d20-0b047c97d671> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Memento> .
146
 _:blank2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mementoweb.org/terms/tb/Period> .
147
 _:blank2 <http://www.mementoweb.org/terms/tb/start> "2013-03-26T16:54:42Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
148
 _:blank2 <http://www.mementoweb.org/terms/tb/end> "2013-03-26T17:54:43Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
149
 
150
 
151
 |#