Just execute cpan NNexus
(or cpanm
if you're a cpanminus lover) to obtain the full distribution.
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, under the MIT license.
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.
nnexusglasses.user.js is a Userscript that you can use to add links to math terms in any web page!
A showcase web service is maintained under https://nnexus.mathweb.org
All NNexus demos follow the KWARC privacy policy.
curl -d "An abelian group example." https://nnexus.mathweb.org
Returns:
{"status":"OK","payload":"An <a class=\"nnexus_concepts\" href=\"javascript:void(0)\" onclick=\"this.nextSibling.style.display='inline'\">abelian group<\/a><sup style=\"display: none;\"><a class=\"nnexus_concept\" href=\"http:\/\/mathworld.wolfram.com\/AbelianGroup.html\"><img src=\"http:\/\/mathworld.wolfram.com\/favicon_mathworld.png\" alt=\"Mathworld\"><\/img><\/a><a class=\"nnexus_concept\" href=\"http:\/\/planetmath.org\/abeliangroup\"><img src=\"http:\/\/planetmath.org\/sites\/default\/files\/fab-favicon.ico\" alt=\"Planetmath\"><\/img><\/a><\/sup> example.","message":"No obvious problems."}
These two lines of PHP illustrate how NNexus can be used within a program; see Planetary for more details.
$data = 'body=' . urlencode($text) . '&format='.$format.'&domain=Planetmath';
$content = planetary_webglue_do_post('http://127.0.0.1:3000/linkentry',$data);
The NNexus legacy API has been redesigned, into a simple pair of indexing and linking workflows, detailed in the "Indexing Framework" and "Annotation Schemes" chapters in the manual.
This is a fork and rewrite of the original NNexus code by James Gardner (pebbler@gmail.com). Watch this space for frequent updates.
The current development emphasis falls on improving linking accuracy as well as maintenance patches.
For any questions and support requests, contact the current package maintainer: Deyan Ginev (d.ginev@jacobs-university.de)