https://github.com/ammar257ammar/nanopub-server
A simple server to publish nanopublications
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.1%) to scientific vocabulary
Last synced: 6 months ago
·
JSON representation
Repository
A simple server to publish nanopublications
Basic Info
- Host: GitHub
- Owner: ammar257ammar
- License: mit
- Default Branch: master
- Size: 250 KB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of tkuhn/nanopub-server
Created over 4 years ago
· Last pushed almost 5 years ago
https://github.com/ammar257ammar/nanopub-server/blob/master/
Nanopub Server
==============
This is an implementation of a nanopublication server. Such servers form a
server network, which can be used to publish
[nanopublications](http://nanopub.org) that have [trusty
URIs](http://arxiv.org/abs/1401.5775). (Such a server only returns entire
nanopubs. No queries supported; no triple store involved.)
Nanopublications are tiny snippets of data with provenance information attached.
They can be organized in a very flexible manner into large datasets (which can
also be described as nanopublications). More details can be found in the
publications listed below.
To access the server network, the
[nanopub-java](https://github.com/Nanopublication/nanopub-java) library can be
used.
Publications
------------
The following publications explain the approach:
- Kuhn et al. Publishing without Publishers: a Decentralized Approach to
Dissemination, Retrieval, and Archiving of Data. In Proceedings of the 14th
International Semantic Web Conference (ISWC) 2015.
http://arxiv.org/abs/1411.2749
- Kuhn et al. Decentralized provenance-aware publishing with nanopublications.
PeerJ Preprints. https://peerj.com/preprints/1760/
- Kuhn. nanopub-java: A Java Library for Nanopublications. In Proceedings of the
5th Workshop on Linked Science (LISC 2015). http://arxiv.org/abs/1508.04977
Current Network
---------------
Have a look at this nanopub monitor ([source
code](https://github.com/tkuhn/nanopub-monitor)) to see the current nanopub
server network:
- Nanopub Monitor:
- http://app.tkuhn.eculture.labs.vu.nl/nanopub-monitor/
From that monitor page, you can find the URLs of the current servers in the
network, for example this one:
- Example of a nanopub servers:
- http://server.nanopubs.lod.labs.vu.nl/
- https://server.nanopubs.knows.idlab.ugent.be/
Deployment
----------
### Easy Deployment with Docker
Requirements:
- Docker 1.10 or higher
- Docker-compose 1.6 or higher
After cloning the repository, execute:
$ docker-compose up
Config can be changed by passing environment variables prefixed with `NPS_`.
E.g. setting `mongodb.host` is done via variable `NPS_MONGODB_HOST`.
### Manual Compilation and Deployment
Requirements:
- Java 1.7 or higher
- Access to a MongoDB instance
- Disk space of up to around 15kB per nanopublication (10-11kB is average so
far, but this value might change; the current size of the network can be seen
here: http://npmonitor.inn.ac/)
In addition, we assume here that Git and Maven are installed (tested with
Maven version 3; version 2.0.9 might work too).
Now you can fetch the code for the nanopub server:
$ git clone https://github.com/tkuhn/nanopub-server.git
To configure the server, make a copy of the configuration file with the prefix
`local.`, which overrides the main configuration file:
$ cd nanopub-server/src/main/resources/ch/tkuhn/nanopub/server/
$ cp conf.properties local.conf.properties
Edit the file `local.conf.properties` to configure your instance of the server,
and then compile it (run in the top `nanopub-server` directory):
$ mvn package
(Depending on the state of this repository, you might also have to install
the latest snapshot version of https://github.com/Nanopublication/nanopub-java
with `git clone ...` and `mvn install`.)
Then you can run the nanopub server using Maven's Jetty plugin:
$ mvn jetty:run
Now you should be able to locally access the server from your browser:
http://0.0.0.0:8080/nanopub-server/
Alternatively, you can give the file `target/nanopub-server.war` to a web
application server such as Apache Tomcat. Then you can setup your web
server to map a public URL to the nanopub server, for example:
http://example.org/np/ > http://0.0.0.0:8080/nanopub-server/
Add the public URL to the line `public-url=` of the configuration file and
recompile and restart the server. Then, it will connect to the server network.
Usage
-----
Usage is pretty straightforward when you look at the web interface that a
nanopub server provides. To retrieve a nanopub like
http://example.org/mynanopubs/RAPpJU5UOB4pavfWyk7FE3WQiam5yBpmIlviAQWtBSC4M
the artifact code (last 45 characters) has to be given to the nanopub server
like this:
http://example.org/np/RAPpJU5UOB4pavfWyk7FE3WQiam5yBpmIlviAQWtBSC4M
File extensions can be used to retrieve the nanopub in different formats:
http://example.org/np/RAPpJU5UOB4pavfWyk7FE3WQiam5yBpmIlviAQWtBSC4M.trig
http://example.org/np/RAPpJU5UOB4pavfWyk7FE3WQiam5yBpmIlviAQWtBSC4M.nq
http://example.org/np/RAPpJU5UOB4pavfWyk7FE3WQiam5yBpmIlviAQWtBSC4M.xml
Depending on your browser settings, these URLs might open in an external editor
or you might have to download them. In order to view them directly in the
browser, `.txt` can be appended:
http://example.org/np/RAPpJU5UOB4pavfWyk7FE3WQiam5yBpmIlviAQWtBSC4M.nq.txt
License
-------
This nanopub server is free software under the MIT License. See LICENSE.txt.
Owner
- Name: Ammar Ammar
- Login: ammar257ammar
- Kind: user
- Location: The Netherlands
- Company: Maastricht University
- Repositories: 14
- Profile: https://github.com/ammar257ammar