source: TraumaOntologies/src/test/java/tudelft/healthpsychology/traumaontologies/answerstate/AnswerStateTest.java@ 5

Last change on this file since 5 was 5, checked in by Bart Vastenhouw, 5 years ago

Intermediate update

File size: 24.8 KB
Line 
1package tudelft.healthpsychology.traumaontologies.answerstate;
2
3import static org.junit.Assert.assertEquals;
4
5import java.io.File;
6import java.io.FileInputStream;
7import java.io.FileNotFoundException;
8import java.io.IOException;
9
10import org.junit.Before;
11import org.junit.Test;
12import org.semanticweb.owlapi.apibinding.OWLManager;
13import org.semanticweb.owlapi.model.OWLOntology;
14import org.semanticweb.owlapi.model.OWLOntologyCreationException;
15import org.semanticweb.owlapi.model.OWLOntologyManager;
16
17import com.fasterxml.jackson.core.JsonParseException;
18import com.fasterxml.jackson.databind.JsonMappingException;
19import com.fasterxml.jackson.databind.ObjectMapper;
20
21import tudelft.healthpsychology.traumaontologies.owltree.OwlTree;
22import tudelft.healthpsychology.traumaontologies.owltree.OwlTreeReasoner;
23import tudelft.healthpsychology.traumaontologies.questiontypes.TypedQuestion;
24
25public class AnswerStateTest {
26 /**
27 * End to end test, mainly to test serialization of complete states. These
28 * states have been saved from the GUI
29 */
30
31 private final ObjectMapper jackson = new ObjectMapper();
32 private OwlTree tree;
33
34 @Before
35 public void before()
36 throws OWLOntologyCreationException, FileNotFoundException {
37 OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
38 OWLOntology ontology = manager
39 .loadOntologyFromOntologyDocument(new FileInputStream(
40 new File("src/main/resources/Child Sexual Abuse.owl")));
41 OwlTreeReasoner reas = new OwlTreeReasoner(ontology);
42 tree = new OwlTree(reas);
43 }
44
45 @Test
46 public void testState1()
47 throws JsonParseException, JsonMappingException, IOException {
48 String statestring = "{\"ListOfAnswersState\":{\"answerStates\":[{\"PropertiesAnswerState\":{\"nodelabel\":\"Geografische_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de plaatsnaam?\",\"id\":\"Plaatsnaam\"}},\"answer\":\"Delft\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van de regio?\",\"id\":\"Naam_regio\"}},\"answer\":\"zuid holland\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de straatnaam?\",\"id\":\"Naam_straat\"}},\"answer\":\"mekelweg\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van het land?\",\"id\":\"Naam_land\"}},\"answer\":\"nederland\"}]}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Zwembad\",\"depth\":3,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Zwembad\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Probeer nu te beschrijven waar in het gebouw je je bevond.\",\"id\":\"Locatie_in_gebouw\"}},\"answer\":\"nat, warm\"}]}}}},{\"AnswerStateExplanationDecorator\":{\"explanation\":\"We verzamelen de relevante objecten op de locatie. We gaan een voor een door alle relevante objecten, beginnend bij het eerste object.\",\"answerstate\":{\"AnswersDepthFirstState\":{\"nodelabel\":\"Object\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Object\",\"depth\":1,\"isFocused\":false,\"isFinal\":false,\"nameOfObject\":\"het\"}},\"propertiesState\":null}}],\"isFinal\":false,\"more\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante objecten?\",\"id\":\"internal\"}}}}}},{\"AnswerStateExplanationDecorator\":{\"explanation\":\"We verzamelen de relevante personen op de locatie. We verzamelen eerst de namen.\",\"answerstate\":{\"AnswersBreathFirstState\":{\"nodelabel\":\"Persoon\",\"answerstates\":[],\"mainProperty\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Geef de naam van een persoon op de locatie.\",\"id\":\"Naam\"}},\"askForMore\":false,\"morequestion\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante personen?\",\"id\":\"internal\"}}}}}}]}}";
49 AnswerState state = jackson.readValue(statestring, AnswerState.class);
50
51 TypedQuestion opts = state.getOptions(tree);
52 assertEquals("Beschrijf nu hoe je terug denkt aan deze locatie",
53 opts.getQuestion());
54 }
55
56 @Test
57 public void testState2()
58 throws JsonParseException, JsonMappingException, IOException {
59 String statestring = "{\"ListOfAnswersState\":{\"answerStates\":[{\"PropertiesAnswerState\":{\"nodelabel\":\"Geografische_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van de regio?\",\"id\":\"Naam_regio\"}},\"answer\":\"zuid holland\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de plaatsnaam?\",\"id\":\"Plaatsnaam\"}},\"answer\":\"delft\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de straatnaam?\",\"id\":\"Naam_straat\"}},\"answer\":\"mekelweg\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van het land?\",\"id\":\"Naam_land\"}},\"answer\":\"nederland\"}]}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Voertuig_locatie\",\"depth\":3,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Voertuig_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe je terug denkt aan deze locatie\",\"id\":\"Ervaring_Locatie\"}},\"answer\":\" Wie is Kampeermeneer?Als ik even wegdroom naar mijn perfecte camping dan zie ik: Een niet al te grote camping in de natuur met geen rechttoe rechtaan plaatsen maar een beetje een georganiseerde chaos. Een veldje met gezellige mensen en met in het midden een speeltuintje waar mijn twee kinderen zich lekker kunnen uitleven. Als ik een keer geen zin heb om op twee pitjes te koken kan ik bij het campingrestaurant terecht voor een lekker hapje eten en overdag zwemmen in een meer of een beekje in de buurt. Tot nu toe komt camping De Roos in het Overijsselse Ommen misschien wel het dichtste bij dit droombeeld.\"}]}}}},{\"AnswersDepthFirstState\":{\"nodelabel\":\"Object\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Rijdend_voertuig\",\"depth\":1,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Rijdend_voertuig\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe dit voorwerp eruit zag, en waarom je je deze is bijgebleven.\",\"id\":\"Beschrijving_voorwerp\"}},\"answer\":\"Meestal kampeer ik niet alleen. Vroeger ging ik met mijn ouders en twee zussen mee. Toen mijn vriendin en ik elkaar net kenden was onze eerste relatietest een paar weken backpacken door Andalusië en Marokko. In de rugzak zat uiteraard een klein koepeltje en een primus. Inmiddels is ons gezin met twee kinderen uitgebreid en zijn we evenveel tenten verder. Echte tentkampeerders? Eigenlijk wel, hoewel we sinds kort het gemak en de ruimte van onze vouwwagen ook erg fijn is. De vrijheid van een kleine camperbus kan mij af en toe ook een beetje jaloers maken. Het andere deel van ons gezin lijkt af en toe juist te vallen voor de charme en het comfort van een sfeervolle glampingspot. We zullen zien welke kant we opgroeien.\"}]}}}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Meubel\",\"depth\":1,\"isFocused\":true,\"isFinal\":false,\"nameOfObject\":\"het\"}},\"propertiesState\":null}}],\"isFinal\":false,\"more\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante objecten?\",\"id\":\"internal\"}}}},{\"AnswerStateExplanationDecorator\":{\"answerstate\":{\"AnswersBreathFirstState\":{\"nodelabel\":\"Persoon\",\"answerstates\":[],\"mainProperty\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Geef de naam van een persoon op de locatie.\",\"id\":\"Naam\"}},\"askForMore\":false,\"morequestion\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante personen?\",\"id\":\"internal\"}}}},\"explanation\":\"We verzamelen de relevante personen op de locatie. We verzamelen eerst de namen.\"}}]}}";
60 AnswerState state = jackson.readValue(statestring, AnswerState.class);
61
62 TypedQuestion opts = state.getOptions(tree);
63 assertEquals(
64 "Kan U nog specifieker aangeven: wat voor soort Meubel was het? {Bureau, Tafel, Kast, Stoel, Bed, anders}",
65 opts.getQuestion());
66 }
67
68 @Test
69 public void testState3()
70 throws JsonParseException, JsonMappingException, IOException {
71 String statestring = "{\"ListOfAnswersState\":{\"answerStates\":[{\"PropertiesAnswerState\":{\"nodelabel\":\"Geografische_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van de regio?\",\"id\":\"Naam_regio\"}},\"answer\":\"zuid holland\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de plaatsnaam?\",\"id\":\"Plaatsnaam\"}},\"answer\":\"delft\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de straatnaam?\",\"id\":\"Naam_straat\"}},\"answer\":\"mekelweg\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van het land?\",\"id\":\"Naam_land\"}},\"answer\":\"nederland\"}]}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Voertuig_locatie\",\"depth\":3,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Voertuig_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe je terug denkt aan deze locatie\",\"id\":\"Ervaring_Locatie\"}},\"answer\":\" Wie is Kampeermeneer?Als ik even wegdroom naar mijn perfecte camping dan zie ik: Een niet al te grote camping in de natuur met geen rechttoe rechtaan plaatsen maar een beetje een georganiseerde chaos. Een veldje met gezellige mensen en met in het midden een speeltuintje waar mijn twee kinderen zich lekker kunnen uitleven. Als ik een keer geen zin heb om op twee pitjes te koken kan ik bij het campingrestaurant terecht voor een lekker hapje eten en overdag zwemmen in een meer of een beekje in de buurt. Tot nu toe komt camping De Roos in het Overijsselse Ommen misschien wel het dichtste bij dit droombeeld.\"}]}}}},{\"AnswersDepthFirstState\":{\"nodelabel\":\"Object\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Rijdend_voertuig\",\"depth\":1,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Rijdend_voertuig\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe dit voorwerp eruit zag, en waarom je je deze is bijgebleven.\",\"id\":\"Beschrijving_voorwerp\"}},\"answer\":\"Meestal kampeer ik niet alleen. Vroeger ging ik met mijn ouders en twee zussen mee. Toen mijn vriendin en ik elkaar net kenden was onze eerste relatietest een paar weken backpacken door Andalusië en Marokko. In de rugzak zat uiteraard een klein koepeltje en een primus. Inmiddels is ons gezin met twee kinderen uitgebreid en zijn we evenveel tenten verder. Echte tentkampeerders? Eigenlijk wel, hoewel we sinds kort het gemak en de ruimte van onze vouwwagen ook erg fijn is. De vrijheid van een kleine camperbus kan mij af en toe ook een beetje jaloers maken. Het andere deel van ons gezin lijkt af en toe juist te vallen voor de charme en het comfort van een sfeervolle glampingspot. We zullen zien welke kant we opgroeien.\"}]}}}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Tweepersoonsbed\",\"depth\":1,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Tweepersoonsbed\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Weet je nog wat voor dekbed er op het bed lag, kan je deze beschrijven?\",\"id\":\"Beschrijving_bed\"}},\"answer\":\"Lichtbruin geloof ik\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Kan je beschrijven waar in de ruimte dit meubel stond?\",\"id\":\"Locatie_meubel\"}},\"answer\":\"Aan de zijkant van de kamer tegenover de ingang\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe dit voorwerp eruit zag, en waarom je je deze is bijgebleven.\",\"id\":\"Beschrijving_voorwerp\"}},\"answer\":\"Lichtbruin hout, hout aan kopse kant, wit matras\"}]}}}}],\"isFinal\":true,\"more\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante objecten?\",\"id\":\"internal\"}}}},{\"AnswerStateExplanationDecorator\":{\"answerstate\":{\"AnswersBreathFirstState\":{\"nodelabel\":\"Persoon\",\"answerstates\":[],\"mainProperty\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Geef de naam van een persoon op de locatie.\",\"id\":\"Naam\"}},\"askForMore\":false,\"morequestion\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante personen?\",\"id\":\"internal\"}}}},\"explanation\":\"We verzamelen de relevante personen op de locatie. We verzamelen eerst de namen.\"}}]}}";
72 AnswerState state = jackson.readValue(statestring, AnswerState.class);
73
74 TypedQuestion opts = state.getOptions(tree);
75 assertEquals(
76 "We verzamelen de relevante personen op de locatie. We verzamelen eerst de namen.\n"
77 + "Geef de naam van een persoon op de locatie.",
78 opts.getQuestion());
79 }
80
81 @Test
82 public void testState4()
83 throws JsonParseException, JsonMappingException, IOException {
84 String statestring = "{\"ListOfAnswersState\":{\"answerStates\":[{\"PropertiesAnswerState\":{\"nodelabel\":\"Geografische_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van de regio?\",\"id\":\"Naam_regio\"}},\"answer\":\"South Holland\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de plaatsnaam?\",\"id\":\"Plaatsnaam\"}},\"answer\":\"Delft\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de straatnaam?\",\"id\":\"Naam_straat\"}},\"answer\":\"Mekelweg\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van het land?\",\"id\":\"Naam_land\"}},\"answer\":\"Nederland\"}]}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Thuis\",\"depth\":3,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Thuis\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Probeer nu te beschrijven waar in het gebouw je je bevond.\",\"id\":\"Locatie_in_gebouw\"}},\"answer\":\"In mijn huis, op de eerste etage in mijn slaapkamer\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe je terug denkt aan deze locatie\",\"id\":\"Ervaring_Locatie\"}},\"answer\":\"Redelijk grote kamer.\"}]}}}},{\"AnswersDepthFirstState\":{\"nodelabel\":\"Object\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Desktop\",\"depth\":1,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Desktop\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Waar in de ruimte bevond zich deze computer?\",\"id\":\"Locatie_in_ruimte_computer\"}},\"answer\":\"op de tafel bij de deur\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Kan je beschrijven of dit apparaat aan stond. Was iemand het aan het gebruiken? En merkte je daar nog wat van?\",\"id\":\"Apparaat_status\"}},\"answer\":\"ja ik gebruikte het\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe dit voorwerp eruit zag, en waarom je je deze is bijgebleven.\",\"id\":\"Beschrijving_voorwerp\"}},\"answer\":\"De computer was een soort schoenendoos met toetsenbord\"}]}}}}],\"isFinal\":false,\"more\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante objecten?\",\"id\":\"internal\"}}}},{\"AnswerStateExplanationDecorator\":{\"answerstate\":{\"AnswersBreathFirstState\":{\"nodelabel\":\"Persoon\",\"answerstates\":[],\"mainProperty\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Geef de naam van een persoon op de locatie.\",\"id\":\"Naam\"}},\"askForMore\":false,\"morequestion\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante personen?\",\"id\":\"internal\"}}}},\"explanation\":\"We verzamelen de relevante personen op de locatie. We verzamelen eerst de namen.\"}}]}}";
85 AnswerState state = jackson.readValue(statestring, AnswerState.class);
86
87 TypedQuestion opts = state.getOptions(tree);
88 assertEquals("Zijn er nog meer relevante objecten?",
89 opts.getQuestion());
90 }
91
92 @Test
93 public void testState5()
94 throws JsonParseException, JsonMappingException, IOException {
95 String statestring = "{\"ListOfAnswersState\":{\"answerStates\":[{\"PropertiesAnswerState\":{\"nodelabel\":\"Geografische_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van de regio?\",\"id\":\"Naam_regio\"}},\"answer\":\"South Holland\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de plaatsnaam?\",\"id\":\"Plaatsnaam\"}},\"answer\":\"Delft\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de straatnaam?\",\"id\":\"Naam_straat\"}},\"answer\":\"Mekelweg\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van het land?\",\"id\":\"Naam_land\"}},\"answer\":\"Nederland\"}]}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Thuis\",\"depth\":3,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Thuis\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Probeer nu te beschrijven waar in het gebouw je je bevond.\",\"id\":\"Locatie_in_gebouw\"}},\"answer\":\"In mijn huis, op de eerste etage in mijn slaapkamer\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe je terug denkt aan deze locatie\",\"id\":\"Ervaring_Locatie\"}},\"answer\":\"Redelijk grote kamer.\"}]}}}},{\"AnswersDepthFirstState\":{\"nodelabel\":\"Object\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Desktop\",\"depth\":1,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Desktop\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Waar in de ruimte bevond zich deze computer?\",\"id\":\"Locatie_in_ruimte_computer\"}},\"answer\":\"op de tafel bij de deur\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Kan je beschrijven of dit apparaat aan stond. Was iemand het aan het gebruiken? En merkte je daar nog wat van?\",\"id\":\"Apparaat_status\"}},\"answer\":\"ja ik gebruikte het\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe dit voorwerp eruit zag, en waarom je je deze is bijgebleven.\",\"id\":\"Beschrijving_voorwerp\"}},\"answer\":\"De computer was een soort schoenendoos met toetsenbord\"}]}}}}],\"isFinal\":true,\"more\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante objecten?\",\"id\":\"internal\"}}}},{\"AnswersBreathFirstState\":{\"nodelabel\":\"Persoon\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Persoon\",\"depth\":4,\"isFocused\":false,\"isFinal\":false,\"nameOfObject\":\"Jan\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Persoon\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Geef de naam van een persoon op de locatie.\",\"id\":\"Naam\"}},\"answer\":\"Jan\"}]}}}}],\"mainProperty\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Geef de naam van een persoon op de locatie.\",\"id\":\"Naam\"}},\"askForMore\":true,\"morequestion\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante personen?\",\"id\":\"internal\"}}}}]}}";
96 AnswerState state = jackson.readValue(statestring, AnswerState.class);
97
98 TypedQuestion opts = state.getOptions(tree);
99 assertEquals("Zijn er nog meer relevante personen?",
100 opts.getQuestion());
101 }
102
103 @Test
104 public void testState6()
105 throws JsonParseException, JsonMappingException, IOException {
106 String statestring = "{\"ListOfAnswersState\":{\"answerStates\":[{\"PropertiesAnswerState\":{\"nodelabel\":\"Geografische_locatie\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van de regio?\",\"id\":\"Naam_regio\"}},\"answer\":\"South Holland\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de plaatsnaam?\",\"id\":\"Plaatsnaam\"}},\"answer\":\"Delft\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de straatnaam?\",\"id\":\"Naam_straat\"}},\"answer\":\"Mekelweg\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Wat is de naam van het land?\",\"id\":\"Naam_land\"}},\"answer\":\"Nederland\"}]}},{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Thuis\",\"depth\":3,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Thuis\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Probeer nu te beschrijven waar in het gebouw je je bevond.\",\"id\":\"Locatie_in_gebouw\"}},\"answer\":\"In mijn huis, op de eerste etage in mijn slaapkamer\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe je terug denkt aan deze locatie\",\"id\":\"Ervaring_Locatie\"}},\"answer\":\"Redelijk grote kamer.\"}]}}}},{\"AnswersDepthFirstState\":{\"nodelabel\":\"Object\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Desktop\",\"depth\":1,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"het\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Desktop\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Waar in de ruimte bevond zich deze computer?\",\"id\":\"Locatie_in_ruimte_computer\"}},\"answer\":\"op de tafel bij de deur\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Kan je beschrijven of dit apparaat aan stond. Was iemand het aan het gebruiken? En merkte je daar nog wat van?\",\"id\":\"Apparaat_status\"}},\"answer\":\"ja ik gebruikte het\"},{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Beschrijf nu hoe dit voorwerp eruit zag, en waarom je je deze is bijgebleven.\",\"id\":\"Beschrijving_voorwerp\"}},\"answer\":\"De computer was een soort schoenendoos met toetsenbord\"}]}}}}],\"isFinal\":true,\"more\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante objecten?\",\"id\":\"internal\"}}}},{\"AnswersBreathFirstState\":{\"nodelabel\":\"Persoon\",\"answerstates\":[{\"OntoPropAnswerState\":{\"ontologyState\":{\"OntologyAnswerState\":{\"nodelabel\":\"Geestelijke\",\"depth\":4,\"isFocused\":true,\"isFinal\":true,\"nameOfObject\":\"Jan\"}},\"propertiesState\":{\"PropertiesAnswerState\":{\"nodelabel\":\"Geestelijke\",\"answers\":[{\"prop\":{\"OwlProperty\":{\"range\":\"http://www.w3.org/2001/XMLSchema#string\",\"comment\":\"Geef de naam van een persoon op de locatie.\",\"id\":\"Naam\"}},\"answer\":\"Jan\"}]}}}}],\"mainProperty\":null,\"askForMore\":false,\"morequestion\":{\"Bool\":{\"question\":\"Zijn er nog meer relevante personen?\",\"id\":\"internal\"}}}}]}}";
107 AnswerState state = jackson.readValue(statestring, AnswerState.class);
108
109 TypedQuestion opts = state.getOptions(tree);
110 assertEquals("Wat is het geslacht van Jan?", opts.getQuestion());
111 }
112
113}
Note: See TracBrowser for help on using the repository browser.