IPS-LMU / EMU-webApp

The EMU-webApp is an online and offline web application for labeling, visualizing and correcting speech and derived speech data.
http://ips-lmu.github.io/EMU-webApp/
MIT License
51 stars 14 forks source link

Shift + Enter to "Insert segment and link" by time #258

Open FredrikKarlssonSpeech opened 6 years ago

FredrikKarlssonSpeech commented 6 years ago

If you have a for instance a word marked on a level that is structurally the parent of a level for segments or tones for instance, you should really be able to directly create a link between them.

Word | <- defined link Segment

So when I now insert a vowel segment on the "Segment" tier using the proposed new Shift + Enter keystroke, I will directly also get a link between new segment and the word that it corresponds in time with.

It would be a great timesaver.

MJochim commented 6 years ago

I think that something along these lines would definitely be useful. Haven't thought it through, though. Just wanted to bring up something we have had in mind for a long time, #104, a really long time, looking at the issue.

I think the two things should be tackled together because if they aren't, the shift+enter suggestion would insert links, which is good, but provide no visual feedback about the new link, which I think is a must. (There might be other ways to provide this feedback than solving #104, though.)

raphywink commented 6 years ago

@MJochim yes but it will not be tackled here but in the EMU-webApp2 (still needs a better name btw :-)).

However, these are also not necessarily overlapping issues (although related). I think @FredrikKarlssonSpeech is more interested in if you have two SEGMENT levels that have a link definition (i.e. one dominates the other) and you add a new boundary / new segment that these are automatically linked (basically a mini autobuild_linkFromTimes() for a single segment). This only applies to SEGMENT/EVENT levels. Issue #104 is aimed at ITEM levels dominating SEGMENT and EVENT levels (that is what I always refer to a ghost levels because here we want to display time where it doesn't actually exist). In the latter case auto-linking will be extremely difficult to do. For example:

   x1       x2
    |        |
    o   n   o

o = old annotation items that are linked
n = new annotation items

what is n linked to? x1 or x2? Even in the SEGMENT dominates SEGMENT level case it could also be tricky depending on the segment alignment: Imagine a ONE_TO_MANY relationship and this type of scenario:

level A: |   i am segment 1   |  i am segment 2  |
level B:            | im am newly added seg |

is the newly added segment linked to 1 or 2?

MJochim commented 6 years ago

@MJochim yes but it will not be tackled here but in the EMU-webApp2 (still needs a better name btw :-)).

This morning it occured to me for the first time that ng used to stand for next-generation but now is for aNGular ;-).

MJochim commented 6 years ago

However, these are also not necessarily overlapping issues (although related).

You're right here. However, I think that #258 should not be solved before #104 (the other way round would be fine).

As for the problematic scenarios you have described, we would probably have to go for something like in the anagest module. There, the users get to select an item as link target (from a list).

FredrikKarlssonSpeech commented 6 years ago

A simple option is to just not allow the keypress (show an error message) if the user inserts a segment that is not say 90% overlapped by a segment on the parent level. I almost wrote "completely overlapped, but then there is off course the case of final segments in words where the end time may by accident be placed within the following word. Then this segment would be also be ambiguously linked, but this is a situation that would the solved by the >90% overlap rule.