SlideShare a Scribd company logo
nanopub-java:
A Java Library for Nanopublications
Tobias Kuhn
http://www.tkuhn.org
@txkuhn
VU University Amsterdam
5th Workshop on Linked Science (LISC) 2015
at ISWC 2015, Bethlehem, Pennsylvania, USA
12 October 2015
The nanopub-java Library
https://github.com/Nanopublication/nanopub-java
This library can be useful in a number of scenarios:
• To represent and share chunks of data in RDF in a
provenance-aware manner (as nanopublications)
• To make RDF content verifiable and immutable (with trusty
URIs)
• To define large or small datasets of RDF content where the
data entries can be individually addressed and recombined in
new datasets (with nanopublication indexes)
• To quickly publish RDF snippets in a verifiable and permanent
manner (relying on an existing server network)
• To retrieve existing nanopublications from the network
(5 millions and counting)
• To digitally sign RDF snippets (experimental)
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 2 / 19
Nanopublications: Linked Data Containers for
Provenance-Aware Semantic Publishing
assertion
provenance
publication info
nanopublication
http://nanopub.org / @nanopub org
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 3 / 19
Nanopublication Example
sub:assertion {
sub:_3 a rdf:Statement ; rdf:subject schem:Adenosine%20triphosphate ;
rdf:predicate belv:decreases ; rdf:object sub:_1 ;
occursIn: obo:UBERON_0001134 , species:9606 .
sub:_1 a go:0003824 ; hasAgent: sub:_2 .
sub:_2 a Protein: ; geneProductOf: hgnc:12517 .
}
sub:provenance {
sub:assertion prov:hadPrimarySource pubmed:9703368 ;
prov:wasDerivedFrom beldoc: , sub:_4 .
beldoc: dce:description "Approximately 61,000 statements." ;
dce:rights "Copyright (c) 2011-2012, Selventa. All rights reserved." ;
dce:title "BEL Framework Large Corpus Document" ;
pav:authoredBy sub:_5 ; pav:version "20131211" .
sub:_4 prov:value "UCP1 contains six potential transmembrane a-helices (72) and
prov:wasQuotedFrom pubmed:9703368 .
sub:_5 rdfs:label "Selventa" .
}
sub:pubinfo {
this: dct:created "2014-07-03T14:34:13.226+02:00"^^xsd:dateTime ;
pav:createdBy orcid:0000-0001-6818-334X , orcid:0000-0002-1267-0234 .
}
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 4 / 19
Nanopublication Schema
np:Nanopublication rdf:type owl:Class.
np:Assertion rdfs:subClassOf rdfg:Graph.
np:Provenance rdfs:subClassOf rdfg:Graph.
np:PublicationInfo rdfs:subClassOf rdfg:Graph.
np:hasAssertion a owl:FunctionalProperty.
np:hasAssertion rdfs:domain np:Nanopublication.
np:hasAssertion rdfs:range np:Assertion.
np:hasProvenance a owl:FunctionalProperty.
np:hasProvenance rdfs:domain np:Nanopublication.
np:hasProvenance rdfs:range np:Provenance.
np:hasPublicationInfo a owl:FunctionalProperty.
np:hasPublicationInfo rdfs:domain np:Nanopublication.
np:hasPublicationInfo rdfs:range np:PublicationInfo.
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 5 / 19
Nanopublication Guidelines
We need libraries to enforce and check this!
http://nanopub.org/guidelines/working_draft/
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 6 / 19
check / CheckNanopub
Reads a nanopublication or several of them and checks whether any
of the well-formedness criteria are violated:
$ np check nanopubfile.trig
Summary: 3 valid (not trusty);
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 7 / 19
Trusty URIs: Cryptographic Hash Values for
Nanopublication Identifiers
Nanopublications with Trusty URIs are ...
Verifiable
+
Immutable
+
Permanent
.trighttp://example.org/r1. RA 5AbXdpz5DcaYXCh9l3eI9ruBosiL5XDU3rxBbBaUO70
http://trustyuri.net/
Kuhn, Dumontier. Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linked Data. ESWC 2014.
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 8 / 19
mktrusty / MakeTrustyNanopub
Takes a non-trusty nanopublication and transforms it into one with
a newly created trusty URI:
$ np mktrusty nanopubfile.trig
or:
$ np mktrusty -v nanopubfile.trig
Nanopub URI: http://example.org/np1#RAHGB0WzgQijR88g rIwtP
Nanopub URI: http://example.org/np2#RA4xTdhe2gPctqvAwdgTU4
Nanopub URI: http://example.org/np3#RAEjvXP0xTkeIa2mKmYT66
This generates a file trusty.nanopubfile.trig:
$ np check trusty.nanopubfile.trig
Summary: 3 trusty (unsigned);
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 9 / 19
Decentralized and Reliable Publishing with a
Nanopublication Server Network
Nanopublications
with Trusty URIs
Publication
Retrieval
Propagation /
Archiving
http://npmonitor.inn.ac
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 10 / 19
publish / PublishNanopub
Uploads trusty nanopublications to the server network, and they
are then distributed among the servers of the network:
$ np publish trusty.nanopubfile.trig
3 nanopubs published at http://np.inn.ac/
In this way, a nanopublication is made permanent and its publication
cannot be undone.
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 11 / 19
status / NanopubStatus
Checks whether and how often a given nanopublication (identified by
its trusty URI) is found on the server network:
$ np status -a http://example.org/np1#RAHGB0WzgQijR88g rIw
URL: http://np.inn.ac/RAHGB0WzgQijR88g rIwtPCmzYgyO4wRMT7M
URL: http://ristretto.med.yale.edu:8080/nanopub-server/RAH
URL: http://nanopub-server.ops.labs.vu.nl/RAHGB0WzgQijR88g
URL: http://nanopubs.stanford.edu/nanopub-server/RAHGB0Wzg
URL: http://nanopubs.semanticscience.org/RAHGB0WzgQijR88g
Found on 5 nanopub servers.
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 12 / 19
get / GetNanopub
Retrieves given nanopublications from the server network, and
verifies them according to their trusty URIs (only verified
nanopublications are returned):
$ np get http://www.tkuhn.ch/bel2nanopub/RAhV9IpiUEjbentzG
or:
$ np get RAhV9IpiUEjbentzGivp1Lbx0BVegp5sgE3BwS0S2RAYM
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 13 / 19
Defining Datasets with Nanopublication Indexes
(which are themselves Nanopublications)
appends
has sub-index
has
element
(a) (b)
(c) (f)
(d) (e)
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 14 / 19
mkindex / MakeIndex
Takes a list of nanopublications and creates an index that refers to
them (which itself consists of one or more nanopublications):
$ np mkindex trusty.nanopubfile.trig
Index URI: http://np.inn.ac/RAFa x4h0ng NXtof35Ie9pQVsAY69
This creates a new file index.nanopubfile.trig containing the
index nanopublication(s).
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 15 / 19
Publishing / Retrieving Indexes
As indexes are also nanopublications, we can publish them in the
same way:
$ np publish index.nanopubfile.trig
1 nanopub published at http://np.inn.ac/
Retrieving the content of a nanopublication index (and not just the
top-most index nanopublication) with argument -c:
$ np get -c http://np.inn.ac/RAFa x4h0ng NXtof35Ie9pQVsAY6
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 16 / 19
Web Interface: http://nanopub.inn.ac
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 17 / 19
sign / SignNanopub (experimental)
Takes a nanopublication and digitally signs it with a given private
key.
Create a key pair:
$ np mkkeys
Digitally sign nanopublications (and make them trusty):
$ np sign nanopubfile.trig
This creates a file signed.nanopubfile.trig, which we can now
check:
$ np check signed.nanopubfile.trig
Summary: 3 signed and trusty;
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 18 / 19
Thank you for your attention!
Questions?
Further information:
• Paper for this talk: http://arxiv.org/abs/1508.04977
• Nanopublications: http://nanopub.org
• Trusty URIs: http://trustyuri.net
Come to my presentation at the main conference: Thursday, 15
October, 11:00 in the Scientific Data track: Publishing without
Publishers: a Decentralized Approach to Dissemination, Retrieval,
and Archiving of Data
Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 19 / 19

More Related Content

PDF
The Nature.com ontologies portal - Linked Science 2015
PDF
DH11: Browsing Highly Interconnected Humanities Databases Through Multi-Resul...
PPTX
The nature.com ontologies portal: nature.com/ontologies
PDF
Linked data experience at Macmillan: Building discovery services for scientif...
PDF
Maximising (Re)Usability of Library metadata using Linked Data
PDF
Illuminating DSpace's Linked Data Support
PDF
Using the whole web as your dataset
PPTX
Repeatable Semantic Queries for the Linked Data Agnostic
The Nature.com ontologies portal - Linked Science 2015
DH11: Browsing Highly Interconnected Humanities Databases Through Multi-Resul...
The nature.com ontologies portal: nature.com/ontologies
Linked data experience at Macmillan: Building discovery services for scientif...
Maximising (Re)Usability of Library metadata using Linked Data
Illuminating DSpace's Linked Data Support
Using the whole web as your dataset
Repeatable Semantic Queries for the Linked Data Agnostic

What's hot (20)

PDF
20170501 Distributed Network of Digital Heritage Information
PPTX
grlc Makes GitHub Taste Like Linked Data APIs
PDF
Cenitpede: Analyzing Webcrawl
PPTX
ResourceSync Tutorial
PDF
Nanopublications and Decentralized Publishing
PPTX
Linked Open Data and DANS
 
PPTX
Linked Data as an enabling framework for resource discovery across libraries,...
PPTX
Seamless access to the world’s open access research papers via ResourceSync
PDF
Web of Data Usage Mining
PPTX
DataverseNL as structured data hub
 
PDF
Open data and linked data
PDF
Do it on your own - From 3 to 5 Star Linked Open Data with RMLio
PPTX
Making social science more reproducible by encapsulating access to linked data
PPTX
Bringing Digital Humanities to the wider public: libraries as incubator for D...
PPT
Uk discovery-jisc-project-showcase
PDF
The Web of Data is Our Opportunity
PPTX
Ruby on Rails and the Semantic Web
PPTX
SWIB14 Weaving repository contents into the Semantic Web
ODP
State of the Semantic Web
PPTX
Signposting for Repositories
20170501 Distributed Network of Digital Heritage Information
grlc Makes GitHub Taste Like Linked Data APIs
Cenitpede: Analyzing Webcrawl
ResourceSync Tutorial
Nanopublications and Decentralized Publishing
Linked Open Data and DANS
 
Linked Data as an enabling framework for resource discovery across libraries,...
Seamless access to the world’s open access research papers via ResourceSync
Web of Data Usage Mining
DataverseNL as structured data hub
 
Open data and linked data
Do it on your own - From 3 to 5 Star Linked Open Data with RMLio
Making social science more reproducible by encapsulating access to linked data
Bringing Digital Humanities to the wider public: libraries as incubator for D...
Uk discovery-jisc-project-showcase
The Web of Data is Our Opportunity
Ruby on Rails and the Semantic Web
SWIB14 Weaving repository contents into the Semantic Web
State of the Semantic Web
Signposting for Repositories
Ad

Viewers also liked (20)

PPTX
Naughty And Nice Bash Features
PPTX
Commands[1]
PPTX
Conquistar es imposible
PDF
Flip video communication
PDF
Webconferencing adobe e-learning_day_2011_stoller-schai
DOCX
Debtanu_cv
PDF
La BolsaenelañO2009
DOC
REGLAMENTO CUATREADA BACH
PPSX
Amor eterno
DOCX
Integradora I portafolio joran abelino
PDF
Le zanzare sono un tormento? Vediamo come difenderci
PDF
Marktforschung mit einfachen Mitteln
PDF
Stki summit2013 infra_pini sigaltechnologies_v5 final
PPT
Tema 2. la revolución industrial
PDF
Minuta acensores empresa schindler 03 21-07-2011
DOCX
Primer programador piedras preciosas
PPT
La oreja Roja
DOCX
Resumen el trabajo colaborativo mediante redes
PDF
oiml_bulletin_april_2015
PDF
Sales agent spain job description español
Naughty And Nice Bash Features
Commands[1]
Conquistar es imposible
Flip video communication
Webconferencing adobe e-learning_day_2011_stoller-schai
Debtanu_cv
La BolsaenelañO2009
REGLAMENTO CUATREADA BACH
Amor eterno
Integradora I portafolio joran abelino
Le zanzare sono un tormento? Vediamo come difenderci
Marktforschung mit einfachen Mitteln
Stki summit2013 infra_pini sigaltechnologies_v5 final
Tema 2. la revolución industrial
Minuta acensores empresa schindler 03 21-07-2011
Primer programador piedras preciosas
La oreja Roja
Resumen el trabajo colaborativo mediante redes
oiml_bulletin_april_2015
Sales agent spain job description español
Ad

Similar to nanopub-java: A Java Library for Nanopublications (9)

PDF
A Decentralized Approach to Dissemination, Retrieval, and Archiving of Data
PDF
Linked Data Publishing with Nanopublications
PDF
Semantic Publishing and Nanopublications
PDF
Nanopubs
PDF
Publishing without Publishers: a Decentralized Approach to Dissemination, Ret...
PDF
Semantic Publishing with Nanopublications
PDF
A Decentralized Network for Publishing Linked Data — Nanopublications, Trusty...
PDF
Scientific Data Publishing
PDF
Data Publishing and Post-Publication Reviews
A Decentralized Approach to Dissemination, Retrieval, and Archiving of Data
Linked Data Publishing with Nanopublications
Semantic Publishing and Nanopublications
Nanopubs
Publishing without Publishers: a Decentralized Approach to Dissemination, Ret...
Semantic Publishing with Nanopublications
A Decentralized Network for Publishing Linked Data — Nanopublications, Trusty...
Scientific Data Publishing
Data Publishing and Post-Publication Reviews

More from Tobias Kuhn (20)

PDF
Genuine semantic publishing
PDF
The Controlled Natural Language of Randall Munroe’s Thing Explainer
PDF
Science Bots: A Model for the Future of Scientific Computation?
PDF
Meme Extraction from Corpora of Scientific Literature using Citation Networks
PDF
A Multilingual Semantic Wiki Based on Controlled Natural Language
PDF
Citation Graph Analysis to Identify Memes in Scientific Literature
PDF
Citation Graph Analysis to Identify Memes in Scientific Literature
PDF
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...
PDF
Automatische Übersetzung in einem multilingualen, semantischen Wiki
PDF
A Multilingual Semantic Wiki based on Attempto Controlled English and Grammat...
PDF
A Multilingual Semantic Wiki based on Attempto Controlled English and Grammat...
PDF
Improving Text Mining with Controlled Natural Language: A Case Study for Prot...
PDF
AceRules: Executing Rules in Controlled Natural Language
PDF
AceWiki: A Natural and Expressive Semantic Wiki
PDF
AceWiki: Controlled English in a Semantic Wiki
PDF
How Controlled English can Improve Semantic Wikis
PDF
How to Evaluate Controlled Natural Languages
PDF
Wissensrepräsentation in kontrolliertem Englisch
PDF
An Introduction to AceWiki
PDF
Codeco: A Grammar Notation for Controlled Natural Language in Predictive Editors
Genuine semantic publishing
The Controlled Natural Language of Randall Munroe’s Thing Explainer
Science Bots: A Model for the Future of Scientific Computation?
Meme Extraction from Corpora of Scientific Literature using Citation Networks
A Multilingual Semantic Wiki Based on Controlled Natural Language
Citation Graph Analysis to Identify Memes in Scientific Literature
Citation Graph Analysis to Identify Memes in Scientific Literature
Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linke...
Automatische Übersetzung in einem multilingualen, semantischen Wiki
A Multilingual Semantic Wiki based on Attempto Controlled English and Grammat...
A Multilingual Semantic Wiki based on Attempto Controlled English and Grammat...
Improving Text Mining with Controlled Natural Language: A Case Study for Prot...
AceRules: Executing Rules in Controlled Natural Language
AceWiki: A Natural and Expressive Semantic Wiki
AceWiki: Controlled English in a Semantic Wiki
How Controlled English can Improve Semantic Wikis
How to Evaluate Controlled Natural Languages
Wissensrepräsentation in kontrolliertem Englisch
An Introduction to AceWiki
Codeco: A Grammar Notation for Controlled Natural Language in Predictive Editors

Recently uploaded (20)

PPTX
2. Earth - The Living Planet Module 2ELS
PPTX
Cell Membrane: Structure, Composition & Functions
PDF
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
PDF
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
PPTX
7. General Toxicologyfor clinical phrmacy.pptx
PPT
protein biochemistry.ppt for university classes
PPTX
DRUG THERAPY FOR SHOCK gjjjgfhhhhh.pptx.
PPTX
Derivatives of integument scales, beaks, horns,.pptx
PDF
Placing the Near-Earth Object Impact Probability in Context
PPT
The World of Physical Science, • Labs: Safety Simulation, Measurement Practice
PPTX
neck nodes and dissection types and lymph nodes levels
PDF
HPLC-PPT.docx high performance liquid chromatography
PPTX
famous lake in india and its disturibution and importance
PPTX
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
PDF
Biophysics 2.pdffffffffffffffffffffffffff
PDF
Unveiling a 36 billion solar mass black hole at the centre of the Cosmic Hors...
PDF
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
PDF
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
PPTX
TOTAL hIP ARTHROPLASTY Presentation.pptx
PPTX
Taita Taveta Laboratory Technician Workshop Presentation.pptx
2. Earth - The Living Planet Module 2ELS
Cell Membrane: Structure, Composition & Functions
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
7. General Toxicologyfor clinical phrmacy.pptx
protein biochemistry.ppt for university classes
DRUG THERAPY FOR SHOCK gjjjgfhhhhh.pptx.
Derivatives of integument scales, beaks, horns,.pptx
Placing the Near-Earth Object Impact Probability in Context
The World of Physical Science, • Labs: Safety Simulation, Measurement Practice
neck nodes and dissection types and lymph nodes levels
HPLC-PPT.docx high performance liquid chromatography
famous lake in india and its disturibution and importance
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
Biophysics 2.pdffffffffffffffffffffffffff
Unveiling a 36 billion solar mass black hole at the centre of the Cosmic Hors...
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
TOTAL hIP ARTHROPLASTY Presentation.pptx
Taita Taveta Laboratory Technician Workshop Presentation.pptx

nanopub-java: A Java Library for Nanopublications

  • 1. nanopub-java: A Java Library for Nanopublications Tobias Kuhn http://www.tkuhn.org @txkuhn VU University Amsterdam 5th Workshop on Linked Science (LISC) 2015 at ISWC 2015, Bethlehem, Pennsylvania, USA 12 October 2015
  • 2. The nanopub-java Library https://github.com/Nanopublication/nanopub-java This library can be useful in a number of scenarios: • To represent and share chunks of data in RDF in a provenance-aware manner (as nanopublications) • To make RDF content verifiable and immutable (with trusty URIs) • To define large or small datasets of RDF content where the data entries can be individually addressed and recombined in new datasets (with nanopublication indexes) • To quickly publish RDF snippets in a verifiable and permanent manner (relying on an existing server network) • To retrieve existing nanopublications from the network (5 millions and counting) • To digitally sign RDF snippets (experimental) Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 2 / 19
  • 3. Nanopublications: Linked Data Containers for Provenance-Aware Semantic Publishing assertion provenance publication info nanopublication http://nanopub.org / @nanopub org Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 3 / 19
  • 4. Nanopublication Example sub:assertion { sub:_3 a rdf:Statement ; rdf:subject schem:Adenosine%20triphosphate ; rdf:predicate belv:decreases ; rdf:object sub:_1 ; occursIn: obo:UBERON_0001134 , species:9606 . sub:_1 a go:0003824 ; hasAgent: sub:_2 . sub:_2 a Protein: ; geneProductOf: hgnc:12517 . } sub:provenance { sub:assertion prov:hadPrimarySource pubmed:9703368 ; prov:wasDerivedFrom beldoc: , sub:_4 . beldoc: dce:description "Approximately 61,000 statements." ; dce:rights "Copyright (c) 2011-2012, Selventa. All rights reserved." ; dce:title "BEL Framework Large Corpus Document" ; pav:authoredBy sub:_5 ; pav:version "20131211" . sub:_4 prov:value "UCP1 contains six potential transmembrane a-helices (72) and prov:wasQuotedFrom pubmed:9703368 . sub:_5 rdfs:label "Selventa" . } sub:pubinfo { this: dct:created "2014-07-03T14:34:13.226+02:00"^^xsd:dateTime ; pav:createdBy orcid:0000-0001-6818-334X , orcid:0000-0002-1267-0234 . } Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 4 / 19
  • 5. Nanopublication Schema np:Nanopublication rdf:type owl:Class. np:Assertion rdfs:subClassOf rdfg:Graph. np:Provenance rdfs:subClassOf rdfg:Graph. np:PublicationInfo rdfs:subClassOf rdfg:Graph. np:hasAssertion a owl:FunctionalProperty. np:hasAssertion rdfs:domain np:Nanopublication. np:hasAssertion rdfs:range np:Assertion. np:hasProvenance a owl:FunctionalProperty. np:hasProvenance rdfs:domain np:Nanopublication. np:hasProvenance rdfs:range np:Provenance. np:hasPublicationInfo a owl:FunctionalProperty. np:hasPublicationInfo rdfs:domain np:Nanopublication. np:hasPublicationInfo rdfs:range np:PublicationInfo. Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 5 / 19
  • 6. Nanopublication Guidelines We need libraries to enforce and check this! http://nanopub.org/guidelines/working_draft/ Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 6 / 19
  • 7. check / CheckNanopub Reads a nanopublication or several of them and checks whether any of the well-formedness criteria are violated: $ np check nanopubfile.trig Summary: 3 valid (not trusty); Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 7 / 19
  • 8. Trusty URIs: Cryptographic Hash Values for Nanopublication Identifiers Nanopublications with Trusty URIs are ... Verifiable + Immutable + Permanent .trighttp://example.org/r1. RA 5AbXdpz5DcaYXCh9l3eI9ruBosiL5XDU3rxBbBaUO70 http://trustyuri.net/ Kuhn, Dumontier. Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linked Data. ESWC 2014. Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 8 / 19
  • 9. mktrusty / MakeTrustyNanopub Takes a non-trusty nanopublication and transforms it into one with a newly created trusty URI: $ np mktrusty nanopubfile.trig or: $ np mktrusty -v nanopubfile.trig Nanopub URI: http://example.org/np1#RAHGB0WzgQijR88g rIwtP Nanopub URI: http://example.org/np2#RA4xTdhe2gPctqvAwdgTU4 Nanopub URI: http://example.org/np3#RAEjvXP0xTkeIa2mKmYT66 This generates a file trusty.nanopubfile.trig: $ np check trusty.nanopubfile.trig Summary: 3 trusty (unsigned); Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 9 / 19
  • 10. Decentralized and Reliable Publishing with a Nanopublication Server Network Nanopublications with Trusty URIs Publication Retrieval Propagation / Archiving http://npmonitor.inn.ac Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 10 / 19
  • 11. publish / PublishNanopub Uploads trusty nanopublications to the server network, and they are then distributed among the servers of the network: $ np publish trusty.nanopubfile.trig 3 nanopubs published at http://np.inn.ac/ In this way, a nanopublication is made permanent and its publication cannot be undone. Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 11 / 19
  • 12. status / NanopubStatus Checks whether and how often a given nanopublication (identified by its trusty URI) is found on the server network: $ np status -a http://example.org/np1#RAHGB0WzgQijR88g rIw URL: http://np.inn.ac/RAHGB0WzgQijR88g rIwtPCmzYgyO4wRMT7M URL: http://ristretto.med.yale.edu:8080/nanopub-server/RAH URL: http://nanopub-server.ops.labs.vu.nl/RAHGB0WzgQijR88g URL: http://nanopubs.stanford.edu/nanopub-server/RAHGB0Wzg URL: http://nanopubs.semanticscience.org/RAHGB0WzgQijR88g Found on 5 nanopub servers. Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 12 / 19
  • 13. get / GetNanopub Retrieves given nanopublications from the server network, and verifies them according to their trusty URIs (only verified nanopublications are returned): $ np get http://www.tkuhn.ch/bel2nanopub/RAhV9IpiUEjbentzG or: $ np get RAhV9IpiUEjbentzGivp1Lbx0BVegp5sgE3BwS0S2RAYM Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 13 / 19
  • 14. Defining Datasets with Nanopublication Indexes (which are themselves Nanopublications) appends has sub-index has element (a) (b) (c) (f) (d) (e) Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 14 / 19
  • 15. mkindex / MakeIndex Takes a list of nanopublications and creates an index that refers to them (which itself consists of one or more nanopublications): $ np mkindex trusty.nanopubfile.trig Index URI: http://np.inn.ac/RAFa x4h0ng NXtof35Ie9pQVsAY69 This creates a new file index.nanopubfile.trig containing the index nanopublication(s). Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 15 / 19
  • 16. Publishing / Retrieving Indexes As indexes are also nanopublications, we can publish them in the same way: $ np publish index.nanopubfile.trig 1 nanopub published at http://np.inn.ac/ Retrieving the content of a nanopublication index (and not just the top-most index nanopublication) with argument -c: $ np get -c http://np.inn.ac/RAFa x4h0ng NXtof35Ie9pQVsAY6 Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 16 / 19
  • 17. Web Interface: http://nanopub.inn.ac Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 17 / 19
  • 18. sign / SignNanopub (experimental) Takes a nanopublication and digitally signs it with a given private key. Create a key pair: $ np mkkeys Digitally sign nanopublications (and make them trusty): $ np sign nanopubfile.trig This creates a file signed.nanopubfile.trig, which we can now check: $ np check signed.nanopubfile.trig Summary: 3 signed and trusty; Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 18 / 19
  • 19. Thank you for your attention! Questions? Further information: • Paper for this talk: http://arxiv.org/abs/1508.04977 • Nanopublications: http://nanopub.org • Trusty URIs: http://trustyuri.net Come to my presentation at the main conference: Thursday, 15 October, 11:00 in the Scientific Data track: Publishing without Publishers: a Decentralized Approach to Dissemination, Retrieval, and Archiving of Data Tobias Kuhn, VU University Amsterdam nanopub-java: A Java Library for Nanopublications 19 / 19