2017-06-02 5 views

Répondre

0

Alors que vous utilisez d3web sur un niveau de l'API et que vous souhaitez mettre beaucoup de valeurs pour les variables dans votre base de connaissances? Comment faire est le plus souvent décrit ici:

https://www.d3web.de/Wiki.jsp?page=How-To%20Create%20a%20Session

Vérifiez la partie sur la saisie des faits dans la session. Fondamentalement, pour chaque valeur que vous souhaitez ajouter à une session d3web, vous créez un fait en utilisant FactFactory et ensuite l'ajouter au tableau de la session via #addValueFact (fait) L'exemple sur la page docu n'est même pas le plus pratique, vous pourrait aussi, par exemple faire la

suivante
Fact fact = FactFactory.createUserEnteredFact(kb, "temperature", 25); 
session.getBlackboard().addValueFact(fact); 

Si vous voulez ajouter beaucoup de valeurs au même instant, il est également conseillé de le faire dans une fenêtre de propagation. Si vous ne commettez pas dans la même fenêtre de propagation, l'inférence sera faite après chaque nouveau fait. L'inférence peut prendre un peu de temps, donc si vous ajoutez des milliers de valeurs, vous ne voulez pas si après chaque fait.

fenêtre de propagation Ouvrir la manière suivante:

session.getPropagationManager().openPropagation(); 
try { 
    for (Fact fact : facts) { 
     session.getBlackboard().addValueFact(fact); 
    } 
} 
finally { 
    session.getPropagationManager().commitPropagation(); 
} 

Hope this helps!

Cordialement Albrecht

+0

Merci beaucoup Albrecht! – yangz

+0

Merci beaucoup pour la réponse détaillée! – yangz