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.