GithubHelp home page GithubHelp logo

obofoundry / purl.obolibrary.org Goto Github PK

View Code? Open in Web Editor NEW
73.0 8.0 126.0 1.62 MB

A system for managing OBO PURLs

License: BSD 3-Clause "New" or "Revised" License

Makefile 8.57% Python 69.13% Jinja 1.58% Dockerfile 2.12% Shell 12.19% HCL 6.40%
ontology purls obofoundry obo-services ontology-infrastructure

purl.obolibrary.org's People

Contributors

abessiari avatar alanruttenberg avatar allenbaron avatar allysonlister avatar anitacaron avatar balhoff avatar beckyjackson avatar cmungall avatar cstoeckert avatar daniwelter avatar drseb avatar edwardsnj avatar fernandafarinelli avatar hkir-dev avatar hoganwr avatar jamesaoverton avatar kltm avatar lschriml avatar matentzn avatar mbrochhausen avatar mcourtot avatar nataled avatar ramonawalls avatar robbie1977 avatar shawntanzk avatar srobb1 avatar tutajm avatar wdduncan avatar yongqunh avatar zhengj2007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

purl.obolibrary.org's Issues

Restrict replacements to absolute URLs?

As of c264b20 the validation requires that the replacement: be an absolute HTTP(S) or FTP URL.

When migrating from PURL.org, I've seen a few examples with relative redirects, e.g.

- exact: /ReleaseNotes
  replacement: /2012-07-20/ReleaseNotes

That's not a bad idea. But I'm worried about relaxing the validation too much. Do we allow any URL? Only absolute URLs and URLs that at relative to the same project? Suggestions are welcome.

PURLs for OBO_REL

Current PURLs redirect to Ontobee, but ontology is not loaded in Ontobee or OLS.

Sort exact entries with migrating

Currently the exact entries are migrated in the order they appear in the XML, which I think is by creation date. It might be friendlier to sort them alphanumerically. It will not change behaviour of the system.

Evaluate travis as a way to vet PRs

Assuming we could write some kind of validator for the htaccess files, it should be easy to write a .travis.yml that can be used to assist with PR evaluation.

Decide on editing workflow(s)

I think that the Apache server should run directly against the master branch. So master can only contain vetted changes with updated .htaccess files that have passed the automatic tests (#2, #3).

From the user's perspective, easiest to hardest:

  1. create a new issue with your request; an admin will make a pull request, test it automatically, then merge the PR
  2. use GitHub to edit the config/foo.yml file in your browser; that should automatically make a pull request? somebody still has to update the .htaccess file
  3. fork the repo, edit config/foo.yml, run a Python script, commit to the fork, and make a pull request with updated YAML and .htaccess files

PURLs for NIF_*

Do not use OBO identifiers:

  • NIF_Cell
  • NIF_Dysfunction
  • NIF_Grossanatomy

automated PURL testing

For a given PURL there are two main things to check:

  1. does the redirect work correctly, e.g. response code 302 with the correct Location header
  2. does the target resolve, e.g. response code 200 with non-empty content

We could maintain a table of test data, with a selection of PURLs, and columns for source, redirect code, and target. Then we could have a script that uses the table to run these two types of test. Slightly more clever would be #TEST foo lines in the .htaccess files that would be assembled into a test suite.

We should also test some known-bad data, to ensure that the correct failure notifications are returned.

@cmungall: We may or may not want to run these tests with Travis, see #2.

migrate PURL configuration

To use this new system, we need to migrate our configuration from the current system. We should to be able to verify that migration is complete and correct (see also #3).

Given a copy of the current database table, a semi-automatic, one-time conversion should be pretty easy, and we can be pretty sure that we haven't missed anything. I don't know if this is possible.

Without a copy of the table, we can use the search interface: https://purl.org/docs/purl.html#search. The results can be scraped from the HTML, or we can fetch XML like this.

The search interface only returns 100 results at a time. This is enough for all the specific ontologies that I have checked: 44 for /obo/bfo/*, 66 for /obo/obi/*, 63 for /obo/iao/*, 1 for /obo/pro/*, 7 for /obo/go/*, 6 for /obo/chebi/*.

However, for the /obo/* path there are more than 100 results. Most of the results I see belong to PRO. And I think there might be other redirect magic going on for /obo/*. @cmungall?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.