Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mark and serialize manual editing of EQ status #84

Open
hlapp opened this issue May 13, 2016 · 9 comments
Open

Mark and serialize manual editing of EQ status #84

hlapp opened this issue May 13, 2016 · 9 comments

Comments

@hlapp
Copy link
Member

hlapp commented May 13, 2016

Thanks to @calliem's work, a curator will have the ability to pre-fill EQ annotations in Phenex from a named entity recognition service. Many times, these will need subsequent manual adjustment by the curator, such as deleting redundant or incorrect E and Q combinations, or further tweaking of Es and Qs. A curator may not be able to go through all characters in a single session, and when resuming from file later, it may not be entirely obvious where they left off. As a workaround, comments could be left for the character. However, a visible hint (such as by font color) to which characters have been manually adjusted and which ones have not would be very useful, and would need to be persisted between sessions.

The question is how should such a marker best be added as metadata to the in-memory model so it gets properly written out to the NeXML file and read back in upon reloading the file? @balhoff could you advise?

@balhoff
Copy link
Member

balhoff commented May 17, 2016

@balhoff
Copy link
Member

balhoff commented May 17, 2016

A character could show an indicator that is computed from the progress data attached to its states.

@hlapp
Copy link
Member Author

hlapp commented May 17, 2016

@balhoff I was also wondering whether you have ideas re: the metadata attribute that would be best suited for attaching such a marker state. Or should we just make up our own?

Do these statements mean that you are essentially hard-coding some metadata attributes? And if so, which vocabulary will these be put in upon writing?

    public static final String COMMENT = "comment";
    public static final String SYMBOL = "symbol";
    public static final String LABEL = "label";
    public static final String FIGURE = "figure";

@balhoff
Copy link
Member

balhoff commented May 17, 2016

The vocabulary for those is just specified in the NeXML input/output code. The constants there are just used within State.java, because there is some reflection used to set properties in the model objects.

I don't know of any good metadata attributes offhand. I did a little looking around but didn't find anything obvious.

@hlapp
Copy link
Member Author

hlapp commented May 17, 2016

So would the pattern to follow be to add another statement to the aforementioned, such as

public static final String CURATOR_EDITED = "curator_edited";

Alternatively, perhaps it's worth adding an ECO term to the state (or the character?), such as perhaps ECO:0000203 versus ECO:0000218, or ECO:0000363 versus ECO:0000306.

Thoughts, @balhoff?

@balhoff
Copy link
Member

balhoff commented May 17, 2016

I think you can just do a regular getter and setter for a boolean property. The other properties send out property change notifications that are used in undo/redo. If this value is being set indirectly by some other action (like changing a phenotype), then that action would be the thing expected to be undone.

I like ECO:0000203 versus ECO:0000218, good idea. So that would be a URI value, like denotes for Character. That is written out in NeXML a little differently than a string.

@hlapp
Copy link
Member Author

hlapp commented May 17, 2016

I like ECO:0000203 versus ECO:0000218, good idea. So that would be a URI value, like denotes for Character. That is written out in NeXML a little differently than a string.

But it could come back in the same way? I think that's what matters most for @calliem, i.e., does she need to be concerned with how this is written out and read back in.

@hlapp
Copy link
Member Author

hlapp commented May 17, 2016

I think you can just do a regular getter and setter for a boolean property.

And that would automatically get serialized?

@balhoff
Copy link
Member

balhoff commented May 17, 2016

You need to write code to serialize and deserialize. I would look at how this works in the NeXML writer and reader for other properties of State (for when to do it), and for the denotes URI for Character (for how to do it for URI). Does that help?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants