edgeryders / discourse-annotator

A text annotation and analysis application for Discourse. Made with Annotator.js and Ruby on Rails.
https://edgeryders.eu/t/6811
Other
4 stars 0 forks source link

Allow to configure which codes are included in the auto-suggest list #106

Closed tanius closed 4 years ago

tanius commented 4 years ago

Currently, the auto-suggest list shows only the codes authored by the user – nothing else. During the use of Open Ethnographer, the request came up that some users would like to see codes auto-suggested to them of another user (in this case, who also codes in that language).

We need a generic / systematic solution to this to make it a useful feature. So far, the proposal is as follows:

We would make it configurable (under User Settings) which codes to include in the auto-completion suggestions. The options would look like this:

Include suggestions from:

(x) all topics ( ) topics with one of these Discourse tags: [___]

(x) all users ( ) the following users: [____]

(x) all languages ( ) my coding language ( ) my coding language and English

tanius commented 4 years ago

Blocked, because this is still under discussion.

tanius commented 4 years ago

The decision is now to use the following mechanism to select which codes to include into the auto-complete list:

Ideally, when typing in codes in English, the box will display code suggestions from across the POPREBEL projects (so, by any other POPREBEL ethnographer, instead of only individual’s code or previous system where all codes from all projects were suggested). Depending on how the dual-code function works, suggestions in the native language should ideally include all codes that have been assigned in the project in that language. (source)

So for the first version (which does not need to be configurable), the auto-suggest list of codes should include:

If a code has both a name in English and in the user's coding language, both names should be included into the auto-suggest list. Different from the current situation, the auto-suggest list will not only show the user's own codes.

After that is implemented, we'll discuss here how to make this configurable.

tanius commented 4 years ago

Some more details that have not been clear yet:

Code languages. The autocomplete should list codes in the user's preferred language and in English. First include the codes with names in the user's preferred language. Then from the other codes also include those with English names. Show codes in the autocomplete list in the user's preferred coding language, and otherwise in English. If a code has both of these names, show both (though that is nice to have, not essential).

*Role of `ethno-tags.** These are technically just normal Discourse tags (not Open Ethnographer codes!). By convention, we useethno-*` Discourse tags to group together topics that belong to the same coding project, such as "POPREBEL". These topics should share the same code set in Open Ethnographer, which is the reason for this feature of adapting the autocomplete list.

Making tags configurable. It should be possible to configure the Discourse tag prefix for selecting topics that share the same set of Open Ethnographer tags. In the beginning it would be set to ethno-, but better to keep this open for other uses rather than hardcoding it. It should be a setting for the whole application, not per user.

aerugo commented 4 years ago

Will this solution also mean that the auto-suggest list of tags in the merge code view includes codes of others?

Babel Between Us has turned out to be the most collaborative ethnography project we've had so far. We are already at 1300 annotations and the project has only just begun. There are five ethnographers working on the same corpus in the same language, and there is a lot of demand for being able to merge codes defined by different users.

aerugo commented 4 years ago

Thanks a lot for addressing this @damingo, it's looking a lot better now. We seem to have a problem now with how parent and children codes get assigned ownership though.

See the two codes "walking".

Bojan had already created a nested code body → movement → walking. I applied it when annotating, selecting it from the drop-down list. This seems to have created a new code "walking", along with new parent codes "movement" and "body", with me as the creator.

aerugo commented 4 years ago

In fact, this seems to happen regardless of any nesting, as with the code Mother that I just tried applying.

damingo commented 4 years ago

Oh, a misunderstanding... Will fix it now.

damingo commented 4 years ago

New version is now deployed.

tanius commented 4 years ago

The chosen solution is somewhat configurable, allowing to choose the Discourse tag from which to include the codes to propose. (That was needed because when coding for one project ethno-a and encountering a topic tagged ethno-a and ethno-b one only wants to see the codes proposed that appear in other ethno-a topics, not including those from other ethno-b topics.)

With that, we can consider this issue as resolved, as the other proposed bits of configuration either don't make sense in coding practice ("include codes via multiple Discourse tags", "include codes of the following users") or are already provided with a good default ("include all codes in my coding language and English").

tanius commented 4 years ago

Show codes in the autocomplete list in the user's preferred coding language, and otherwise in English. If a code has both of these names, show both (though that is nice to have, not essential).

@damingo, please clarify how this was implemented. Does the list of proposed code include a code name only in the user's coding language, or additionally in English if both are available?

damingo commented 4 years ago

Code names in the autocomplete list are in the user's preferred coding language. If a code name is not available in the user's coding language, in English. And if not available in English. the code's first name is used.