Conversation
RobertJCarroll
left a comment
There was a problem hiding this comment.
Hi Christina. It looks like you haven't been able to test this yet. I think the github action for running the build may have not triggered as it was converted from a draft, but I'm not sure. Happy to help get that set up, You won't need copier, but the other prerequisites here should get you started:
https://github.com/dalito/linkml-project-copier?tab=readme-ov-file#prerequisites
I tested locally, and the build is failing. One part that stood out is that the slot definitions should all happen in the slot section (ie, line 637 and beyond in your version). Looking at your yaml, none of the information about descriptions should appear there, for example, this description is already present (broadly) in the slot definition here. We also want to use slot_usage as infrequently as possible. IE, where the names, titles, types, and descriptions can reasonably be the same, we want to preserve that. It looks like you might be trying to define everything within the classes, which is understandable, but not the "linkml way". Slot_usage would mainly be to specify something as the unique key of a class/table or to set something as required in that specific class/table's context.
To get this building, I would recommend starting by moving all of these "slot definition details", eg, the descriptions nested in the class slots section and the other definitions in the class slot_usage section into the high level slots. You'd then only have the names of those slots in the class, eg, like DOI and it's slots do_id and bibliographic_reference.
We can dig a bit deeper on the field-level specifics once it's building- I see some duplicate slots in here, and it'll be easier to review when they are cleaned up. Please let me know if you need more guidance on the "how".
|
torstees
left a comment
There was a problem hiding this comment.
There are some string types that might be better suited as enums to ensure we are consistent across studies/programs. @RobertJCarroll can say for sure whether these might be better suited as strings, but I thought it was worth flagging.
| description: Identifier for a specific version of the object | ||
| range: string | ||
| required: true | ||
| access_type: |
There was a problem hiding this comment.
Should this not be an enumeration?
There was a problem hiding this comment.
yea @torstees I agree - i set them as strings for now and was hoping to add some initial Enums I had in mind this week. I have an idea of the KF enums we typically use, but wasn't sure about INCLUDE ones we'd need. Would love to discuss further.
| range: string | ||
| required: true | ||
| experimental_strategy: | ||
| title: Experimental Strategy |
There was a problem hiding this comment.
Some of these look like suitable candidates for Enumerations: Exp Strategy, Assay Center, Platform.
|
@torstees @RobertJCarroll - I added some initial ideas for Enums. I'd like to discuss further enums for |
|
We should have a deeper conversation about the enumerations. Some of these are complex enough that they likely require a separate management process if we can't use external sources. EG, the EnumPlatform has two different type of Illumina. One is more specific, but they aren't nested. We also likely want to avoid "other" terms if possible. Up front I'd prefer permitting nulls and adding them in ASAP (or keeping it required with the supports for rapid response changes). Untangling "Did we pick other before we added that one" is pernicious. With regards to FileAdmin, we probably want to either just have it reference a File or inherit from File- every FileAdmin should have a File, too, right? Similar with FileAssay- If we want it to extend File that's ok probably, but we should think about where things belong. Would it make more sense for it to just be "Assay" and point to files generated? I do worry a bit about having too many places to link files to individuals or samples, but maybe that's ok? |
Adding modeling for a files access model and assay access model. still WIP