NNexus provides an API and an engine for auto-linking of mathematical concepts. It supports the subtasks of concept indexing, concept discovery and flexible annotation (e.g. linking).
NNexus is free, libre, open-source software.
The library comes with a pre-packaged snapshot of over 10,000 concepts from PlanetMath, Wikipedia, Wolfram Mathworld and DLMF. You can jump right in with a perl one-liner:
perl -MNNexus -e 'print linkentry(join("",<>))' < example.html > linked_example.html
... or read the rest of this README for installation instructions and further use cases.
The Manual draft contains a technical overview of the NNexus system.
For installation and deployment, consult the INSTALL file.
Connecting from a client
These two lines of PHP illustrate how NNexus can be used via Planetary's curl:
$data = 'function=linkentry&body=' . urlencode($text) . '&format='.$format.'&domain=Planetmath';
$content = planetary_webglue_do_post('http://127.0.0.1:3000/linkentry',$data);
NNexus API
JSON is already the preferred representation for NNexus requests, yet the coverage of the original NNexus request types is incomplete.
An auto-linking example:
{"function":"linkentry",
"body":"<html><body><p>Some text using myconcept, ourconcept or theirconcept</p></body></html>",
"format":"html",
"embed":1,
"nolink":null}
TIP: The above JSON parameters are the defaults, so simply sending a HTTP POST request with the body field to
localhost:3000/linkentry would yield the same result.
The NNexus legacy API is being redesigned at the moment, into a simple pair of indexing and linking workflows. TODO: Describe the new API when finalized.
Status
This is a fork and rewrite of the original NNexus code by James Gardner (pebbler@gmail.com). The current refactoring is pre-alpha and is under active development. Watch this space for frequent updates.
The scheduled release for the "NNexus Reloaded" milestone is June 2013. The release will target introducing a new CPAN library and production deployment at PlanetMath.org
Contact
For any questions and support requests, contact the current package maintainer: Deyan Ginev (d.ginev@jacobs-university.de)