More elaborate search dialog
Introduction
The user wants to do more specific searches in order to reduce the result set, see #274 (closed).
3 Use Cases
- Search everywhere (like now).
- Search for topics of specific type(s), e.g. the City "Berlin", but not topics of other types where Berlin is mentioned.
- Search for topics of specific type(s), but include all its child topics in the search, e.g. "all Persons who live in Berlin". Technically that is search everywhere but include only those topics in the result set which 1. match the types specified in the list, and 2. are (direct or indirect) parents of the found topics (child-to-parent traversal).
GUI Concept
The search dialog shows 2 checkboxes, and a user editable list of topic types:
By the means of the checkboxes all 3 use cases are supported. If the 1st checkbox is not checked both are disabled (= not applicable), the 2nd checkbox, and the topic type list.
For the 3rd use case (both checkboxes are checked) parent-child relationships would be detected by the means of Composition assocs and Parent/Child role types. For searching e.g. "all Persons who live or work in Berlin" one would add "Person" to the list of topic types, and enter "Berlin" as the search term.
Of cause further use cases are thinkable, however the mentioned 3 fit naturally what could be done on the current basis with moderate effort.