twhetzel / api-profiling Goto Github PK
View Code? Open in Web Editor NEWFind identifiers in API responses and get their resource information from Identifiers.org
Find identifiers in API responses and get their resource information from Identifiers.org
If a match to a datatype in MIRIAM is not found by testing the keypath, check a value for the keypath against the more specific regex patterns (data_registry_MODIFIED2.json) from MIRIAM.
The Profiler app will only have the space of half of the browser window so the table of results needs to be viewable/usable in a smaller window.
Added CSS for No More Tables to format table:
https://elvery.net/demo/responsive-tables/#no-more-tables
While the autocomplete widget now works on all rows after switching the reference to the element by class vs. id, the text highlighting function only works for the first row. Update widget so text highlighting works for all rows.
For better usability, display autocomplete options in alphabetical order. Sort both values based on Pattern Match and All Resources.
Follow examples here to display the selected resources as a tag with a X to remove the item from the input text field.
Remove checked rows - followed example here using jQuery:
http://stackoverflow.com/questions/21508134/how-to-remove-checked-table-row-using-jquery
From result table, include miriam datatype ID in JSON-LD output.
Update table formatting to display annotation results using Material Design.
Use an autocomplete field to display suggested resource matches. List the resources where the pattern matched (suggested resources) first. NOTE: May need to limit this list with using the full MIRIAM data registry information.
Also, allow the user to autocomplete on any resource found in the MIRIAM data registry.
Also, allow the user to enter a resource not in MIRIAM.
On the home page, confirm that input exists before activating the submit, e.g. alert pop-up if input value is empty or not a properly formatted URL, before submit.
For rows with autocomplete of suggested resources, dynamically add the selected MIRIAM ID to the function attached to the Info icon to view information about the resource when the icon is clicked.
For now, submit data to Firebase.
In addition to checking that input exists in form before submitting, also check that input is a valid URL.
Add a link for resources displayed in the dropdown menu so that user can manually review the resource for accuracy.
Need to account for site outages of Identifiers.org. Motivation, currently maintenance at the Hinxton Data Centre causes web services with Identifiers.org to return a 500 error. E.g. http://www.ebi.ac.uk/miriamws/main/rest/datatypes/
Options: gracefully handle web service failures from Identifiers.org
and/or maintain local file of data from Identifiers.org web service calls (e.g. datatype call) and use if service is down.
To help with annotation result verification, add one or more values for the keypath to the result table.
After working on autocomplete and extend with custom data and adding material design tags, the checkboxes can no longer be checked.
After annotating web service, generate a JSON file. Schema TBD.
Use this as a guide for the JSON-LD output format:
https://github.com/SuLab/myvariant.info/blob/master/src/www/context/context.json
Where in this example
"clinvar/rcv": {
"@context": {
"accession": "http://identifers.org/clinvar/"
}
}
Format Select element
When submitting data via the button with id="convert-table"
the method to check whether an resource was selected is also called. The other method is called as:
$(document).on('click','i',function(e){
If there are no suggested resource matches, even by pattern matching, highlight the row in the table. Currently, this is hidden within the dropdown menu.
Add a column for checkboxes so that the user can select a row to ignore when submitting the data. For example, there are some keypaths that do not need to be annotated.
The FAB currently displays an Edit image, update the button to make it easier to know that it is also there to submit data.
Currently, when a resource is identified as a pattern match it is displayed twice in the autocomplete list - once under the "Pattern Match" category and also under the "All Resources" category. Explore removing entries that are displayed under "Pattern Match" from also showing up under "All Resources".
Update app to be able to run using Python 3. Follow guidelines here:
http://python-future.org/compatible_idioms.html
For single matches, display the resource name vs. the currently displayed MIRIAM Identifier.
NOTE: May need to refactor code to get this information.
Use the information from rules.json to expand the information for the MIRIAM/Identifiers.org information about a resource.
Update template to use Select2 to display autocomplete results as tags and allow user to add custom tag as input. See docs here: https://select2.github.io/
If allowing for annotation of multiple web service calls, display the ID frequency (test-id_frequency_dictionary.txt) in web app result page.
Add a requirements.txt file to consolidate app requirements for installation. Generate using:
pip freeze > requirements.txt
Confirm requirements needed to run for Python 3.
In the table of results for the suggested resource annotation, style the dropdown using Material Design vs. browser default.
Add info icon to rows with autocomplete suggestions for the mapped resource field.
Update profiling.py in web app to check keypath in reverse order since more specific identifier will be at the end, e.g. go.cc.id OR in the case of two identifiers, e.g. go.cc.pubmed pubmed is the identifier for the value of this keypath.
Switch to Materialize (http://materializecss.com/) or Bootstrap Material Design (http://fezvrasta.github.io/bootstrap-material-design/) vs. Material Design Lite since these have more components.
If there is a match by the keypath, also confirm that an example value passes that resource's regex pattern.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.