https://github.com/planeshifter/node-concept-net
node.js interface to the ConceptNet semantic network API [DEPRECATED; ConceptNet API has changed]
https://github.com/planeshifter/node-concept-net
Last synced: over 1 year ago
JSON representation
node.js interface to the ConceptNet semantic network API [DEPRECATED; ConceptNet API has changed]
- Host: GitHub
- URL: https://github.com/planeshifter/node-concept-net
- Owner: Planeshifter
- License: mit
- Created: 2014-07-04T10:43:55.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2017-10-05T18:02:36.000Z (over 8 years ago)
- Last Synced: 2025-03-18T05:11:44.859Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 118 KB
- Stars: 30
- Watchers: 4
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![NPM version][npm-image]][npm-url]
[![Build Status][travis-image]][travis-url]
[![Coverage Status][coveralls-image]][coveralls-url]
[![Dependencies][dependencies-image]][dependencies-url]
ConceptNet
===============
node.js interface to the ConceptNet semantic network API. For further information, consult the website of the project:
[http://conceptnet5.media.mit.edu/](http://conceptnet5.media.mit.edu/).
# Introduction
The ConceptNet package can be easily installed via npm:
```
npm install concept-net
```
To require the module in a project, we can use the expression:
```javascript
var ConceptNet = require( 'concept-net' );
```
# Getting Started
The module exports a single constructor which can be used to open an API connection. Simply call it an store the
expression result in a variable:
```javascript
var conceptNet = ConceptNet();
```
In case that you are running an own copy of the ConceptNet server, the constructor takes the hostname of the
server as an optional argument. The default option evaluates to "conceptnet5.media.mit.edu:80".
```javascript
ConceptNet( '', '', '' );
```
Example:
```javascript
var conceptNet = ConceptNet( '10.0.0.1', '10053', '5.3' );
```
Note you can modify only the version by just passing null to the first two arguments:
```javascript
var conceptNet = ConceptNet( null, null, '5.3' );
```
We can then use the following three methods to query the ConceptNet API:
## Methods
### `.lookup( uri[, params], callback )`
This method expects a valid ConceptNet URI as its first argument. See [the documentation](https://github.com/commonsense/conceptnet5/wiki/URI-hierarchy).
Params is an (optional) object that specifies the arguments of the GET request. It can have the keys *limit*, *offset* and
*filter*. The callback function has two parameters: The *err* parameter will return error objects in case that something goes
wrong during the function invocation. If the query is successful, *err* is `undefined` and the *result* parameter holds the result set from the query.
Example code:
```javascript
conceptNet.lookup( '/c/en/toast', {
limit: 10,
offset: 0,
filter: 'core'
}, function onDone( err, result ) {
// insert code here
})
```
### `.getURI( text[, language], callback )`
This method finds out what the [ConceptNet URI](https://github.com/commonsense/conceptnet5/wiki/API#uri-standardization) is for a given text, applying steps such as reducing English words to their root form. The `language` parameter can be supplied a code for the language to use. If only two arguments are supplied, `language` is set to the default value `en`.
Example code:
```javascript
conceptNet.getURI( 'ground beef', 'en', function onDone( err, result ) {
// insert code here
})
```
### `.search( params, callback )`
The search method takes a parameter object and hands the retrieved results to the callback function.
The official ConceptNet API documentation provides a full overview of the possible search parameters:
[ConceptNet API documentation](https://github.com/commonsense/conceptnet5/wiki/API#search).
Example code:
```javascript
conceptNet.search({
start: '/c/en/donut'
}, function onDone( err, result ) {
// insert code here
})
```
### `.association( input[, params], callback )`
The association method takes as its first input either a valid ConceptNet URI or a `/list//`
path.
Example code:
```javascript
conceptNet.association( '/c/en/hotdog', {
limit: 10,
filter: '/c/en/donut'
}, function onDone( err, result ){
// insert code here
})
```
## Unit Tests
Run tests via the command `npm test`
---
## License
[MIT license](http://opensource.org/licenses/MIT).
[npm-image]: https://badge.fury.io/js/concept-net.svg
[npm-url]: http://badge.fury.io/js/concept-net
[travis-image]: https://travis-ci.org/Planeshifter/node-concept-net.svg
[travis-url]: https://travis-ci.org/Planeshifter/node-concept-net
[coveralls-image]: https://img.shields.io/coveralls/Planeshifter/node-concept-net/master.svg
[coveralls-url]: https://coveralls.io/r/Planeshifter/node-concept-net?branch=master
[dependencies-image]: http://img.shields.io/david/Planeshifter/node-concept-net.svg
[dependencies-url]: https://david-dm.org/Planeshifter/node-concept-net