Note
This documentation is for a development version. Click here for the latest stable release (v1.1.0).
nengo_spa.semantic_pointer¶
Classes

Absorbing element. 

Identity element. 

A Semantic Pointer, based on Holographic Reduced Representations. 

Zero element. 

class
nengo_spa.semantic_pointer.
SemanticPointer
(data, vocab=None, algebra=None, name=None)[source]¶ A Semantic Pointer, based on Holographic Reduced Representations.
Operators are overloaded so that
+
and
are addition,*
is circular convolution, and~
is the inversion operator. Parameters
data (array_like) – The vector constituting the Semantic Pointer.
vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument.
algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to
CircularConvolutionAlgebra
. Mutually exclusive with the vocab argument.name (str, optional) – A name for the Semantic Pointer.

v
¶ The vector constituting the Semantic Pointer.
 Type
array_like

algebra
¶ Algebra that defines the vector symbolic operations on this Semantic Pointer.
 Type

vocab
¶ The vocabulary the this Semantic Pointer is considered to be part of.
 Type
Vocabulary or None

name
¶ Name of the Semantic Pointer.
 Type
str or None

normalized
()[source]¶ Normalize the Semantic Pointer and return it as a new object.
If the vector length is zero, the Semantic Pointer will be returned unchanged.
The original object is not modified.

unitary
()[source]¶ Make the Semantic Pointer unitary and return it as a new object.
The original object is not modified.
A unitary Semantic Pointer has the property that it does not change the length of Semantic Pointers it is bound with using circular convolution.

get_binding_matrix
(swap_inputs=False)[source]¶ Return the matrix that does a binding with this vector.
This should be such that
A*B == dot(A.get_binding_matrix(), B.v)
.

compare
(other)[source]¶ Return the similarity between two SemanticPointers.
This is the normalized dot product, or (equivalently), the cosine of the angle between the two vectors.

reinterpret
(vocab)[source]¶ Reinterpret the Semantic Pointer as part of vocabulary vocab.
The vocab parameter can be set to None to clear the associated vocabulary and allow the source to be interpreted as part of the vocabulary of any Semantic Pointer it is combined with.

translate
(vocab, populate=None, keys=None, solver=None)[source]¶ Translate the Semantic Pointer to vocabulary vocab.
The translation of a Semantic Pointer uses some form of projection to convert the Semantic Pointer to a Semantic Pointer of another vocabulary. By default the outer products of terms in the source and target vocabulary are used, but if solver is given, it is used to find a least squares solution for this projection.
 Parameters
vocab (Vocabulary) – Target vocabulary.
populate (bool, optional) – Whether the target vocabulary should be populated with missing keys. This is done by default, but with a warning. Set this explicitly to True or False to silence the warning or raise an error.
keys (list, optional) – All keys to translate. If None, all keys in the source vocabulary will be translated.
solver (nengo.Solver, optional) – If given, the solver will be used to solve the least squares problem to provide a better projection for the translation.

class
nengo_spa.semantic_pointer.
Identity
(n_dimensions, vocab=None, algebra=None)[source]¶ Bases:
nengo_spa.semantic_pointer.SemanticPointer
Identity element.
 Parameters
n_dimensions (int) – Dimensionality of the identity vector.
vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument.
algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to
CircularConvolutionAlgebra
. Mutually exclusive with the vocab argument.

class
nengo_spa.semantic_pointer.
AbsorbingElement
(n_dimensions, vocab=None, algebra=None)[source]¶ Bases:
nengo_spa.semantic_pointer.SemanticPointer
Absorbing element.
If \(z\) denotes the absorbing element, \(v \circledast z = c z\), where \(v\) is a Semantic Pointer and \(c\) is a realvalued scalar. Furthermore \(\z\ = 1\).
 Parameters
n_dimensions (int) – Dimensionality of the identity vector.
vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument.
algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to
CircularConvolutionAlgebra
. Mutually exclusive with the vocab argument.

class
nengo_spa.semantic_pointer.
Zero
(n_dimensions, vocab=None, algebra=None)[source]¶ Bases:
nengo_spa.semantic_pointer.SemanticPointer
Zero element.
 Parameters
n_dimensions (int) – Dimensionality of the identity vector.
vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument.
algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to
CircularConvolutionAlgebra
. Mutually exclusive with the vocab argument.