Let's get coding! It has been quite a year where we rewrote our user-interface (read at user-documentation), revamped our core search algorithms (read at search-engine-improvements-in-preview-release), revised our core infrastructure for scale (read at revamping-it-all), and to round it all we now invite you to preview our development platform complete with secure web service APIs and code samples all hosted on widely used cloud services.
We have built our APIs using Swagger (swagger.io) framework for RESTful web services and have hosted these services on Tyk (tyk.io) API Gateway and Management Platform - both of these are well trusted and widely used tools among developers community. Furthermore we have integrated these with our identity and authentication management services (built on freeIPA freeipa.org).
To facilitate developers secure access (besides our own web search portal), we continue to maintain identities in our directory service through LDAP protocol. This service is capable of authenticating user's identity through third-party login services such as Google+ and Facebook. Once authenticated we add them to their selected projects and assigned policy, which then grants them access to our APIs.
To facilitate developers to securely access our APIs over HTTPS protocol (much the same way our own web search user interface accesses them).
Registration and Secure Access to Projects - To access our platform APIs, developers will need to register at our portal using the registration page at (developers.nlpcore.com/portal/register/). Once registered, they can log-in to the portal and request an API Key (developers.nlpcore.com/portal/apis) to get started (they only need to request the key once). They can register for any publicly available projects (our search space is scoped by one or more projects) and/or create private projects where they can then upload their own documents or web pages for search.
API Catalog - The API catalog is maintained and documented using Swagger.
We have implemented complete versioning support including multiple versions running concurrently (as an example our beta and alpha sites are on different API versions but use the same extracted data) using our new revised infrastructure (read more at revamping-it-all). This Swagger maintained site allows you to also test any of our APIs but to do so, you must click on the Authorize button on the page (on the right above the API list) and use your developer key.
Our APIs are conveniently grouped in these namespaces below:
Project - These APIs provide available project list. For security reasons we have chosen not to expose any create or delete APIs for projects but instead we require developers to manually do so using our developers's portal as described above.
Document - These APIs allow developers to extract various attributes' meta data, word graph within and across documents, and related documents.
Search - These APIs allow developers to get documents, search term suggestions, topics, as well as the relationship graph of extracted entities (topic instances).
Entities - These APIs allow developers to get surrounding text (annotation reference) for an extracted entity by our search platform.
Feedback - These APIs allow developers to record user's feedback into our search platform. They can save search results in arbitrary collections to recall later, as well as mark any of the extracted result as relevant (or not) and reassign its topic name to their own liking. We record their feedback to improve subsequent search results both individually and collectively over time.
Besides Swagger where a developer can test a single API in isolation, we have also put together a few working samples to demonstrate specific life sciences use cases. To this end we have used Jupyter Notebook (jupyter.org) interactive computing environment. Developers can modify the python code to their liking (either simply parameter values or entire code blocks) at the website itself and run it to see the results or copy it for their own use.
While this is still a work in progress, we have now completed most of the required building blocks as we envisioned (and discovered!) and have exciting things in store for 2018! We invite you to try out our life sciences web search UI, try out our APIs and give us your feedback (firstname.lastname@example.org). Have a great season and start of 2018!