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

Removal of problematic required and recommended schema attributes #450

Closed
VisLab opened this issue Aug 16, 2022 · 14 comments
Closed

Removal of problematic required and recommended schema attributes #450

VisLab opened this issue Aug 16, 2022 · 14 comments

Comments

@VisLab
Copy link
Member

VisLab commented Aug 16, 2022

We are moving towards releasing HED 8.2.0.

I would like to propose removing the schema attributes recommended and required from the schema. None of the released HED 3 schemas or library schemas use them.

They are problematic, because their meaning isn't clear in HED 3. If you put required on a tag node in the schema, does that mean that it can't have any children or does it mean that it or one of its children must be in the event-level tag string? Neither the Python nor the JavaScript validators really handle these in a consistent way (luckily they aren't currently called on to do so).

These attributes aren't as problematic in HED2 because there is no short form and schema attributes aren't inherited in the same way.
On both platforms, the HED2 validation has been split off to be independent and both validators handle them correctly in the HED2 validator.

There is one other schema attribute, unique that has some of the same issues. This attribute is only used in the Event-context node, which is a special case and is an end node at the current time.

Proposal:

  1. We add the noExtension schema attribute which says that regardless of whether its parent allows extension, it cannot be extended.
  2. We remove the required and recommended schema attributes.

The first proposal will allow us to define special singletons such as Event-context. The second removes the problem of trying to implement something that is not currently used and will cause unneeded complexity. The suggestedTag and relatedTag can provide much of the same function at annotation time with respect to tools.

@dungscout96 @smakeig @tpatpa @IanCa @happy5214

@smakeig
Copy link
Member

smakeig commented Aug 16, 2022 via email

@VisLab
Copy link
Member Author

VisLab commented Aug 16, 2022 via email

@smakeig
Copy link
Member

smakeig commented Aug 16, 2022 via email

@VisLab
Copy link
Member Author

VisLab commented Aug 16, 2022 via email

@smakeig
Copy link
Member

smakeig commented Aug 16, 2022 via email

@VisLab
Copy link
Member Author

VisLab commented Aug 16, 2022 via email

@smakeig
Copy link
Member

smakeig commented Aug 16, 2022 via email

@dorahermes
Copy link
Member

Should 'Sex' not have a child 'Sex-unknown' ?
Yes, but BIDS only has Male and Female. I was hoping they would put the third option in and then we could use the same one. So far there is no sign of that.

BIDS lists options for Male, Female, Other or n/a (not recorded) in the participants.tsv:
https://bids-specification.readthedocs.io/en/stable/03-modality-agnostic-files.html#participants-file

@VisLab
Copy link
Member Author

VisLab commented Aug 16, 2022 via email

@smakeig
Copy link
Member

smakeig commented Oct 11, 2022 via email

@smakeig
Copy link
Member

smakeig commented Oct 11, 2022 via email

@VisLab
Copy link
Member Author

VisLab commented Mar 30, 2024

Sorry @smakeig
The replies to these questions are late, but I thought I should put them in for the record and some of them are being resolved with the release of 8.3.0.

How/when are you using 'Event-context' ?

Event-context is a reserved tag -- it is never put in by users. Rather, when tools unfold an event process, they create an Event-context group with the ongoing event context in it.

What is the use of 'Time-block'/# ?

Time-block is usually used to indicate a block of time during which something is noted --- say for an artifact.

Why not simply specify 'Event/#' ??

The Event and its children are essential to classify the type of events during search (i.e., distinguishing between sensory events and agent actions. The # would be used for the label of the event. This would be done in HED as (Sensory-event, Label/xxx) for example.

What is the intended difference between 'Software-agent' and 'Controller-agent'? (the definitions do not make that clear to me)

This is clarified in the new description in HED 8.3.0. See hed-schemas PR#156

Why does 'Gender' have no children? Should 'Sex' not have a child 'Sex-unknown' ?

Because of orthogonality: (Sex, Unknown) is the way to do it. The Unknown tag is added in Schema version 8.3.0.

@VisLab
Copy link
Member Author

VisLab commented Mar 30, 2024

I would like to propose removing the schema attributes recommended and required from the schema. None of the released HED 3 schemas or library schemas use them.

These are being removed in HED schema version 8.3.0 hed-schemas PR#156

@VisLab
Copy link
Member Author

VisLab commented Apr 15, 2024

Resolved with release of standard schema 8.3.0.

@VisLab VisLab closed this as completed Apr 15, 2024
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

3 participants