VALUE TYPES

In this version you are provided with the following basic value types from which you can make attribute types.

Integer Numeric for whole numbers Range: -billion to billion (normal 32 bits) Held as: 32 bits Coding: simple signed binary number

Floating point Numeric for floating point numbers Range: normal 32 bits Held as: 32 bits Coding: normal exponent and mantissa

Ratio Numerator and denominator, both can be signed Used for any ratio Range: Each part has range of full integer. The ratio can represent infinity by holding denominator = 0 Held as: Two 32 bit integers Coding: Two simple signed binary numbers Infinity when denominator = 0 In most manipulations, the greatest common divisor is removed (so if you multiply 4/7 by 14/15 you get 8/15)

Odds Numerator and denominator, both positive Used especially for odds and conversions to and from probability Used for bayesian multipliers Range: Each part has range 0 to 65k Held as: Two unsigned 16 bit words Coding: Two simple unsigned binary numbers Infinity when denominator = 0 In most manipulations the greatest common divisor is removed

String Any string Range: up to 200 characters in length at present Held as: child 'Sysatt' block with as much space as needed Coding: ASCII

Boolean Truth value: yes or no, true or false Range: true or false Held as: unsigned 16 bit word Coding: 0 = false, anything else = true

Probability 0 to 1 (0 to 100%) for soft truth value Range: 0 to 1 Held as: Unsigned 16 bit word Coding: 0x0000 means 0, 0xffff means 1

Bayesian Probability used for evidential reasoning Has a-priori and lower and upper cut-offs Range: Part as probability Held as: Four probabilities Coding: As probability, four times

Proportion Represents a proportion 0 to 100% Used for anything that requires a limit of 100% Range: 0 to 100% Held as: Unsigned 16 bit word Coding: 0xffff means 100% In many things proportion and probability are interchangeable

OZMO (one-zero-minus-one, e.g. result of cosine) Like a proportion that can go negative as well as positive Used for e.g. degrees of belief, degrees of dislike Range: -1 to 0 to 1 Held as: Signed 32 bit word, Coding: 0x80000000 means -1, 0 means 0, 0x7fFFffFF means 1

Direction/Angle (0 to 360 degrees) A circular value which represents proportion round a circle Used for angles, directions, etc. Range: 0 to 360 degrees (2.pi radians) Held as: Unsigned 16 bit word Coding: 0x0000 = 0 and 360 degrees. 0xffff = just before 360 90 degrees = 0x4000, 180 degrees = 0x8000, etc.

Enumerated Type An index number for selecting an entity from a set See also Ordinal, which is ordered Strictly, numeric comparisons and operations meaningless but in practice allowed as for Ordinal Range: strictly meaningless Each value is expected to have an attached string name Held as: Unsigned 16 bit word Coding: 0 means 'nothing selected', 1 upwards shows selection

Ordinal An index number for selecting an entiry from a list See also Enum, which is unordered Numeric comparisons and operations meaningful Range: 1 to 65k Each value can be linked to an attached string name Held as: Unsigned 16 bit word Coding: 1 = first in list, 2 = second, etc. 0 = 'nothing selected'

Block The DSAP of a block in the KB Used for identifying things in the KB and e.g. getting name of it Its value must never be altered as it is like a pointer Range: strictly meaningless Coding: 32 bit relative pointer

Copyright (c) Andrew Basden, 1996

Back to Istar