biothings / biothings_schema.py

Python Package to view and analyze schemas defined in schema.org way
Apache License 2.0
2 stars 4 forks source link

curie modules missing #1

Open milen-sage opened 5 years ago

milen-sage commented 5 years ago

It looks like there are missing curie modules in init.py. I was testing schema_explorer and bumped into a couple of related issues.

Those are resolved here, by adding the curie modules.

After that, I was able to use the package (currently hacking it a bit on my fork so that it's more convenient to use wrt Sage's existing annotation structures). However my commits seem a bit too hacky (e.g. both curie-related and say the simple edit schema class function, so that we can change existing classes instead of only being able to add classes. Since this is mostly to confirm my understanding of the existing schema modules' code rather than adding features, for now it works for me.

@kevinxin90, do you think for future users, it's worth maintaining a way to install the package (e.g. setting up requirements.txt), so that we get all dependencies (e.g. curie, graphviz, networkx)? (I actually couldn't find curie on conda/pip and had to guess which modules are relevant from other sources; any hints on that would be useful). Also, are there outstanding schema editing/exploring features in development on your end, so that we don't potentially duplicate effort?

Thanks for setting these modules up - this is going to be complementary to what we are working on to enable Schema.org-based metadata at Sage (e.g. support that for Synapse data). It would be great if we can coordinate on features development.

kevinxin90 commented 5 years ago

Hi @milen-sage, glad to hear that this tool would be helpful for your work in Sage. And we are very happy to work with you and your team for future feature development of this tool.

Regarding the "editing existing classes" feature, this would definitely be a great feature for the app. And feel free to submit a pull request so we could merge it back to the master branch.

I am a little bit occupied this week for some other projects I'm working on. And I plan to work on this schema tool from next week. And here are something on my mind to add to this repo:

1) We plan to separate SchemaOrg "schema", "class", "property" into three Python classes. Currently, these are all merged in one class.

2) Add documentation for this tool.

3) Wrap it into a PyPI package for beta release (including adding the requirements.txt file).

I will create some issues in this github repo so it would be easier for you to track. And very happy to work together with you on this project in the future.

milen-sage commented 5 years ago

Great! I'll work on adding a couple of features meanwhile, and I'll finish porting our existing metadata over the next week or so (also going round-robin on a few projects so the timeline is stretched a bit).