This repository has been archived by the owner on Jun 3, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy paths48-interfaces.scm
360 lines (333 loc) · 8.19 KB
/
s48-interfaces.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
;;; -*- Mode: Scheme; scheme48-package: (config) -*-
;;;; Schemantic Web
;;;; Interface Descriptions
;;; This code is written by Taylor R. Campbell and placed in the Public
;;; Domain. All warranties are disclaimed.
(define-interface uris-interface
(export
make-uri
uri?
absolute-uri?
relative-uri?
uri-absolute?
uri-relative?
uri-scheme
uri-authority
uri-path
uri-query
uri-fragment
uri=?
;; URI Authorities
make-uri-authority
uri-authority?
uri-authority-userinfo
uri-authority-host
uri-authority-port
uri-authority=?
;; URI Component Predicates
uri-scheme?
uri-userinfo?
uri-host?
uri-port?
uri-path?
uri-path-absolute?
uri-path-relative?
uri-query?
uri-fragment?
;; URI Operations
merge-uris
;; URI->String Conversion
uri->string
uri-authority->string
write-uri
write-uri-authority
;; String->URI Conversion
object->uri
object->absolute-uri
object->relative-uri
maybe-string->uri
maybe-string->absolute-uri
maybe-string->relative-uri
string->uri
string->absolute-uri
string->relative-uri
))
;;;; RDF Utilities
(define-interface rdf-interface
(export
make-rdf-triple
rdf-triple?
rdf-triple/subject
rdf-triple/predicate
rdf-triple/object
rdf-triple=?
rdf-triple-hash
rdf-triple-hash-mod
rdf-subject=? rdf-subject-hash rdf-subject-hash-mod
rdf-predicate=? rdf-predicate-hash rdf-predicate-hash-mod
rdf-object=? rdf-object-hash rdf-object-hash-mod
make-rdf-bnode
rdf-bnode?
rdf-bnode/name
rdf-bnode=?
rdf-bnode-hash
make-rdf-plain-literal
make-rdf-typed-literal
rdf-literal?
rdf-plain-literal?
rdf-typed-literal?
rdf-literal/lexical-form
rdf-plain-literal/language-tag
rdf-typed-literal/datatype-uri
rdf-literal=?
rdf-literal-hash
rdf-uri-ref?
rdf-uri-ref->string
string->rdf-uri-ref
rdf-uri-ref=?
rdf-uri-ref-hash
))
;;;;; RDF Graphs and Maps
(define-interface rdf-graphs-interface
(export
make-rdf-graph
rdf-graph?
rdf-graph/add-triple!
rdf-graph/all-objects
rdf-graph/all-predicates
rdf-graph/all-subjects
rdf-graph/all-triples
rdf-graph/for-each-matching-object
rdf-graph/for-each-matching-predicate
rdf-graph/for-each-matching-subject
rdf-graph/for-each-object
rdf-graph/for-each-predicate
rdf-graph/for-each-subject
rdf-graph/for-each-triple-by-object
rdf-graph/for-each-triple-by-predicate
rdf-graph/for-each-triple-by-subject
rdf-graph/for-each-triple
rdf-graph/matching-objects
rdf-graph/matching-predicates
rdf-graph/matching-subjects
rdf-graph/purge-matching-objects!
rdf-graph/purge-matching-predicates!
rdf-graph/purge-matching-subjects!
rdf-graph/purge-triples-by-object!
rdf-graph/purge-triples-by-predicate!
rdf-graph/purge-triples-by-subject!
rdf-graph/remove-triple!
rdf-graph/size
rdf-graph/triples-by-object
rdf-graph/triples-by-predicate
rdf-graph/triples-by-subject
))
(define-interface rdf-maps-internal-interface
(export
(in-map :syntax)
make-rdf-object-map
make-rdf-predicate-map
make-rdf-subject-map
map->alist
map/datum-list
map/delete!
map/key-list
map/insert!
map/intern!
map/lookup
map/modify!
map/search
map/size
map/update!
map/walk
))
(define-interface rdf-maps-interface
(export
(in-rdf-object-map :syntax)
(in-rdf-predicate-map :syntax)
(in-rdf-subject-map :syntax)
make-rdf-object-map
make-rdf-predicate-map
make-rdf-subject-map
rdf-object-map->alist
rdf-object-map/datum-list
rdf-object-map/delete!
rdf-object-map/key-list
rdf-object-map/insert!
rdf-object-map/intern!
rdf-object-map/lookup
rdf-object-map/modify!
rdf-object-map/search
rdf-object-map/size
rdf-object-map/update!
rdf-object-map/walk
rdf-predicate-map->alist
rdf-predicate-map/datum-list
rdf-predicate-map/delete!
rdf-predicate-map/key-list
rdf-predicate-map/insert!
rdf-predicate-map/intern!
rdf-predicate-map/lookup
rdf-predicate-map/modify!
rdf-predicate-map/search
rdf-predicate-map/size
rdf-predicate-map/update!
rdf-predicate-map/walk
rdf-subject-map->alist
rdf-subject-map/datum-list
rdf-subject-map/delete!
rdf-subject-map/key-list
rdf-subject-map/insert!
rdf-subject-map/intern!
rdf-subject-map/lookup
rdf-subject-map/modify!
rdf-subject-map/search
rdf-subject-map/size
rdf-subject-map/update!
rdf-subject-map/walk
))
;;;; Parsers
(define-interface uri-parser-interface
(export
uri-parser:uri-reference
uri-parser:uri
uri-parser:relative-ref
uri-parser:absolute-uri ;No fragment
uri-matcher:uri-reference
uri-matcher:uri
uri-matcher:relative-ref
uri-matcher:absolute-uri
))
(define-interface rdf-nt-parser-interface
(export
nt-parser:document
make-nt-parser-context
))
(define-interface rdf-turtle-parser-interface
(export
turtle-parser:document
make-turtle-parser-context
))
(define-interface sparql-format-interface
(export
sparql-format:!
sparql-format:+
sparql-format:+:list
sparql-format:-
sparql-format:*
sparql-format:*:list
sparql-format:/
sparql-format:=
sparql-format:=:list
sparql-format:!=
sparql-format:!=:list
sparql-format:<
sparql-format:<:list
sparql-format:>
sparql-format:>:list
sparql-format:<=
sparql-format:<=:list
sparql-format:>=
sparql-format:>=:list
sparql-format:~
sparql-format:and
sparql-format:and:list
sparql-format:ask
sparql-format:base
sparql-format:bnode
sparql-format:boolean
sparql-format:call
sparql-format:call-list
sparql-format:collection
sparql-format:collection-list
sparql-format:construct
sparql-format:describe
sparql-format:false
sparql-format:filter
sparql-format:from-dataset
sparql-format:from-named-dataset
sparql-format:graph-pattern
sparql-format:group
sparql-format:iri-ref
sparql-format:keyword
sparql-format:limit
sparql-format:named-bnode
sparql-format:number
sparql-format:object-list
sparql-format:objects
sparql-format:offset
sparql-format:optional
sparql-format:or
sparql-format:or:list
sparql-format:order-by
sparql-format:order-by:list
sparql-format:parenthesis
sparql-format:pattern-list
sparql-format:plain-literal
sparql-format:prefix
sparql-format:prefixed-name
sparql-format:properties
sparql-format:property
sparql-format:property-list
sparql-format:select
sparql-format:triple-pattern
sparql-format:true
sparql-format:typed-literal
sparql-format:union
sparql-format:union-list
sparql-format:$variable
sparql-format:?variable
sparql-format:variable
sparql-format:variable-prefix
))
(define-interface sparql-sexp-interface
(export
compile-sparql
compile-sparql-prologue
compile-sparql-query
compile-sparql-pattern
compile-sparql-patterns
compile-sparql-expression
compile-sparql-expressions
sparql->condensed-string
sparql->string
write-sparql
write-sparql-condensed
))
(define-interface sparql-results-interface
(export
parse-sparql-results
))
(define-interface sparql-http-client-interface
(export
http-get-sparql
http-post-sparql
))
(define-interface simple-http-client-interface
(export
call-with-http-response
default-http-uri-authority
earliest-http-version
http-get
http-head
http-header-field/name
http-header-field/value
http-post
http-response?
http-response/header-fields
http-response/reason
http-response/status-code
http-response/status-type
http-response/version
http-version?
http-version=?
http-version<=?
http-version/major
http-version/minor
latest-http-version
make-http-header-field
make-http-response
make-http-version
read-http-entity-body
with-default-http-uri-authority
))