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

Add NecrOPTIMADE provider #70

Merged
merged 1 commit into from
Jun 23, 2021

Conversation

ml-evs
Copy link
Member

@ml-evs ml-evs commented Jun 22, 2021

This PR adds a provider for the WIP NecrOPTIMADE service, currently hosted on Heroku.

The index meta-database is dynamic and currently only contains a single implementation if it has been requested at the extensions/spawn endpoint since the last deployment. Some more notes can be found at ml-evs/necroptimade.

@ml-evs ml-evs marked this pull request as ready for review June 22, 2021 21:22
@merkys
Copy link
Member

merkys commented Jun 23, 2021

The index meta-database is dynamic and currently only contains a single implementation if it has been requested at the extensions/spawn endpoint since the last deployment. Some more notes can be found at ml-evs/necroptimade.

From the analogues in the specification I gather that all nonstandard names have to be prefixed with database-specific prefix. As there are no standard extensions in v1.0.0, I think all of them have to be prefixed, thus it should be extensions/_necro_spawn. But I may be wrong. Specification is rather implicit on this matter.

@rartino
Copy link
Contributor

rartino commented Jun 23, 2021

From the analogues in the specification I gather that all nonstandard names have to be prefixed with database-specific prefix. As there are no standard extensions in v1.0.0, I think all of them have to be prefixed, thus it should be extensions/_necro_spawn. But I may be wrong. Specification is rather implicit on this matter.

This is not how I remember the intent with /extensions, but rather that it was to be completely under the API implementation's control. The specification says "The API implementation is free to define roles of further URL path segments under this URL." I think the "any URL goes" is a reasonable interpretation in the absence of any clarification that only prefixed path segements are acceptable.

As for the prefix, the 'necro' naming is fun and all; I'll of course approve it if that is want you want. But, wouldn't something like 'archive' be more... informative.... for this service?

@merkys
Copy link
Member

merkys commented Jun 23, 2021

From the analogues in the specification I gather that all nonstandard names have to be prefixed with database-specific prefix. As there are no standard extensions in v1.0.0, I think all of them have to be prefixed, thus it should be extensions/_necro_spawn. But I may be wrong. Specification is rather implicit on this matter.

This is not how I remember the intent with /extensions, but rather that it was to be completely under the API implementation's control. The specification says "The API implementation is free to define roles of further URL path segments under this URL." I think the "any URL goes" is a reasonable interpretation in the absence of any clarification that only prefixed path segements are acceptable.

I stand corrected. Indeed, the implementation is free to use any URL after /extensions.

Copy link
Contributor

@rartino rartino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

(But consider if "necro" is the best prefix. To clarify my point I see no issue with calling the software that serves archived databases necrOPTIMADE, but the greek prefix for "death" may now end up staying with us for a long time to refer to the OPTIMADE-associated standard archival service...)

@ml-evs
Copy link
Member Author

ml-evs commented Jun 23, 2021

As for the prefix, the 'necro' naming is fun and all; I'll of course approve it if that is want you want. But, wouldn't something like 'archive' be more... informative.... for this service?

I get what you are saying, but I don't think I want this to look like an official archive and see this as more of a capability test. If it goes well, I would be more than happy to move to a central optimade.org hosting with a less jocular name...

(But consider if "necro" is the best prefix. To clarify my point I see no issue with calling the software that serves archived databases necrOPTIMADE, but the greek prefix for "death" may now end up staying with us for a long time to refer to the OPTIMADE-associated standard archival service...)

I'm willing to think about this for a bit, as you say the prefix/id is more permanent than the name itself, so maybe just nec is more appropriate?

@ml-evs
Copy link
Member Author

ml-evs commented Jun 23, 2021

It's actually an open question how this service should use prefixes. If two static db's want to host the same custom field with different meanings, then _necro_cell_volume (for a primitive cell) and _necro_cell_volume (for a simulation cell) would be problematic (even if the corresponding info endpoints had the correct description). A local prefix for a particular implementation would make sense (though it could be hard to generate a name), but of course these would not be registered here...

@rartino
Copy link
Contributor

rartino commented Jun 23, 2021

I get what you are saying, but I don't think I want this to look like an official archive and see this as more of a capability test. If it goes well, I would be more than happy to move to a central optimade.org hosting with a less jocular name...

Sure, if one sees this as preliminary testing, then any prefix is fine. However, I suspect this is going to be OPTIMADE-adopted, and the prefix will stick with us because there likely will be some breakage in changing it at that point.

Well, feel free to make the decision you prefer if no one else chimes in; we've already reached the necessary approvals.

(I'm not sure if 'nec' vs 'necro' makes much difference; perhaps it sticks out a little bit less :-) )

@ml-evs
Copy link
Member Author

ml-evs commented Jun 23, 2021

Sure, if one sees this as preliminary testing, then any prefix is fine. However, I suspect this is going to be OPTIMADE-adopted, and the prefix will stick with us because there likely will be some breakage in changing it at that point.

I don't see this is as a problem, I think a proper OPTIMADE archive would just be a separate provider.

I will merge this as it is, and we can see how it goes. Perhaps we need a mechanism to eventually deprecate providers in this list, so we can use this as a test case...

@ml-evs ml-evs merged commit 91b51bd into Materials-Consortia:master Jun 23, 2021
@ml-evs ml-evs deleted the ml-evs/add_necroptimade branch June 23, 2021 11:39
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

Successfully merging this pull request may close these issues.

None yet

3 participants