The index.kaf file contains information that will go into the various Axiom database (.daase). These database files are in src -> share -> algebra.
The kaf file format is a random access file.
There is a standalone command called asq which will give information from Axiom's databases:
asq
asq Integer
asq -sh Integer
(see daase.lisp.pamphlet for the structure defnition)
interp.daase | |
operation.daase | |
category.daase | |
compress.daase | |
browse.daase |
An association list, or alist for short, records a mapping from keys to values. It is a list of cons cells called associations: the car of each cons cell is the key, and the cdr is the associated value
It would be useful to have access to these databases from SPAD. There is some database code in: alql.spad.pamphlet but, as far as I can see, this doesn't seem to access the '.daase' data.
There is also information in daase.lisp.
Reading Databases from SPAD
Databases can be read using 'getDatabase' (from alql.spad.pamphlet)
The particular database is set by input to getDatabase:
- "o" - operations
- "k" - constructors
- "d" - domains
- "c" - categories
- "p" - packages
Operations Database
(1) -> display(getDatabase("o")) <snip> 1 : ()->_$ |
Constructors Database
(2) -> display(getDatabase("k")) AbelianGroup : ()->Category AbelianMonoidRing : (Join(SemiRng,etc),OrderedAbelianMonoid)->Category AbelianMonoid : ()->Category AbelianProductCategory : (Type)->Category AbelianSemiGroup : ()->Category Aggregate : ()->Category Algebra : (CommutativeRing)->Category AlgebraicallyClosedField : ()->Category AlgebraicallyClosedFunctionSpace : (Join(Comparable,etc))->Category Approximate : ()->Category ArcHyperbolicFunctionCategory : ()->Category ArcTrigonometricFunctionCategory : ()->Category AssociationListAggregate : (SetCategory,Type)->Category BagAggregate : (Type)->Category BasicType : ()->Category BiModule : (SemiRng,SemiRng)->Category <snip> |
Domains Database
(3) -> display(getDatabase("d")) AlgebraGivenByStructuralConstants : (R:Field,n:PositiveInteger,List(Symbol),Vector(Matrix(R)))->Join(FramedNo nAssociativeAlgebra(R),etc) AlgebraicFunctionField : (F:Field,UP:UnivariatePolynomialCategory(F),UPUP:UnivariatePolynomialCate gory(Fraction(UP)),UPUP)->Join(FunctionFieldCategory(F,UP,UPUP),etc) AlgebraicNumber : ()->Join(ExpressionSpace,etc) AnonymousFunction : ()->SetCategory AntiSymm : (Ring,List(Symbol))->Join(LeftAlgebra(R),etc) Any : ()->Join(SetCategory,etc) ArrayStack : (SetCategory)->Join(StackAggregate(S),etc) AssociatedJordanAlgebra : (R:CommutativeRing,A:NonAssociativeAlgebra(R))->Join(NonAssociativeAlgebr a(R),etc) AssociatedLieAlgebra : (R:CommutativeRing,A:NonAssociativeAlgebra(R))->Join(NonAssociativeAlgebr a(R),etc) AssociationList : (SetCategory,Entry:Type)->AssociationListAggregate(Key,Entry) Automorphism : (Ring)->Join(Group,etc) <snip> |
Categories Database
(4) -> display(getDatabase("c")) AbelianGroup : ()->Category AbelianMonoidRing : (Join(SemiRng,etc),OrderedAbelianMonoid)->Category AbelianMonoid : ()->Category AbelianProductCategory : (Type)->Category AbelianSemiGroup : ()->Category Aggregate : ()->Category Algebra : (CommutativeRing)->Category AlgebraicallyClosedField : ()->Category <snip> (4) -> fullDisplay(getDatabase("c"),2,2) AbelianMonoidRing : (Join(SemiRng,etc),OrderedAbelianMonoid)->Category from R,E) if "AMR" Type: Void (5) -> |
Packages Database
(5) -> display(getDatabase("p")) AlgFactor : (UnivariatePolynomialCategory(AlgebraicNumber))->etc AlgebraPackage : (R:IntegralDomain,A:FramedNonAssociativeAlgebra(R))->etc AlgebraicFunction : (R:Join(Comparable,etc),F:FunctionSpace(R))->etc AlgebraicHermiteIntegration : (F:Field,UP:UnivariatePolynomialCategory(F),UPUP:UnivariatePolynomialCate gory(Fraction(UP)),R:FunctionFieldCategory(F,UP,UPUP))->etc AlgebraicIntegrate : (R0:Join(Comparable,etc),F:Join(AlgebraicallyClosedField,etc),UP:Univaria tePolynomialCategory(F),UPUP:UnivariatePolynomialCategory(Fraction(UP)),R :FunctionFieldCategory(F,UP,UPUP))->etc AlgebraicIntegration : (R:Join(Comparable,etc),F:Join(AlgebraicallyClosedField,etc))->etc AlgebraicManipulations : (R:IntegralDomain,F:Join(Field,etc))->etc AlgebraicMultFact : (OV:OrderedSet,E:OrderedAbelianMonoidSup,P:PolynomialCategory(AlgebraicNu mber,E,OV))->etc AnyFunctions1 : (Type)->etc ApplyRules : (Base:SetCategory,R:Join(Ring,etc),F:Join(FunctionSpace(R),etc))->etc <snip> |
ASQ
fricas-1.1.0/target/x86_64-suse-linux/bin> ./asq AXIOM shell variable has no value. using current directory Usage: ./asq key or ./asq -property key where key is the name (or abbreviation) and property is one of the following: (al) all (con) constructor (so) sourcefile (ckind) constructorkind (nilad) niladic (abbr) abbreviation (ddom) defaultdomain (anc) ancestors (op) operations (attr) attributes (cos) cosig (cform) constructorform (cmod) constructormodemap (mod) modemaps (ccat) constructorcategory (doc) documentation (pre) predicates You can give full property name or use abbreviated form given in parenthesis above. The first form prints all properties. /fricas-1.1.0/target/x86_64-suse-linux/bin> ./asq so AXIOM shell variable has no value. using current directory unable to find the file compress.daase fricas-1.1.0/target/x86_64-suse-linux/bin> ./asq (so) bash: syntax error near unexpected token `so' fricas-1.1.0/target/x86_64-suse-linux/bin> ./asq CliffordAlgebra AXIOM shell variable has no value. using current directory unable to find the file compress.daase fricas-1.1.0/target/x86_64-suse-linux/bin>