edu.cs.ai.kreator.models
Class Knowledgebase

java.lang.Object
  extended by edu.cs.ai.kreator.models.Knowledgebase
All Implemented Interfaces:
Latexable

public abstract class Knowledgebase
extends java.lang.Object
implements Latexable

This class is the common ancestor for all knowledgebase types and provides several shared features.

Author:
Matthias Thimm

Field Summary
protected  LanguageFactory language
          The language of this knowledge base.
 
Constructor Summary
Knowledgebase()
          Inits an empty knowledge base with empty language.
Knowledgebase(LanguageFactory language)
          Inits an empty knowledge base with the given language.
 
Method Summary
abstract  java.util.List<AtomExpression> generateData(int numDataSets)
          Generates "numDataSets" number of data set samples from this knowledge base.
abstract  java.util.Set<GeneralizedPredicate> getAppearingPredicates()
           
 java.util.List<Constant> getConstants()
           
abstract  java.lang.String getDescription()
          Returns a description of this knowledge base type.
 LanguageFactory getLanguage()
          Getter for language.
 java.util.List<GeneralizedPredicate> getPredicates()
           
 java.util.List<Sort> getSorts()
           
abstract  java.lang.Double query(Query query)
          This method asks the knowledge base to deliver the probability of the given query.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface edu.cs.ai.kreator.logic.Latexable
toLatex
 

Field Detail

language

protected LanguageFactory language
The language of this knowledge base.

Constructor Detail

Knowledgebase

public Knowledgebase()
Inits an empty knowledge base with empty language.


Knowledgebase

public Knowledgebase(LanguageFactory language)
Inits an empty knowledge base with the given language.

Parameters:
language - a LanguageFactory
Method Detail

query

public abstract java.lang.Double query(Query query)
                                throws QueryException,
                                       InvalidLanguageExpressionException,
                                       AbortedQueryException
This method asks the knowledge base to deliver the probability of the given query.

Parameters:
query - a query.
output - a query output receiver.
Returns:
a double representing the probability of the query.
Throws:
QueryException - a QueryException if something went wrong.
InvalidLanguageExpressionException - if the query's language does not conform to the knowledgebase's language.
AbortedQueryException - if the user aborts the computation of the answer.

generateData

public abstract java.util.List<AtomExpression> generateData(int numDataSets)
Generates "numDataSets" number of data set samples from this knowledge base. For example, if your knowledge base has rules "q(X)[0.2]" and "q(X) => p(X) [0.4]" then data sets look like
- "q(a1)=true,p(a1)=false"
- "q(a2)=true,p(a2)=true"
- "q(a3)=true,p(a3)=false"
- ...
corresponding to the probabilities (a1,... are new introduced constants).

Parameters:
numDataSets - the number of data sets.
Returns:
a set of atom expressions.

getDescription

public abstract java.lang.String getDescription()
Returns a description of this knowledge base type.

Returns:
a description of this knowledge base type.

getLanguage

public LanguageFactory getLanguage()
Getter for language.

Returns:
The language of this knowledge base

getPredicates

public java.util.List<GeneralizedPredicate> getPredicates()
Returns:
all predicates of this KB's language.

getAppearingPredicates

public abstract java.util.Set<GeneralizedPredicate> getAppearingPredicates()
Returns:
all predicates that appear in this knowledge base.

getConstants

public java.util.List<Constant> getConstants()
Returns:
all Constants of this KB's language.

getSorts

public java.util.List<Sort> getSorts()
Returns:
all Variables of this KB's language.