On this page:
nsmap
make-rdf-only-nsmap
make-rdf+  xsd-nsmap
make-common-nsmap
make-nsmap
nsmap-empty?
nsmap-count
nsmap-shorten
nsmap-has-default?
nsmap-ref-default
nsmap-has-prefix?
nsmap-ref
nsmap-ref!
nsmap-set-default!
nsmap-set!
nsmap-remove!
nsmap-update!
nsmap-clear!
nsmap-has-resource?
nsmap-find-namespace
nsmap-prefix-ref
nsmap-map
nsmap-prefixes
nsmap-namespaces
nsmap->list

5.3 Namespace Maps🔗ℹ

A namespace map is essential in serializing and deserializing RDF datasets, graphs, and statements.

Namespace Module – Namespace Maps

struct

(struct nsmap ())

This struct wraps a hash between prefix? and resource? values.

constructor

(make-rdf-only-nsmap)  nsmap?

Returns a new nsmap containing a mapping for the RDF namespace only.

constructor

(make-rdf+xsd-nsmap)  nsmap?

Returns a new nsmap containing a mapping for the RDF and XML Schema namespaces only.

constructor

(make-common-nsmap)  nsmap?

Returns a new nsmap containing mappings for commonly used namespaces.

constructor

(make-nsmap [assocs])  nsmap?

  assocs : (listof (cons/c prefix? resource?)) = '()
Returns a new nsmap containing the mappings in assocs.

predicate

(nsmap-empty? map)  boolean?

  map : nsmap?
Returns #t if map contains no mapping values.

Examples:
> (require rdf/core/nsmap)
> (let ((namespace-map (make-nsmap)))
    (iff (nsmap-empty? namespace-map) (= (nsmap-count namespace-map) 0)))

#t

procedure

(nsmap-count map)  exact-nonnegative-integer?

  map : nsmap?
Returns the number of mapping values in map.

Examples:
> (require rdf/core/nsmap)
> (let ((namespace-map (make-common-nsmap)))
    (iff (not (nsmap-empty? namespace-map)) (> (nsmap-count namespace-map) 0)))

#t

procedure

(nsmap-shorten map url)  (or/c prefixed-name? prefix? url?)

  map : nsmap?
  url : url?
This function will attempt to produce a prefixed-name from the provided url, if the namespace value returned by url->namespace+name is present in map. If no mapping is found the original url value is returned.

Examples:
> (require rdf/core/nsmap)
> (nsmap-shorten (make-common-nsmap)
                 (string->resource "http://www.w3.org/2000/01/rdf-schema#comment"))

(prefixed-name (prefix "rdfs:") (local-name "comment"))

> (nsmap-shorten (make-common-nsmap)
                 (string->resource "http://www.w3.org/2000/01/rdf-schema#"))

(prefix "rdfs:")

> (nsmap-shorten (make-common-nsmap)
                 (string->resource "http://www.w3.org/oops/rdf-schema#"))

(url

 "http"

 #f

 "www.w3.org"

 #f

 #t

 (list (path/param "oops" '()) (path/param "rdf-schema" '()))

 '()

 "")

procedure

(nsmap-has-default? map)  boolean?

  map : nsmap?
Returns #t iff the namespace map contains a namespace value for the default prefix ":".

procedure

(nsmap-ref-default map)  (or/c resource? #f)

  map : nsmap?
Returns the resource? associated with the default prefix ":", or #f if none exists.

procedure

(nsmap-has-prefix? map prefix)  boolean?

  map : nsmap?
  prefix : prefix?
Returns #t iff the map contains a namespace value for prefix.

procedure

(nsmap-ref map prefix)  (or/c resource? #f)

  map : nsmap?
  prefix : prefix?
Returns the resource? associated with prefix, or #f if none exists.

procedure

(nsmap-ref! map prefix to-set)  (or/c resource? #f)

  map : nsmap?
  prefix : prefix?
  to-set : resource?
TBD

procedure

(nsmap-set-default! map url)  void?

  map : nsmap?
  url : resource?
TBD

procedure

(nsmap-set! map prefix url)  void?

  map : nsmap?
  prefix : prefix?
  url : resource?
TBD

procedure

(nsmap-remove! map prefix)  void?

  map : nsmap?
  prefix : prefix?
TBD

procedure

(nsmap-update! map prefix updater)  boolean?

  map : nsmap?
  prefix : prefix?
  updater : (-> resource? namespace)
TBD

procedure

(nsmap-clear! map)  void?

  map : nsmap?
TBD

procedure

(nsmap-has-resource? map url)  boolean?

  map : nsmap?
  url : resource?
TBD

procedure

(nsmap-find-namespace map url)

  (or/c (cons/c prefix? resource?) #f)
  map : nsmap?
  url : resource?
TBD

procedure

(nsmap-prefix-ref map url)  (or/c prefix? #f)

  map : nsmap?
  url : namespace?
TBD

procedure

(nsmap-map map proc [try-order?])  (listof any/c)

  map : nsmap?
  proc : (-> prefix? namespace? any/c)
  try-order? : any/c = #f
TBD

procedure

(nsmap-prefixes map [try-order?])  (listof prefix?)

  map : nsmap?
  try-order? : any/c = #f
TBD

procedure

(nsmap-namespaces map [try-order?])  (listof namespace?)

  map : nsmap?
  try-order? : any/c = #f
TBD

procedure

(nsmap->list map [try-order?])

  (listof (cons/c prefix? namespace?))
  map : nsmap?
  try-order? : any/c = #f
TBD