FunLog++ - introduction - glossary - language - library - special - semiknown - dynamic
Semiknown Values
concept - examples - basic functions - derived functions
SE1 - SE2 - SE3 - SE4 - SE5 - SE6 - SE7 - SE8 - SE9 - SE10

The new concept of semiknown values is used to represent uncertain knowledge. A semiknown value is one specific value of any domain
- which is not known precisely and unambiguously
    (in contrast to computer program values)   and
- which is not unknown
    (in contrast to unassigned variables).

FunLog++ is a programming language which includes denotation functions,
algebraic functions and evaluation functions for semiknown values.
Try to use semiknown values with the following examples in FunLog++.

Remark: Semiknown values could be implemented in almost any programming language. Especially object-oriented languages with polymorphic function identification are suitable (e.g. like JAVA). The reason to use FunLog++ was that this language allows to define prefix-, infix-, and postfix-operators. Thus algebraic operations could be extended to Semiknown Values comfortably.
 
Concept of semiknown values
concept - examples - basic functions - derived functions
SE1 - SE2 - SE3 - SE4 - SE5 - SE6 - SE7 - SE8 - SE9 - SE10

Semiknown values of any domain are represented as
- possibilistic data   ( given as subsets )               or
- probabilistic data  ( given as stochastic variables )

As the concept of probability density function in stochastic variables is valid for discrete as well as for continuous variables we write p(x) for both kinds of data. The distribution function Fd(x0) for discrete semiknown values is defined as:

Fd(x0) = pd(x £x0) = Spd(xi|xi£x0) The distribution function  Fd(x0) for continuous semiknown values is defined as: Fd(x0) =pd(x £ x0) = òpd(x|x£x0) dx
Examples of semiknown values
concept - examples - basic functions - derived functions
SE1 - SE2 - SE3 - SE4 - SE5 - SE6 - SE7 - SE8 - SE9 - SE10

On this Website there are examples of semiknown values which can be analyzed. In case of expressions with semiknown values the FunLog++ interpreter can be used to really calculate the expressions value.

Please try the following denotation functions with Semiknown Values:
- Interval Arithmetics
- Set Calculus
- Interval and Set Calculus
- Contextfree Grammers
- Probabilities
- Normal Distribution

Please try the algebraic functions with Semiknown Values:
- Bayes Theorem (qualitative symptoms)
- Bayes Theorem (quantitative symptoms)
- Bayes Theorem (intervals of symptoms)
- Statistical Testing (t-Test)


Basic functions with semiknown values
concept - examples - basic functions - derived functions
SE1 - SE2 - SE3 - SE4 - SE5 - SE6 - SE7 - SE8 - SE9 - SE10

Basic denotation functions with FunLog++ Semiknown Values are the following denotation operators, which are described by the following specification:
  A -- B  ::=  ... A < X, X < B, X.
  < A     ::=  ... X < A, X.
  > A     ::=  ... A < X, X.
  A \/ B  ::=  ... ( X = A ; X = B ), X.

  A @ B   ::=  ... ( B = prob_density(X,A) ), X.

  moments(A,B,C,D)  ::=
               ( A = [Mean,Variance,Skewness,Kurtosis],
                 B = samplesize(X),
                 C = population(X),
                 D = interaction(X),
                 Z = prob_density(X,Y) ), X.

Basic algebraic functions are used to unify, order, summarize, or relate two FunLog++ Semiknown Values. Therefore we use the elementary operators =/2 (unification), </2 (ordring), -/2 (subtraction), and //2 (division) as well as the transcendental functions exp/1 and ln/1. These are given in a pseudo formal function definition:
  A = B   ::=  ... A is unifyable with B.
  A < B   ::=  ... A is less than B.
  A - B   ::=  ... A minus B.
  A / B   ::=  ... A divided by B.
  exp(A)  ::=  ... exponential of A.
  ln(A)   ::=  ... logarithm of A.

Basic evaluation functions are used to exploit Semiknown Values. The evaluation function is given in words as:
  prob_density(A,B) ::=
    ... calculates the probability density
    of any semiknown value A at position B.


Derived functions with semiknown values
concept - examples - basic functions - derived functions
SE1 - SE2 - SE3 - SE4 - SE5 - SE6 - SE7 - SE8 - SE9 - SE10

Derived denotation functions are used to generate a FunLog++ Semiknown Value. For denotations we use the elementary denotation operators --/2, </1, >/1, \//2, @/2, and moments/4. Furthermore there are some derived denotation functions which are completely defined in terms of the elementary functions just to enhance programming with Semiknown Values. These are:
  <= A               ::=  <A \/ A.
  >= A               ::=  A \/ >A.
  A =-- B            ::=  A \/ A--B.
  A --= B            ::=  A--B \/ B.
  A =-= B            ::=  A \/ A--B \/ B.
  moments([M,V,S,K]) ::=  moments([M,V,S,K],_,_,_).
  moments([M,V,S])   ::=  moments([M,V,S,3]).
  moments([M,V])     ::=  moments([M,V,0,3]).
  moments            ::=  moments([0,1,0,3]).


Derived algebraic functions are used to unify, order, summarize, or relate two FunLog++ Semiknown Values. Again there are some derived algebraic functions which are completely defined in terms of the elementary functions to enhance programming with Semiknown Values. These are:
  A \= B             ::=  A=B, failure; success.
  A > B              ::=  B<A.
  A <= B             ::=  A=B \/ A<B.
  A >= B             ::=  A=B \/ A>B.
  A + B              ::=  A - (0-B).   /* A-(null(B)-B) */
  A * B              ::=  A / (1/B).
  sqrt(A)            ::=  exp(ln(A)/2).

Derived evaluation functions are used to exploit Semiknown Values. Function bayes(A,B,C,D) calculates the aposteriory probability of some disease on the basis of its prevalence A, the expected (semiknown) symptom value B in the subpopulation with the disease, the expected (semiknown) symptom value C in the subpopulation without the disease and the observed patient symptom value D. It is remarkable to mention that bayes/4 and likelihood_ratio/3 are defined for all kinds of semiknown values for symptom values. The derived evaluation functions are:
  bayes(A,B,C,D)  ::=
    F = A*likelihood_ratio(B,C,D), (F/(F+1-A)).

  likelihood_ratio(A,B,C)  ::=
    prob_density(A,C) / prob_density(B,C).



 
 
Examples - SE1 - SE2 - SE3 - SE4 - SE5 - SE6 - SE7 - SE8 - SE9 - SE10
FunLog++ - introduction - glossary - language - library - special - semiknown - dynamic
Last modification: B. Pohl 22.August 2000 / 05.November 2000