-
Notifications
You must be signed in to change notification settings - Fork 12
Device
and ImagingPlane
should not be top properties of the Ophys
schema.
#539
Comments
Device
and ImagingPlane
should not be top properties of the Ophy
schema.Device
and ImagingPlane
should not be top properties of the Ophys
schema.
Actually both of these objects are example of links. They are stored in /general/optophysiology/ and linked to by other objects like TwoPhotonSeries. If you look in the TwoPhotonSeries spec you will see that Device and ImagingPlane are in fact both Links. This allows the same Device or the same ImagingPlane to be linked to in another TwoPhotonSeries. So it makes sense that they are not actually defined within the TwoPhotonSeries. A counter-example is OpticalChannel, which is not a link and is defined within ImagingPlane |
This structure is also designed to mimic the metadata and object links on the |
I had closed this issue since I presumed that after 3 weeks of non-response to Bens original explanation, this had been explained. Apparently @h-mayorquin was not satisfied, and was upset that this was closed (though anyone should still be able to comment on issues after their closure, as well as re-open any issue they made that was then closed - let me know if this is not behaving correctly). @h-mayorquin Can you please clarify what you disagree with, propose an alternative solution that is better, and emphasize why this is a current item of priority interest? Sorry for the confusion this caused and presumptions on my part. |
Thanks for opening it again @CodyCBakerPhD. For the record:
I am fine with having the policy of closing issues that are stale for sometime. I was busy and could not follow up on this as quickly as I would like. I would also like to say that we have plenty of issues that are stale for far longer than 3 weeks so maybe we should write this somewhere or do use a both that gives a fair warning to avoid these confusions in the future. |
Hmm... I'll look into that, then.
You DM'd me first on the Saturday evening of a holiday weekend (Father's day + Juneteenth, including the federal holiday extension of that to today, the 20th), then began accusing me of ignoring you before I finally had time to respond for the first time today (again, technically a holiday for our federally-related project). While it is a milestone of the U24 grant to have a certain response time on freshly posted issues (and I do everything in my power to uphold that), that does not apply to private DM's on Slack. Please be more patient for this kind of thing in the future.
Based on #539 (comment), 2 weeks at time of closure, 3 weeks by time of request to re-open. Rounding to nearest week +/- few days. |
Yeah, it's nowhere to be found in the admin controls. Looking around led to Old stackoverflow question: https://stackoverflow.com/questions/21333654/how-to-re-open-an-issue-in-github Seems like just one of those things where the GitHub user community is too divided on the issue to let it move forward. Personally I don't see the problem in making it configurable, though. |
That's fine, if you felt that I was rushing you to answer I apologize for that. I just wanted to clarify that my issue was your first refusal to re-open the issue and not (as you mentioned above) that you closed the request. Telling me that you could not do it right now because you were busy or just ignoring me until you were free would be fine in my book. But refusing to do it, with that I disagree. That's it. If you were not refusing to re-open it then that's a misunderstanding on my side and I am fine with moving forward and leaving it like that.
I am fine with that clarification, but if you want to implement a strict policy of closing issues you should clarify between these differring interpretations (time since last activity vs time from opening vs time from last activity by the user who open). |
Sounds like a simple misunderstanding, then. I never 'refused' (a strong word you have now used 5 times to refer to this occasion) to do so, nor would I as long as your request was based on the issue not being resolved. It might be helpful to do an explicit review of the communication:
The good thing is we can treat this misunderstanding as a test run of user outreach/response; what could I have improved upon in my communication with you to avoid this misunderstanding in the future (and more importantly, with users)? The way I see it, my initial response clarified why I had closed it, and pointed out that the original reasoning for re-opening was not relevant to the open/close status - as soon as you stated that you did not consider the matter closed (and as soon as I had time) the issue was indeed re-opened.
It's not a strict policy, it's just whenever I get around to combing through open issues (could be once a week, could be once a month). I only set reminders for important things like deprecations. An issue bot might be the best way to go for automating that process, could you look into that sometime? |
The source of the misunderstanding:
It came from 1) you saying that (in bold) and 2) not opening the issue after that, 3) start another discussion about whether issues should in fact be closed or not. That I interpreted as you refusing to re-open. If you had said, "OK, I was busy, I will re-open it as soon as I have some time" that would have defused it. I also would like to ask you to no to share our private conversation without my consent, it is not a big deal for me but I think is the wrong procedure and it leaves a bad precedent. I also think that you should not have started saying that I was upset above when you re-opened the issue here, sets a bad tone to re-start the discussion. I went to you privately the first time because I think this whole ordeal would have been better addressed that way. I honestly think we both would have looked better if we had kept it that way |
@h-mayorquin and I discussed this and agreed to close. |
While working in #537 and #538 I was thinking about the following:
Context
Right now, we have objects like
Device
andImagingPlane
at the top of theOphys
schema, These objects though, usually are bound to other objects when we write them into thenwb_file
(e.g.ImagingPlane
for example is a property ofTwoPhotonSeries
in the imaging interface and ends up there):nwb-conversion-tools/src/nwb_conversion_tools/datainterfaces/ophys/baseimagingextractorinterface.py
Lines 36 to 45 in a03bf77
There is a similar situation with
Device
andImagingPlane
at the top level ofOphys
in the schema for theBaseSegmentationExtractorInterface
:nwb-conversion-tools/src/nwb_conversion_tools/datainterfaces/ophys/basesegmentationextractorinterface.py
Lines 28 to 37 in a03bf77
Proposal
My question is, would it not be better to have this metadata nested to the level that they actually belong to?
For example, for the
BaseImagingExtractorInterface
would it not make more sense to haveImagingPlane
as a property of theTwoPhotonSeries
at the metadata level? That is the level that it occupies in the actual schema and we eventually send the object there with theadd_two_photon_series
function.The only reason that I can see to keep these objects like
Device
andImagingPlane
at the top level is that maybe is easier to link themacross modalities (for example if the segmentation extractor and the imaging extractor share anImagingPlane
or aDevice
). In that case, I think that we can simple link the objects with the name if the device already exists in thenwb_file
.Similar concenrs applie for
Device
in both classess and toTwoPhotonSeries
in theBaseSegmentationExtractorInterface
(where it should be nested inImageSegmentation
). I feel that setting them at the right (nested) level avoids a type of ambiguity when, for example, more than oneDevice
orImagingPlane
is used and it also allows for better control of the properties of the schema.Maybe I am missing something?
TL;DR We should have the metadata properly nested in the place that they occupy in the schema and link by name if we need to.
The text was updated successfully, but these errors were encountered: