8.2. Création de bases de connaissances

La création d'une nouvelle BC est une opération simple. En effet, il suffit d'obtenir un objet factory et de lui demander la création d'une BC en lui spécifiant le nom de cette nouvelle base.

L'objet jouant le role de factory dans AROM est l'objet AromSystem que l'on obtient depuis l'objet AromSetUp, comme indiqué dans l'exemple qui suit. Pour créer un objet KnowledgeBase il faut appeler une méthode qui prend deux paramètres en entrée, le nom de la base à créer et un tableau d'objets. Ce dernier n'est pas utile pour la création de base de connaissances AROM, c'est pourquoi un tableau vide est passé dans l'exemple ci-dessous.

Exemple 8-1. Création de base de connaissances


/**
 * Cet exemple montre comment creer une nouvelle base de connaissances vide 
 * de tout contenu. Le seul parametre necessaire est le nom de la base que 
 * l'on souhaite creer. 
 *
 * @author Veronique DUPIERRIS
 */
import arom.kr.model.KnowledgeBase;
import arom.AromSetUp;
import arom.kr.factory.AromSystem;
import arom.kr.model.EntityCreationException;

public class CreateKb {
  
  /**
   * Cette methode cree une nouvelle base de connaissances nommee "BaseTest". 
   *
   * @return l'object KnowledgeBase representant la nouvelle base de 
   * connaissances.
   */
  public static KnowledgeBase createNewKB(){
    //nom de la nouvelle base de connaissances.
    String kbName = "BaseTest";
    
    // recupere une instance de AromSystem qui est en charge de la 
    // creation des objets KnowledgeBase.
    AromSystem kbFactory = AromSetUp.getAromSystem();
    
    // cree une nouvelle base de connaissancers AROM nommee BaseTest. 
    // aucun autre attribut n'est necessaire lors de la creation de cette base.
    KnowledgeBase newKb = null;

    try{
      newKb = kbFactory.createKB(kbName, new Object[0]);
    } catch(EntityCreationException ece){
      System.out.println("Une erreur est survenue lors de la creation de la base : ");
      System.out.println(ece.getMessage());
      System.exit(1);
    }
    return newKb;
  }
  
  public static void main(String[] args){
    KnowledgeBase newKb = CreateKb.createNewKB();
    System.out.println("Nom de la nouvelle KB : "+newKb.getName());
    AromSetUp.getAromSystem().cleanup();
  }
}// CreateKB