aboutsummaryrefslogtreecommitdiff
path: root/transform
diff options
context:
space:
mode:
Diffstat (limited to 'transform')
-rw-r--r--transform/triples.scm34
1 files changed, 19 insertions, 15 deletions
diff --git a/transform/triples.scm b/transform/triples.scm
index f2dbcf7..55edf8a 100644
--- a/transform/triples.scm
+++ b/transform/triples.scm
@@ -35,27 +35,31 @@
(format #f "~s~a" string-field schema)))))
(define* (string->identifier
- prefix str
- #:optional #:key
- (ontology "gn:")
- (separator "")
- (proc string-capitalize-first))
+ prefix str
+ #:optional #:key
+ (ontology "gn:")
+ (separator "")
+ (proc string-capitalize-first))
"Convert STR to a turtle identifier after replacing illegal
characters with an underscore and prefixing with gn:PREFIX."
(if (or (and (string? str) (string-null? str))
- (eq? str #f))
+ (eq? str #f))
""
(string->symbol
(string-append ontology prefix separator
- (string-delete
- (lambda (c)
- (eq? c #\)))
- (string-map (lambda (c)
- (case c
- ((#\/ #\< #\> #\+ #\( #\space #\@) #\_)
- (else c)))
- (proc
- (string-trim-right str #\.))))))))
+ (string-delete
+ (lambda (c)
+ (eq? c #\)))
+ (string-map (lambda (c)
+ (case c
+ ((#\/ #\< #\> #\+ #\( #\space #\@) #\-)
+ (else c)))
+ (proc
+ (string-trim-right
+ (regexp-substitute/global
+ #f "_"
+ str
+ 'pre "-" 'post) #\.))))))))
(define* (prefix prefix iri #:optional (ttl? #t))