make-space-instance |
| path
&rest initargs&key
| [Function] |
Purpose
Create a new space instance.
Package :gbbopen
Module :gbbopen-core
Arguments and values
path | A space-instance path specifying the location in the blackboard repository where the new space instance is to be created | |
initargs | An initialization argument list | |
allowed-unit-classes | An extended unit-classes specification
or nil (see below; default is t )
| |
dimensions | A list of ( dimension-name
dimension-type-specifier) nil )
| |
storage | A storage specification
(see below; default is (t t unstructured) nil if
allowed-unit-classes is nil )
| |
make-parents | A generalized boolean (default is nil )
| |
class | The name of the space class for the created
space instance (default is standard-space-instance | |
space-instance | A space instance |
Returns
The created space instance.
Events
When a space instance is created, events are signaled in the
following sequence:
nonlink-slot-updated-event
link-event
link-event
instance-added-to-space-instance-event
instance-created-event
Errors
Use of an initialization argument that has not been declared as valid.
The supplied or generated instance name is identical to the instance name of an existing unit instance of class.
Detailed syntax
nil |
| :ordered |
(:ordered [ordered-comparison-type]) | |
:enumerated |
(:enumerated [enumerated-comparison-type]) | | |
:boolean |
(:boolean [boolean-comparison-type]) | |
| number | fixnum |
short-float | single-float | |
double-float | long-float | | |
pseudo-probability | |
| eq | eql |
equal | equalp |
| t |
| t |
single-unit-class-specifier
| ( single-unit-class-specifier+) |
| atomic-unit-class |
( atomic-unit-class subclassing-specifier) |
| unit-class | unit-class-name |
| ( unit-class-specifier dimension-names
storage-specification)* |
| dimension-name |
( dimension-name+) | t |
| unstructured | |
boolean | | |
uniform-buckets :layout
dimension-buckets-specification+ | | |
hashed [:size integer] | |
| ( start-value end-value bucket-width) |
The default number
eql
. The default
t
.
Terms
dimension-name | A symbol specifying a dimension |
Description
Specifying a :space-instances
:initial-space-instances
:paths
initialization argument. Placing a
space instance on other space instances is no different from
placing any other unit instance on a space instance.
See also
allowed-unit-classes-of
change-space-instance
children-of
define-space-class
delete-all-space-instances
delete-space-instance
describe-instance
describe-space-instance
describe-space-instance-storage
dimensions-of
make-instance
parent-of
Examples
Create a top-level space instance, bb
,
that cannot store any unit instances:
> (make-space-instance '(bb) :allowed-unit-classes nil) #<standard-space-instance (bb)> >Now create a space instance for
hyp
unit instances,
named hyps
, as a child of bb
, with uniform, 100-wide, bucket
storage for indexing unit instances with dimension values
between 0–10,000 in the x
and y
dimensions:
> (make-space-instance '(bb hyps) :dimensions (dimensions-of 'hyp) :allowed-unit-classes '((hyp :plus-subclasses)) :storage '(((hyp :plus-subclasses) (x y) uniform-buckets :layout ((0 10000 100) (0 10000 100))))) #<standard-space-instance (bb hyps)> >
Here is an improved space instance for hyp
unit instances named hyps
, with both uniform-bucket storage for
indexing in the x
and y
dimensions and hashed storage to
retrieve match candidates via classification
> (make-space-instance '(bb hyps) :dimensions (dimensions-of 'hyp) :allowed-unit-classes '((hyp :plus-subclasses)) :storage '(((hyp :plus-subclasses) (x y) uniform-buckets :layout ((0 10000 100) (0 10000 100))) ((hyp :plus-subclasses) (classification) hashed))) #<standard-space-instance (bb hyps)> >
Note
The :instance-name
The GBBopen Project
make-space-instance |