GitHub - dginev/nnexus: Auto-linking for Mathematical Concepts for PlanetMath.org, Wikipedia, and beyond. (original) (raw)
NNexus
Installation
Just execute cpan NNexus
(or cpanm
if you're a cpanminus lover) to obtain the full distribution.
Description
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).
License
NNexus is free, libre, open-source software, under the MIT license.
Example use
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.
Documentation
The Manual draft contains a technical overview of the NNexus system.
For installation and deployment, consult the INSTALL file.
Demos
nnexusglasses.user.js is aUserscript 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.
Using NNexus as a Web Service
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(data = 'body=' . urlencode(data=′body=′.urlencode(text) . '&format='.$format.'&domain=Planetmath'; content=planetarywebgluedopost(′http://127.0.0.1:3000/linkentry′,content = planetary_webglue_do_post('http://127.0.0.1:3000/linkentry',content=planetarywebgluedopost(′http://127.0.0.1:3000/linkentry′,data);
NNexus API
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.
Status
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.
Contact
For any questions and support requests, contact the current package maintainer: Deyan Ginev (d.ginev@jacobs-university.de)