olivierfriard / BORIS

Behavioral Observation Research Interactive Software
http://www.boris.unito.it
GNU General Public License v3.0
173 stars 33 forks source link

BORIS v8.9 state exclusion bug #557

Open aaulsebrook opened 1 year ago

aaulsebrook commented 1 year ago

Hi Olivier,

I'm trying out the latest experimental version of BORIS at the moment (v8.9.9). I have some states that are mutually exclusive, but this function is not working consistently.

Usually, if I add a state that excludes the previous state, a "STOP" is also added for the previous state. For example, if I add "preening", then it adds a START for preening and a STOP for the previous behaviour, flying. But in this version, it doesn't always work this way. From what I can tell, if there any of the previous behaviour (e.g. flying) reoccurs after the current time, then it only adds a START for preening, and it changes the next flying START to a STOP. This creates problems if I try to go back and label earlier points in the video.

I hope that makes sense! I'm otherwise finding the experimental version much better for my project (faster to load video, can go frame-by-frame).

If you need any more info to replicate and solve the issue, please let me know.

aaulsebrook commented 1 year ago

Sorry, a follow-up from my previous comment - I think the issue is actually that sometimes the STOP time is being put at the end of the event list, rather than in sequential order. Sorry for the mistake. I assume this is not meant to happen, though, and it does make it difficult to keep track of possible errors in scoring.

olivierfriard commented 1 year ago

Hi, can you give me a minimal procedure in order to reproduce this issue?

DigDigDig commented 1 year ago

@olivierfriard I'm getting the same behavior when using v.8.11.1.

1 - Add events to an observation with exclusionary categories. As normal, the prior event will automatically end when a new mutually exclusive event is added. 2 - Edit the observation by adding a new mutually exclusive event within an existing span. 3 - Instead of ending the existing event in the proper place, the event ended at the end of the observation. 4 - This also has the side effect of ending plots of the observation early.

See my screenshots for an example.

Screenshot 2023-02-23 142303 Screenshot 2023-02-23 143053

eineLeipzigerin commented 1 year ago

We do run into the same issue. One of the coders found out, that if you try to edit the last event, but click ok twice, events appear in the correct order, but it is a hazzle to do so for every exclusive event. We tried with stable release ver 8.9.19

olivierfriard commented 1 year ago

this issue should be fixed in v. 8.12.2 just released. Can you confirm this? Thank you for your collaboration

eineLeipzigerin commented 1 year ago

Dear Olivier,

Some of our scientist are using Boris to code longitudinal data from mainly great apes at Leipzig Zoo and now also starting code longitudinal data from great apes of other European Zoos and the field. Since I know that life of a programmer can be hard and demanding I asked within the department about the possibility for support we could give to you.

And they say it is possible to give support to you we might find the best solution.

Since we were also using the macOS version and you said you are not longer able to develop the macOS version because of the lack of a Mac, there might be also the possibility for a loan of a Mac from us. What do you think in general about these two points before we start to go into detail.

Kind regards, Petra


Petra Jahn IT Administration

Comparative Cultural Psychology Max Planck Institute for Evolutionary Anthropology Deutscher Platz 6, 04103 Leipzig, Germany

Tel.: +49 341 3550-461 Fax: +49 341 3550-119 email: @.*** Web: www.eva.mpg.de


On 14. Mar 2023, at 18:12, Olivier Friard @.***> wrote:

this issue should be fixed in v. 8.12.2 just released. Can you confirm this? Thank you for your collaboration

— Reply to this email directly, view it on GitHub https://github.com/olivierfriard/BORIS/issues/557#issuecomment-1468502879, or unsubscribe https://github.com/notifications/unsubscribe-auth/APHF7H5HWGRXXBUMLB66UDDW4CRHDANCNFSM6AAAAAATW4DPJA. You are receiving this because you commented.

eineLeipzigerin commented 1 year ago

we were now able to test version 8.16.1 and the issue is not resolved yet, still the times for different codes get mixed while coding. Please let us know if you need further information. Since I am not coding myself, I always need to wait for the response of our coders.

eineLeipzigerin commented 1 year ago

Error Message: BORIS version: 8.16.1 OS: Windows 10 10.0.19045 CPU: AMD64 Intel64 Family 6 Model 158 Stepping 10, GenuineIntel Python 3.11.2 (64-bit) Qt 5.15.2 - PyQt 5.15.9 2023-03-30 11:27

Traceback (most recent call last): File "C:\Program Files\BORIS_8.16.1\Lib\site-packages\boris\connections.py", line 95, in lambda: observation_operations.open_observation(self, mode=cfg.OBS_START) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\BORIS_8.16.1\Lib\site-packages\boris\observation_operations.py", line 183, in open_observation return load_observation(self, selected_observations[0], mode) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\BORIS_8.16.1\Lib\site-packages\boris\observation_operations.py", line 233, in load_observation if not initialize_new_media_observation(self): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\BORIS_8.16.1\Lib\site-packages\boris\observation_operations.py", line 1429, in initialize_new_media_observation self.dw_player[i].player.wait_until_paused() File "C:\Program Files\BORIS_8.16.1\Lib\site-packages\boris\mpv2.py", line 981, in wait_until_paused self.wait_for_property('core-idle', timeout=timeout, catch_errors=catch_errors) File "C:\Program Files\BORIS_8.16.1\Lib\site-packages\boris\mpv2.py", line 999, in wait_for_property with self.prepare_and_wait_for_property(name, cond, level_sensitive, timeout=timeout, catch_errors=catch_errors) as result: File "C:\Program Files\BORIS_8.16.1\Lib\contextlib.py", line 137, in enter return next(self.gen) ^^^^^^^^^^^^^^ File "C:\Program Files\BORIS_8.16.1\Lib\site-packages\boris\mpv2.py", line 1047, in prepare_and_wait_for_property result.set_running_or_notify_cancel() File "C:\Program Files\BORIS_8.16.1\Lib\concurrent\futures_base.py", line 535, in set_running_or_notify_cancel raise RuntimeError('Future in unexpected state') RuntimeError: Future in unexpected state

olivierfriard commented 1 year ago

This last issue should be fixed in v. 8.16.3

olivierfriard commented 1 year ago

Dear Petra,

Please contact me by email (please check on the About page of the BORIS web site).

Best regards

Olivier

Dear Olivier, Some of our scientist are using Boris to code longitudinal data from mainly great apes at Leipzig Zoo and now also starting code longitudinal data from great apes of other European Zoos and the field. Since I know that life of a programmer can be hard and demanding I asked within the department about the possibility for support we could give to you. And they say it is possible to give support to you we might find the best solution. Since we were also using the macOS version and you said you are not longer able to develop the macOS version because of the lack of a Mac, there might be also the possibility for a loan of a Mac from us. What do you think in general about these two points before we start to go into detail. Kind regards, Petra __ Petra Jahn IT Administration Comparative Cultural Psychology Max Planck Institute for Evolutionary Anthropology Deutscher Platz 6, 04103 Leipzig, Germany Tel.: +49 341 3550-461 Fax: +49 341 3550-119 email: @.*** Web: www.eva.mpg.de


On 14. Mar 2023, at 18:12, Olivier Friard @.***> wrote: this issue should be fixed in v. 8.12.2 just released. Can you confirm this? Thank you for your collaboration — Reply to this email directly, view it on GitHub <#557 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/APHF7H5HWGRXXBUMLB66UDDW4CRHDANCNFSM6AAAAAATW4DPJA. You are receiving this because you commented.