A CouchDB powered data registry for semantic linked data packages.
Inspired by the npm registry but different because:
- build from the start for linked data
- packages are served as JSON-LD or JSON interpreded as JSON-LD and using the semantic of schema.org
- semantic search is supported
A client is in development here.
This module uses gm so first you need to download and install GraphicsMagick or ImageMagick.
Get a JSON array of all the versions of the package with name :pkgname.
Download a package of name :pkgname and
version :version as
JSON interpreded as JSON-LD. If
version is latest, the latest version is returned.
Version range can be specified as an
(encoreURIComponent)
range passed as query string parameter range.
If a package contains inline data, by default the inline data are
not returned unless the query string parameter contentData is
set to true.
Download metadata from a dataset named :dataset from a
package with name :pkgname and version
:version. Version can be specifyied as latest and a qery
string parameter range.
Download metadata from a code entry named :code from a
package with name :pkgname and version
:version. Version can be specifyied as latest and a qery
string parameter range.
Download metadata from a figure named :figure from a package
with name :pkgname and version
:version. Version can be specifyied as latest and a qery
string parameter range.
Download metadata from a article named :article from a package
with name :pkgname and version
:version. Version can be specifyied as latest and a qery
string parameter range.
data:
{
name: name,
salt: salt,
password_sha: sha(password+salt),
email: email
}
Create an user of username :name.
data: Document with attachments in multipart/related format as needed by CouchDb. See CouchDB multiple attachments for details. You might want to look at the couch-multipart-stream node module.
Publish a specific :version of the package of name :pkgname.
Delete package of name :pkgname and version
:version. If version is omitted all the versions are deleted.
List the maintainers of package of name :pkgname.
data:
{
username: name,
pkgname: pkgname
}
Add maintainer :name to the package :pkgname.
data:
{
username: name,
pkgname: pkgname
}
Remove maintainer :name from the package :pkgname.
Search by keywords.
couchdb
npm run push
npm start
npm test
GPL version 3 or any later version.