ncbo / ontologies_linked_data

Models and serializers for ontologies and related artifacts backed by 4store
Other
18 stars 8 forks source link

Add GitHub username and ORCID iD as attributes on the User model #160

Open jvendetti opened 1 year ago

jvendetti commented 1 year ago

The driver behind this request is Aim 3 of the BioPortal U24 grant. We're adding functionality that allows BioPortal users to request changes to ontologies when those ontologies are managed/hosted in GitHub.

Each change request entered via the BioPortal web application will be propagated as a GitHub issue in the repository where the ontology is hosted. As part of the body of the issue text, we'd like to use GitHub's syntax that allows you to combine the @ symbol with a GitHub username to mention someone. In our case, that someone would be the BioPortal user that requested the ontology change. For example, the issue body might contain something like the following:

Change request auto-generated from BioPortal on behalf of @jvendetti

Mentioning someone in this way would allow us to take advantage of GitHub's built-in functionality that notifies the person they have been mentioned in an issue.

In order to do something like this, we need to be able to allow end users to optionally enter their GitHub username when they create a BioPortal account.

Adding the ORCID iD is secondary in terms of importance, but I think it would make sense to add these at the same time.

syphax-bouazzouni commented 1 year ago

Hi Jennifer,

Yes, this would be a great feature to add. The only thing that I would suggest adding is GitHub SSO (https://github.com/onelogin/ruby-saml) if possible.

An ORCID ID is also a great addition knowing that most of our users are researchers.

But just a small remark on its implementation, I (humbly) think that adding attributes could work. But it would be better to add an abstraction IdentityProvider. A user would have then a set of those abstractions.

jonquet commented 1 year ago

Side note: when you will need to store the GitHub links (main repo and issues) for a given ontology, have a look at AgroPortal's metadata model, we have implemented to additionnal metadata properties to store these (taken from the DOAP metadata vocabulary): doap:repository doap:bug-database

See the populated values on AgroPortal: http://data.agroportal.lirmm.fr/submissions?display=repository,bugDatabase&display_links=false&display_context=false

jvendetti commented 1 year ago

For those without an AgroPortal API key, this is a sample of what the results look like from Clement's link in the previous comment:

{
  "repository": "https://sourceforge.net/projects/geneontology/",
  "bugDatabase": "https://github.com/geneontology/go-ontology/issues/",
  "@id": "http://data.agroportal.lirmm.fr/ontologies/GO/submissions/206",
  "@type": "http://data.bioontology.org/metadata/OntologySubmission"
},
{
  "repository": null,
  "bugDatabase": null,
  "@id": "http://data.agroportal.lirmm.fr/ontologies/WHEATPHENOTYPE/submissions/9",
  "@type": "http://data.bioontology.org/metadata/OntologySubmission"
},
{
  "repository": "https://xeo.codeplex.com/SourceControl/latest",
  "bugDatabase": "https://xeo.codeplex.com/workitem/list/basic",
  "@id": "http://data.agroportal.lirmm.fr/ontologies/XEO/submissions/1",
  "@type": "http://data.bioontology.org/metadata/OntologySubmission"
}
jvendetti commented 1 year ago

Hi @syphax-bouazzouni. Thank you very much for the feedback. I'm not sure I followed precisely your proposal. Is this referring to the general topic of implementing SSO for BioPortal/OntoPortal?

jvendetti commented 1 year ago

Thank you for the information about your metadata model @jonquet. I've been working on Aim 3 for the U24 grant in a topic branch called kgcl-change-requests. At the moment, I'm using a YAML configuration file to store the repositories associated with ontologies. I needed the ability to specify different repositories for each ontology depending on what mode our Rails application is running in:

https://github.com/ncbo/bioportal_web_ui/blob/kgcl-change-requests/config/change_request.yml

This also allowed me to take advantage of Rails built-in support for custom configuration:

https://guides.rubyonrails.org/configuring.html#custom-configuration

It's high on my to-do list to merge the topic branch into master to facilitate feedback and possible collaboration.

graybeal commented 1 year ago

See also https://github.com/ncbo/bioportal-project/issues/134 for a corollary task that would be valuable to include at this time.