This page (revision-16) was last changed on 06-Jun-2017 09:17 by Albrecht Striffler

This page was created on 17-Dec-2012 14:42 by Markus Friedrich

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
16 06-Jun-2017 09:17 6 KB Albrecht Striffler to previous
15 11-May-2016 14:14 6 KB Albrecht Striffler to previous | to last
14 03-May-2016 12:06 6 KB Albrecht Striffler to previous | to last
13 17-Mar-2015 08:02 6 KB Markus Friedrich to previous | to last
12 12-Mar-2015 01:45 6 KB Albrecht Striffler to previous | to last
11 12-Mar-2015 01:42 6 KB Albrecht Striffler to previous | to last
10 26-Feb-2015 11:50 6 KB Albrecht Striffler to previous | to last
9 25-Feb-2013 14:43 6 KB Albrecht Striffler to previous | to last
8 25-Feb-2013 13:00 6 KB Albrecht Striffler to previous | to last
7 25-Feb-2013 12:50 6 KB Albrecht Striffler to previous | to last
6 25-Feb-2013 12:50 6 KB Albrecht Striffler to previous | to last
5 18-Feb-2013 12:53 6 KB Albrecht Striffler to previous | to last
4 17-Dec-2012 17:45 6 KB constin to previous | to last
3 17-Dec-2012 14:56 6 KB Markus Friedrich to previous | to last
2 17-Dec-2012 14:49 5 KB Markus Friedrich to previous | to last
1 17-Dec-2012 14:42 5 KB Markus Friedrich to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 added 2 lines
[{TableOfContents }]
At line 8 added one line
At line 10 added one line
At line 20 added one line
At line 18 changed 2 lines
The [Interview|https://isci.informatik.uni-wuerzburg.de/javadoc/d3web/de/d3web/core/session/interviewmanager/Interview.html], instantiated with the Session, determines the next question to be presented to the user. More precisely, a {{FormStrategy}} computes the next {{From}} that is presented in the dialog.
A Form consists of a title and an {{interviewObject}} (a Question of a QContainer):
The [Interview|https://isci.informatik.uni-wuerzburg.de/javadoc/d3web/de/d3web/core/session/interviewmanager/Interview.html], which can be accessed from the session by using the interview problem solver (PSMethod), determines the next question to be presented to the user. More precisely, a {{FormStrategy}} computes the next {{From}} that is presented in the dialog.
A Form consists of a title and a list of active questions:
At line 23 changed 2 lines
Form form = session.getInterview().nextForm();
InterviewObject interviewObject = form.getInterviewObject();
Interview interview = session.getSessionObject(session.getPSMethodInstance(PSMethodInterview.class));
Form form = interview.nextForm();
List<Question> activeQuestions = form.getActiveQuestions();
At line 32 changed one line
session.getInterviewManager().setFormStrategy(new NextUnansweredQuestionFormStrategy());
interview.setFormStrategy(new NextUnansweredQuestionFormStrategy());
At line 37 removed one line
At line 44 changed 3 lines
Fact fact = FactFactory.createFact(question, value,
PSMethodUserSelected.getInstance(),
PSMethodUserSelected.getInstance());
Question question = kb.getManager().searchQuestion("QuestionName");
ChoiceValue value = new ChoiceValue("ChoiceName");
Fact fact = FactFactory.createFact(session, question, value,
PSMethodUserSelected.getInstance(),
PSMethodUserSelected.getInstance());
At line 50 changed one line
At line 62 added one line
At line 68 added one line
At line 61 changed 2 lines
for (Solution solution : knowledgeBase.getSolutions()) {
Rating state = session.getBlackboard().getState(solution);
for (Solution solution : knowledgeBase.getManager().getSolutions()) {
Rating state = session.getBlackboard().getRating(solution);
At line 79 added one line
Sometimes it is easier (and a bit faster) to just get all solutions in a particular state, e.g. all established solutions:
At line 81 added 10 lines
%%prettify
{{{
out.println("All established solutions:");
for (Solution solution : session.getBlackboard().getSolutions(Rating.State.ESTABLISHED)) {
out.println(solution);
}
}}}
/%
At line 83 removed one line
At line 110 added one line
At line 94 changed one line
At line 96 changed 2 lines
// Create a case (problem-solving session and set all specified
// question/answers
// Create a case (problem-solving session and set
// all specified question/answers
At line 102 changed 2 lines
Fact fact1 = FactFactory.createFact(pregnant, yes, PSMethodUserSelected
.getInstance(), PSMethodUserSelected.getInstance());
Fact fact1 = FactFactory.createUserEnteredFact(
pregnant, yes);
At line 107 changed 3 lines
Fact fact2 = FactFactory.createFact(weight, new NumValue(80),
PSMethodUserSelected.getInstance(),
PSMethodUserSelected.getInstance());
Fact fact2 = FactFactory.createUserEnteredFact(
weight, new NumValue(80));
At line 112 changed one line
At line 115 changed 3 lines
for (Solution solution : knowledgeBase.getSolutions()) {
Rating state = session.getBlackboard().getState(solution);
if (!state.hasState(Rating.State.UNCLEAR))
for (Solution solution : knowledgeBase.getManager().getSolutions()) {
Rating state = session.getBlackboard().getRating(solution);
if (!state.hasState(Rating.State.UNCLEAR)) {
At line 139 added one line
}
At line 132 changed 2 lines
// - pregnant [oc]
// - weight [num]
// -- pregnant [oc]
// -- weight [num]
At line 137 changed 2 lines
KnowledgeBaseManagement kbm = KnowledgeBaseManagement.createInstance();
QASet root = kbm.getKnowledgeBase().getRootQASet();
KnowledgeBase kb = KnowledgeBaseUtils.createKnowledgeBase();
QASet root = kb.getRootQASet();
At line 140 changed 5 lines
demoQuestions = kbm.createQContainer("demoQuestions", root);
pregnant = kbm.createQuestionOC("pregnant", demoQuestions, new String[] { "yes",
"no" });
yes = new ChoiceValue(kbm.findChoice(pregnant, "yes"));
weight = kbm.createQuestionNum("weight", "weight", demoQuestions);
demoQuestions = new QContainer(root, "demoQuestions");
pregnant = new QuestionOC(demoQuestions, "pregnant", "yes", "no");
yes = new ChoiceValue(KnowledgeBaseUtils.findChoice(pregnant, "yes"));
weight = new QuestionNum(demoQuestions, "weight");
At line 146 changed 2 lines
dangerousMood = kbm.createSolution("dangerousMood");
dangerousMood = new Solution(kb.getRootSolution(), "dangerousMood");
At line 149 changed 3 lines
kbm.getKnowledgeBase().setInitQuestions(Arrays.asList(demoQuestions));
// Define the magic rule: preganant=yes AND weight > 70 => dangerousMood (P7)
kb.setInitQuestions(Arrays.asList(demoQuestions));
// Define the magic rule: preganant=yes AND weight > 70 => dangerousMood
// (P7)
At line 154 changed 4 lines
terms.add(new CondNumGreater(weight, Double.valueOf(70)));
RuleFactory.createHeuristicPSRule("r1", dangerousMood, Score.P7, new CondAnd(terms));
return kbm.getKnowledgeBase();
terms.add(new CondNumGreater(weight, (double) 70));
RuleFactory.createHeuristicPSRule(dangerousMood, Score.P7, new CondAnd(terms));
return kb;
At line 162 removed one line