!!!Package Structure

d3web defines the general package structure as follows:

{{de.d3web/knowwe.<core/pluginname>.<component>.<module>?.<subpackage>*.<Classname>}}

The core consists of non-optional classes, whereas plugins includes optional classes. A plugin usually spans over multiple components. 

For example, the package structure of the XCL problem-solver:
* de.d3web.xcl: for the basic representation 
* de.d3web.xcl.inference: problem-solver functionality
* de.d3web.xcl.io: problem-solver specific persistence 



!! de.d3web.core

! Knowledge Representation: de.d3web.core.knowledge

All classes of the knowledge representation are included in this package. 
For instance, the definition of solutions and questions.

* de.d3web.core.knowledge: \\
  IDObject, KnowledgeBase, Value, InfoStore

* de.d3web.core.knowledge.__terminology__: \\
 Question (with sub-classes), QContainer, Choice, Solution
  
* de.d3web.core.knowledge.__terminology.info__: \\
  Property, BasicProperties, MMInfo

* de.d3web.core.knowledge.__manage__: \\
  KnowledgeBaseUtils, RuleFactory

! Knowledge Base Persistence: de.d3web.core.io

* de.d3web.core.io: \\
  XML/Jar persistence to read/write knowledge bases.
  Basic definitions of KnowledgeReaders, KnowledgeWriters, PersistenceManager
  
* de.d3web.core.io.__fragments__: \\
  FragmentHandler and for all plugins the corresponding fragment handlers
  

! Inference: de.d3web.core.inference

* de.d3web.core.inference: \\  
  PSMethod, PropagationManager, MethodKind, KnowledgeSlice, Action, Rule, Interface Condition

* de.d3web.core.inference.__condition__: \\  
  all AbstractCondition's implementing the interface Condition

! Session: de.d3web.core.session

All classes that manage the interactive problem-solving sessions by running cases.
Administration of flyweight terminology objects and case management.

* de.d3web.core.session: \\
  Session, DefaultSession, Value (with sub-classes), Protocol, SessionManager, InterviewManager 
    
* de.d3web.core.session.__blackboard__: \\  
   Blackboard, Fact, FactStorage, FactAggregation



! Persistent Session Representation: de.d3web.core.records

All classes for the case representation.

* de.d3web.core.records: \\
  SessionConversionFactory, SessionRepository, SessionRecord 

! Session Persistence: de.d3web.core.records.io

* de.d3web.core.records.io: \\
  XML persistence for reading/writing records
%%tags
Documentation API
%