#| -*-Scheme-*- $Id: rdf-names.scm 7972 2007-12-10 04:27:29Z cph $ Copyright (C) 2007 Massachusetts Institute of Technology This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. |# ;;;; RDF name bindings (declare (usual-integrations)) (define (register-uri-var var-name uri) (let ((uri (canonicalize-rdf-uri uri))) (hash-table-set! uri->scheme-var-map uri var-name) uri)) (define (uri->scheme-var uri) (hash-table-ref/default uri->scheme-var-map uri #f)) (define uri->scheme-var-map (make-eq-hash-table)) (define-syntax define-rdf-class (sc-macro-transformer (lambda (form env) env (if (syntax-match? '(symbol) (cdr form)) (let ((name (cadr form))) (let ((sname (symbol '< (camel-case->lisp name) '>))) `(define ,sname (register-uri-var ',sname ',name)))) (ill-formed-syntax form))))) (define-rdf-class |rdfs:Resource|) (define-rdf-class |rdfs:Literal|) (define-rdf-class |rdf:XMLLiteral|) (define-rdf-class |rdfs:Class|) (define-rdf-class |rdf:Property|) (define-rdf-class |rdfs:Datatype|) (define-rdf-class |rdf:List|) (define-rdf-class |owl:Class|) (define-rdf-class |owl:Thing|) (define-rdf-class |owl:Nothing|) (define-rdf-class |owl:Restriction|) (define-rdf-class |owl:ObjectProperty|) (define-rdf-class |owl:DatatypeProperty|) (define-rdf-class |owl:FunctionalProperty|) (define-rdf-class |owl:InverseFunctionalProperty|) (define-rdf-class |owl:TransitiveProperty|) (define-rdf-class |owl:SymmetricProperty|) (define-rdf-class |owl:AllDifferent|) (define-rdf-class |owl:DataRange|) (define-rdf-class |owl:Ontology|) (define-rdf-class |owl:AnnotationProperty|) (define-rdf-class |owl:OntologyProperty|) (define-rdf-class |owl:DeprecatedClass|) (define-rdf-class |owl:DeprecatedProperty|) (define-rdf-class |xsd:string|) (define-rdf-class |xsd:normalizedString|) (define-rdf-class |xsd:token|) (define-rdf-class |xsd:language|) (define-rdf-class |xsd:NMTOKEN|) (define-rdf-class |xsd:Name|) (define-rdf-class |xsd:NCName|) (define-rdf-class |xsd:boolean|) (define-rdf-class |xsd:decimal|) (define-rdf-class |xsd:float|) (define-rdf-class |xsd:double|) (define-rdf-class |xsd:integer|) (define-rdf-class |xsd:nonPositiveInteger|) (define-rdf-class |xsd:negativeInteger|) (define-rdf-class |xsd:nonNegativeInteger|) (define-rdf-class |xsd:positiveInteger|) (define-rdf-class |xsd:long|) (define-rdf-class |xsd:int|) (define-rdf-class |xsd:short|) (define-rdf-class |xsd:byte|) (define-rdf-class |xsd:unsignedLong|) (define-rdf-class |xsd:unsignedInt|) (define-rdf-class |xsd:unsignedShort|) (define-rdf-class |xsd:unsignedByte|) (define-rdf-class |xsd:dateTime|) (define-rdf-class |xsd:time|) (define-rdf-class |xsd:date|) (define-rdf-class |xsd:gYearMonth|) (define-rdf-class |xsd:gYear|) (define-rdf-class |xsd:gMonthDay|) (define-rdf-class |xsd:gDay|) (define-rdf-class |xsd:gMonth|) (define-rdf-class |xsd:hexBinary|) (define-rdf-class |xsd:base64Binary|) (define-rdf-class |xsd:anyURI|) (define-syntax define-rdf-property (sc-macro-transformer (lambda (form env) env (if (syntax-match? '(symbol) (cdr form)) (let ((name (cadr form))) (let ((sname (camel-case->lisp name))) `(define ,sname (register-uri-var ',sname ',name)))) (ill-formed-syntax form))))) (define-rdf-property |rdfs:subClassOf|) (define-rdf-property |rdfs:subPropertyOf|) (define-rdf-property rdf:type) (define-rdf-property rdfs:range) (define-rdf-property rdfs:domain) (define-rdf-property rdf:first) (define-rdf-property rdf:rest) (define-rdf-property rdf:value) (define-rdf-property rdfs:label) (define-rdf-property rdfs:comment) (define-rdf-property |rdfs:seeAlso|) (define-rdf-property |rdfs:isDefinedBy|) (define-rdf-property |owl:oneOf|) (define-rdf-property |owl:onProperty|) (define-rdf-property |owl:allValuesFrom|) (define-rdf-property |owl:someValuesFrom|) (define-rdf-property |owl:hasValue|) (define-rdf-property |owl:maxCardinality|) (define-rdf-property |owl:minCardinality|) (define-rdf-property |owl:cardinality|) (define-rdf-property |owl:intersectionOf|) (define-rdf-property |owl:unionOf|) (define-rdf-property |owl:complementOf|) (define-rdf-property |owl:equivalentClass|) (define-rdf-property |owl:disjointWith|) (define-rdf-property |owl:equivalentProperty|) (define-rdf-property |owl:inverseOf|) (define-rdf-property |owl:sameAs|) (define-rdf-property |owl:differentFrom|) (define-rdf-property |owl:distinctMembers|) (define-rdf-property |owl:versionInfo|) (define-rdf-property |owl:imports|) (define-rdf-property |owl:priorVersion|) (define-rdf-property |owl:backwardCompatibleWith|) (define-rdf-property |owl:incompatibleWith|) (define-syntax define-rdf-resource (sc-macro-transformer (lambda (form env) env (if (syntax-match? '(symbol) (cdr form)) (let ((name (cadr form))) (let ((sname (camel-case->lisp name))) `(define ,sname (register-uri-var ',sname ',name)))) (ill-formed-syntax form))))) (define-rdf-resource rdf:nil)