- Open standards (HTTP, RDF, SPARQL)
- No lock-in (Open Source software, open ecosystem, "run it yourself" option)
- Designed for scalability (distribution, decentralization, data replication/partitioning)
- Flexibility / freedom (free choice of: identifier schemes, domain vocabularies, servers, data storage locations)
- Fast prototyping (learning while doing; ecosystem is up and running, ready to be used, and will keep evolving)
FIP matrix:
- FDO ID/URL: https://w3id.org/np/RA1sDguLHiK1VcRs_kHLCE0IxdIIwihrn8WTxehuzcaAg#fip-matrix (we can later also use nicer URLs like
https://example.org/fdo4de/fip-matrixand/or DOIs) - Metadata record (nanopublication) ID/URL: https://w3id.org/np/RA1sDguLHiK1VcRs_kHLCE0IxdIIwihrn8WTxehuzcaAg
- Digital Object file (bit sequence): https://raw.githubusercontent.com/peta-pico/dsw-nanopub-api/873763c608a0559d4ebc5e070c7ef555b2de9e6d/tables/new_matrix.csv (this file can live side by side with the nanopublication, or on a different server/system; can be open or have restricted access with required authentication)
More examples in fdo-examples.
- Template for manual creation (with Nanodash)
- Libraries and command-line tools (nanopub-java, nanopub-rs) can be used for automatic creation
HTTP with new header field FDO:
FDO: recordreturns the metadata record for the given FDO (default)FDO: objectreturns the actual object (dataset, picture, etc.)
Using curl to get FDO metadata record (as nanopublication):
$ curl -L -H 'FDO: record' -H 'Accept: application/ld+json' https://w3id.org/np/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs#fip-matrix
Using curl to get FDO object:
$ curl -L -H 'FDO: object' https://w3id.org/np/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs#fip-matrix
This is compliant with the FDO Framework specification (see above), with some small suggestions for improvement, which we will discuss with the FDO community.
Query to get FDOs:
- Simple client to API
- Same on the command line:
$ curl -L 'https://query.knowledgepixels.com/api/RAZgtM7Kzb0aTBlH4coOzlfgzBOoofqROCIMZTW3KliLQ/get-fdos?query=matrix' - Custom SPARQL query
With nanopublications, the same system that is used to describe/register FDOs can also be used to describe/register FDO Types (and many other things).
Checking availability of a nanopublication (using nanopub-java as command-line tool):
$ np status -a https://w3id.org/np/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs
URL: https://np.knowledgepixels.com/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs
URL: http://130.60.24.146:7880/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs
URL: http://server.np.dumontierlab.com/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs
URL: https://server.np.trustyuri.net/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs
URL: http://server.nanopubs.lod.labs.vu.nl/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs
URL: http://app.tkuhn.eculture.labs.vu.nl/nanopub-server-4/RA_03LCp_LLNR-3eGEIttU0LL5PqkgJRCA4dqN__mY-bs
Found on 6 nanopub servers.
All APIs are distributed and redundant (and thereby scalable) too, for example:
$ curl -L 'https://query.knowledgepixels.com/api/RAZgtM7Kzb0aTBlH4coOzlfgzBOoofqROCIMZTW3KliLQ/get-fdos?query=matrix'
$ curl -L 'https://query.np.trustyuri.net/api/RAZgtM7Kzb0aTBlH4coOzlfgzBOoofqROCIMZTW3KliLQ/get-fdos?query=matrix'
$ curl -L 'https://query.np.kpxl.org/api/RAZgtM7Kzb0aTBlH4coOzlfgzBOoofqROCIMZTW3KliLQ/get-fdos?query=matrix'
See the monitor for the current network of services.