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

Separate Part Name from Part Preservation #3762

Closed
campmlc opened this issue Feb 28, 2018 · 207 comments
Closed

Separate Part Name from Part Preservation #3762

campmlc opened this issue Feb 28, 2018 · 207 comments

Comments

@campmlc
Copy link

campmlc commented Feb 28, 2018

Proposal to separate part name (e.g. "tissue") from part preservation (e.g. "frozen").
Posting this as new issue related to repeated earlier discussion.

From email string:
These are clearly part attributes - they apply to parts, there can be many of them, they're determinations, they're time-dependent, etc. You can add them with the "add more" widget on data entry. We'll need to set up code table values before you can use them - that's fairly trivial, you can do it under edit code tables.

They can be bulkloaded with the parts bulkloader, and are in partdetail in specimen results/downloads.

I agree that preservation should not be confounded with part name. Getting it out affects lots of things (labels, the "tissues" search, data entry, etc.) so will need some discussion. Issue please.


Current status: https://docs.google.com/spreadsheets/d/1AY1EXQzKUSAg9EvZFjayTXcCBciXd_syCxt0GSX2tww/edit#gid=485619714 will serve as a migration path on 2021-07-01

@campmlc
Copy link
Author

campmlc commented Feb 28, 2018

Previous issues: #212, #319, #352, #991, #1020, #1084, #1119, #1131, #1203, #1384

@dustymc
Copy link
Contributor

dustymc commented Feb 28, 2018

Thanks @campmlc !

This isn't (yet...) a technical issue, so I'm unassigning me. The structure to do this all exists, I think we just have to work out how to use it (and/or decide if we can use it).

I think a model in which attributes of a physical object are in a 1-->many relationship with that object is "correct" (more correct, anyway) from a data modeling standpoint, but I'm also not entirely sure it's usable. Given the choice between correct and usable, I'll always (try to!) take usable.

#212, #991, #1020: maybe we should toss the whole part model and start blank-slate - the current model has known problems with no clear solutions.

Also for any developing wish-list: find all the ribs. They're currently under "rib" and "body" and "whole organism" and "embryo" and (sorta/maybe) "fossil" and ....

#319 got revived for and implemented as #800. It's clearly "more correct" as preservation history than what we're proposing here (eg, "frozen" is ambiguous, TEMPERATURE at TIME isn't) but I think we decided it wasn't usable as part of the GGBN work.

#352 introduced the structure which allowed this.

#1084: #1084 (comment) is the summary (we can't articulate what a "tissue" is).

#1119 is pretty much this and #319.

#1131 and #1203 are a bit like #1084 (comment) - we did some stuff, things definitely got better for it, but "is this a part?" still has a very arbitrary answer.

#1384 just looks like another symptom of #319 to me - qualitative labels (excellent, rotten) for what is essentially quantitative data (time at temperature) are weird (albeit perhaps necessary if anyone's going to interact with the data!).

@dustymc dustymc assigned campmlc and unassigned dustymc Feb 28, 2018
@dustymc
Copy link
Contributor

dustymc commented Apr 12, 2018

find/make example in test, post here

@Jegelewicz
Copy link
Member

AWG agrees separation would be better. Use a part attribute to maintain history. Add part attributes to data entry and bulkloader. Controlled vocabulary unless someone has a good reason not to. @dustymc ? put an example here for us to see how it will look.

@dustymc
Copy link
Contributor

dustymc commented Aug 1, 2018

@Jegelewicz
Copy link
Member

This doesn't look any different from what we have now.

image

I think we were expecting
part=DNA
preparation=frozen

@campmlc
Copy link
Author

campmlc commented Aug 1, 2018 via email

@dustymc
Copy link
Contributor

dustymc commented Aug 1, 2018

doesn't look any different

It's not, which is why I've been saying "go for it!" for some time now.

part=DNA
preparation=frozen

That's just data and doesn't change any functionality. I'm happy to help with updates and such, if you want to do something in your collection or can convince other collections to come along or whatever.

expandable dropdown so that we don't have to look at the entire list for each part unless we click "expand".

I'm not sure what this means.

@campmlc
Copy link
Author

campmlc commented Aug 1, 2018 via email

@dustymc
Copy link
Contributor

dustymc commented Aug 1, 2018

consensus

I hope so, but this should definitely go to the group.

add a separate part preparation field

That is a part attribute; there's nothing to add.

multiple concatenated searchable values

Hu? http://arctos-test.tacc.utexas.edu/guid/CHAS:Bird:17187 has change over time.

screen shot 2018-08-01 at 2 53 56 pm

You'd concatenate it into "postcranial skeleton (rotten, spiffy, rotten, spiffy)"??

part attributes display...visible only when clicked

I think that's a huge problem. The thing people actually look at just says "liver" so they request tissue samples or etc - the DATA are liver (in formalin, which you can't see). That seems like it's going to cause usability problems.

@campmlc
Copy link
Author

campmlc commented Aug 1, 2018 via email

@dustymc
Copy link
Contributor

dustymc commented Aug 1, 2018

preservation is just as important as condition and disposition

Moreso maybe, but it's a different type of data.

concatentate them, as we do with the json string in part location path

Those are different things - JSON is capable of carrying the "this is not the current determination" data and would satisfy my concerns.

In any case I think that's details - we're all merged on storing the data as part attributes, correct?

@acdoll
Copy link

acdoll commented Aug 2, 2018

I think we are asking to separate 'preservation' out as a different type of data so that we can have something like this:
image

That will allow multiple concurrent preservation types (and also could be tracked over time).

@campmlc
Copy link
Author

campmlc commented Aug 2, 2018 via email

@dustymc
Copy link
Contributor

dustymc commented Aug 9, 2018

AWG:

  • we DO want to do this for all Arctos
  • minimize default info - add expand button - remember last action??
  • default part name (latest attribute inf) [clicky2expand]

@campmlc
Copy link
Author

campmlc commented Aug 9, 2018

Separate part from preservation; use part attributes, but show preservation as most recent preservation in part attributes.
All/none expand/collapse of part attributes. Default is that they are not visible.
AWG 8-9-18

@KyndallH
Copy link

Where are we with this??

@dustymc
Copy link
Contributor

dustymc commented Oct 29, 2018

If we're forcing this on everyone, we need to let them know and I need a lookup table to make changes.

If you just want to use it, go ahead - this changes nothing in the model and has always been possible.

@Jegelewicz
Copy link
Member

this changes nothing in the model and has always been possible.

I disagree. Parts are currently named "part (preservation)". This would be a pretty big change and it is one we have been asking for since I think June or July. I don't think any of us believe we have seen a demonstration of the requested change in action and perhaps this needs a committee to get it done.

@dustymc
Copy link
Contributor

dustymc commented Oct 29, 2018

That is not a model change, it's just data (and perhaps accompanying authorities).

This may end up requiring a new "part preservation" (and maybe other stuff) code table(s) under http://arctos.database.museum/info/ctDocumentation.cfm?table=CTSPECPART_ATTRIBUTE_TYPE.

This may lead to form changes, but as always I very strongly prefer to build that around existing data - I'll tackle that after someone's used this.

If this involves controlled vocabulary, then it will work exactly the same was as "tissue quality." Tissue quality uses http://arctos.database.museum/info/ctDocumentation.cfm?table=CTTISSUE_QUALITY because http://arctos.database.museum/info/ctDocumentation.cfm?table=CTSPEC_PART_ATT_ATT.

If it involves free text, it will work exactly the same as "part location."

http://arctos-test.tacc.utexas.edu/guid/CHAS:Bird:17187 contains many controlled and uncontrolled part attributes, and should adequately demonstrate any possible arrangement that this could take.

@KyndallH
Copy link

It would be controlled text.

Pretty much what currently is in () in the part code table would become preservation. So blood (flash-frozen) would be blood with flash-frozen in preservation. Blood would simply be blood.

@dustymc
Copy link
Contributor

dustymc commented Oct 30, 2018

preservation

There's an eternal argument about what's preservation and what's storage and etc. in there, but I'm pretty happy to ignore that for now if ya'll are.

currently is in ()

create table temp_pn_has_parens as select distinct part_name,
regexp_substr(part_name, '\(([^\)]+)\)', 1,1,NULL,1) stuff_from_parens
from ctspecimen_part_name where part_name like '%(%';

temp_pn_has_parens.csv.zip

create table temp_pn_parendata as select distinct stuff_from_parens from temp_pn_has_parens;

temp_pn_parendata.csv.zip

If you want to add and populate a description column to that I can create a code table.

Some of these should (probably?) be multiple attributes - "formalin-fixed, 55% isopropanol," "70% ethanol, frozen," etc.

@campmlc
Copy link
Author

campmlc commented Oct 30, 2018 via email

@Jegelewicz
Copy link
Member

@Nicole-Ridgwell-NMMNHS thanks! changes made and I gave you code table access.

@Nicole-Ridgwell-NMMNHS
Copy link

Thanks!

@ebraker
Copy link
Contributor

ebraker commented Jun 18, 2021

Looks great Teresa, thanks for doing this! There are a few times where we have a base definition, but where preservation method is included in the definition for one of the variants. Do you want me to point these out, or these will get taken care of (merged with base definition, with preservation defined separately)?
e.g.,

eye: An organ of the visual system. Eyes provide animals with vision, the ability to receive and process visual detail, as well as enabling several photo response functions that are independent of vision. Eyes detect light and convert it into electro-chemical impulses in neurons. Wikipedia
vs.
eye (formalin): eye fixed/preserved in formalin

egg: The organic vessel containing the zygote in which an embryo develops until it can survive on its own, at which point the animal hatches. Wikipedia
vs.
egg (70% ethanol): whole ovum, stored in a solution of 50% isopropanol [[[this one also doesn't make sense]]]

@dustymc
Copy link
Contributor

dustymc commented Jun 18, 2021

@ebraker no parentheses-having part should survive this process.

I updated the original issue with the migration path spreadsheet, so I don't have to go dig it out of github's horrid little collapsy-thing.

@dustymc
Copy link
Contributor

dustymc commented Jun 21, 2021

migration path is now clean

@Jegelewicz
Copy link
Member

@dustymc when I Google "hindquarters" this is what I get...

https://en.wikipedia.org/wiki/Buttocks#Synonyms

Enjoy

@Jegelewicz
Copy link
Member

@dustymc these are the compound parts that you can add.
compound_part_adds.zip

@dustymc
Copy link
Contributor

dustymc commented Jun 21, 2021

thx/done

@ccicero
Copy link

ccicero commented Jun 29, 2021

@dustymc did the 'clean-up' of MVZ parts that also have a separate preservation method get resolved - so we don't end up with a dup preservation for those records? If there are still MVZ records that have preservation in both the part name and preservation field, can you send me a CSV file of those? Thanks!

@campmlc
Copy link
Author

campmlc commented Jun 29, 2021 via email

@Jegelewicz
Copy link
Member

Pretty sure those are all parts...

@dustymc
Copy link
Contributor

dustymc commented Jun 29, 2021

@ccicero I did now, thanks for the reminder.

Do we need a reminder that this is happening Thursday?

drop table temp_dpp;

create table temp_dpp as select 
  guid,
  specimen_part.collection_object_id pid,
  part_name,
  attribute_type,
  attribute_value,
  attribute_units,
  determined_by_agent_id,
  attribute_remark,
  determined_date
from flat 
inner join specimen_part on flat.collection_object_id=specimen_part.derived_from_cat_item 
inner join specimen_part_attribute on specimen_part.collection_object_id=specimen_part_attribute.collection_object_id 
where part_name like '%(%' and attribute_type='preservation';

delete from specimen_part_attribute where
  attribute_type='preservation' and collection_object_id in (
    select pid from temp_dpp where guid like 'MVZ:Mamm:%'
);

delete from specimen_part_attribute where
  attribute_type='preservation' and collection_object_id in (
    select pid from temp_dpp where guid like 'MVZ:Bird:%'
);

@Jegelewicz
Copy link
Member

I just changed the banner - @ewommack can you make an annoucement to the AWG and Arctos Goolge group?

@dustymc
Copy link
Contributor

dustymc commented Jun 30, 2021

Part names have been updated and attributes added in test.

@ccicero
Copy link

ccicero commented Jun 30, 2021

thanks @dustymc

@Jegelewicz
Copy link
Member

OOOOOOOH! The little "summary" thingee is cool!!!!

@Jegelewicz
Copy link
Member

How long before this updates? I'm sure the questions will come up...
image

@dustymc
Copy link
Contributor

dustymc commented Jun 30, 2021

bulkload parts and select specific events?

Maybe another reason to catalog "Occurrences."

How long before this updates?

In test - a bit after I get https://github.com/ArctosDB/internal/issues/65. In production, it'll probably take a few days - Monday, hopefully, assuming all the "interesting" happens today and not tomorrow.

I've been running the update manually, but it's safe to assume it's never going to fully complete. I got that one.

"summary" thingee

Well the mechanism behind it might turn out to be neat, anyway - should be possible to swap in about any flavor/number of parts views on demand now.

@bryansmclean
Copy link

are bulkload operations paused in any way today?

@dustymc
Copy link
Contributor

dustymc commented Jul 1, 2021

Yes bulkloading and changes becoming visible in the UI are likely to be very slow to nonexistent.

@Jegelewicz
Copy link
Member

@dustymc can we close this (well send to needs documentation)?

@dustymc dustymc transferred this issue from ArctosDB/arctos Jul 8, 2021
@Jegelewicz Jegelewicz transferred this issue from ArctosDB/documentation-wiki Jul 23, 2021
@Jegelewicz
Copy link
Member

Transferring back from documentation so we can find it.

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