Add rdf utils.

Julien LepillerTue Apr 07 04:55:59+0200 2020

0520208

Add rdf utils.

Makefile.am

66
  rdf/entailment/rdfs.scm \
77
  rdf/entailment/simple.scm \
88
  rdf/rdf.scm \
9+
  rdf/utils.scm \
910
  rdf/xsd.scm \
1011
  turtle/fromrdf.scm \
1112
  turtle/parser.scm \

rdf/entailment/rdf.scm

1919
  #:use-module (ice-9 match)
2020
  #:use-module (rdf rdf)
2121
  #:use-module ((rdf entailment d) #:prefix d:)
22+
  #:use-module (rdf utils)
2223
  #:use-module (srfi srfi-1)
2324
  #:export (consistent-graph?
2425
            entails?))

2728
  (string-append "http://www.w3.org/1999/02/22-rdf-syntax-ns#" name))
2829
2930
(define (consistent-graph? graph vocabulary)
30-
  (define (alist-set lst key val)
31-
    (match lst
32-
      (() (list (cons key val)))
33-
      (((k . v) lst ...)
34-
       (if (equal? k key)
35-
           (cons (cons key val) lst)
36-
           (cons (cons k v) (alist-set lst key val))))))
37-
3831
  (define (compatible? types)
3932
    (match (filter rdf-datatype? types)
4033
      (() #t)

rdf/utils.scm unknown status 1

1+
;;;; Copyright (C) 2020 Julien Lepiller <julien@lepiller.eu>
2+
;;;; 
3+
;;;; This library is free software; you can redistribute it and/or
4+
;;;; modify it under the terms of the GNU Lesser General Public
5+
;;;; License as published by the Free Software Foundation; either
6+
;;;; version 3 of the License, or (at your option) any later version.
7+
;;;; 
8+
;;;; This library is distributed in the hope that it will be useful,
9+
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11+
;;;; Lesser General Public License for more details.
12+
;;;; 
13+
;;;; You should have received a copy of the GNU Lesser General Public
14+
;;;; License along with this library; if not, write to the Free Software
15+
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16+
;;;; 
17+
18+
(define-module (rdf utils)
19+
  #:use-module (ice-9 match)
20+
  #:export (alist-set))
21+
22+
(define (alist-set lst key val)
23+
  (match lst
24+
    (() (list (cons key val)))
25+
    (((k . v) lst ...)
26+
     (if (equal? k key)
27+
         (cons (cons key val) lst)
28+
         (cons (cons k v) (alist-set lst key val))))))