rows { options { physical_type: PHYSICAL_STREAM_TYPE_QUADS max_name_table_size: 128 max_prefix_table_size: 16 max_datatype_table_size: 16 logical_type: LOGICAL_STREAM_TYPE_DATASETS version: 2 } } rows { prefix { value: "https://w3id.org/np/" } } rows { name { value: "RAFU2fblXSZuhtC7CwHgIZAL-nG3yfnYH-yxwmX9AjeSs" } } rows { namespace { name: "this" value { prefix_id: 1 } } } rows { prefix { value: "https://w3id.org/np/RAFU2fblXSZuhtC7CwHgIZAL-nG3yfnYH-yxwmX9AjeSs/" } } rows { name { } } rows { namespace { name: "sub" value { prefix_id: 2 } } } rows { prefix { value: "http://schema.org/" } } rows { namespace { name: "schema" value { prefix_id: 3 name_id: 2 } } } rows { prefix { value: "https://w3id.org/kpxl/gen/terms/" } } rows { namespace { name: "gen" value { prefix_id: 4 name_id: 2 } } } rows { prefix { value: "http://www.nanopub.org/nschema#" } } rows { namespace { name: "np" value { prefix_id: 5 name_id: 2 } } } rows { prefix { value: "http://purl.org/dc/terms/" } } rows { namespace { name: "dct" value { prefix_id: 6 name_id: 2 } } } rows { prefix { value: "https://w3id.org/np/o/ntemplate/" } } rows { namespace { name: "nt" value { prefix_id: 7 name_id: 2 } } } rows { prefix { value: "http://purl.org/nanopub/x/" } } rows { namespace { name: "npx" value { prefix_id: 8 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2001/XMLSchema#" } } rows { namespace { name: "xsd" value { prefix_id: 9 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2000/01/rdf-schema#" } } rows { namespace { name: "rdfs" value { prefix_id: 10 name_id: 2 } } } rows { prefix { value: "https://orcid.org/" } } rows { namespace { name: "orcid" value { prefix_id: 11 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/ns/prov#" } } rows { namespace { name: "prov" value { prefix_id: 12 name_id: 2 } } } rows { name { value: "hasAssertion" } } rows { name { value: "assertion" } } rows { name { value: "Head" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 5 name_id: 3 } o_iri { prefix_id: 2 } g_iri { } } } rows { name { value: "hasProvenance" } } rows { name { value: "provenance" } } rows { quad { p_iri { prefix_id: 5 } o_iri { prefix_id: 2 } } } rows { name { value: "hasPublicationInfo" } } rows { name { value: "pubinfo" } } rows { quad { p_iri { prefix_id: 5 } o_iri { prefix_id: 2 } } } rows { prefix { value: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" } } rows { name { value: "type" } } rows { name { value: "Nanopublication" } } rows { quad { p_iri { prefix_id: 13 } o_iri { prefix_id: 5 } } } rows { prefix { value: "https://w3id.org/np/RADnat3LrHEFpURlOEkTzQt0jbhTllodwoLbdTwIZ5VT8/" } } rows { name { value: "faq-entry" } } rows { name { value: "isPartOf" } } rows { prefix { value: "https://w3id.org/spaces/nanopub/r/" } } rows { name { value: "faq" } } rows { quad { s_iri { prefix_id: 14 } p_iri { prefix_id: 6 } o_iri { prefix_id: 15 } g_iri { prefix_id: 2 name_id: 4 } } } rows { name { value: "Question" } } rows { quad { p_iri { prefix_id: 13 name_id: 10 } o_iri { prefix_id: 3 name_id: 15 } } } rows { name { value: "label" } } rows { quad { p_iri { prefix_id: 10 } o_literal { lex: "What tech stack is the nanopublication ecosystem based on?" } } } rows { name { value: "hasContent" } } rows { quad { p_iri { prefix_id: 4 } o_literal { lex: "

The nanopublication ecosystem is built entirely on standard RDF and Semantic Web technologies. Each nanopublication is an RDF dataset of four named graphs, typically serialized as TriG. Identifiers are Trusty URIs \342\200\224 content-based hashes that make every nanopublication immutable and self-verifying \342\200\224 and integrity and authorship are protected by RSA digital signatures recorded in the publication info. In practice, Trusty URIs are commonly made persistently resolvable through w3id.org, and authors are commonly identified by ORCID, but neither is a technical requirement of the format.\n\nAt the network level, the Nanopub Registry stores and serves nanopublications through an HTTP REST interface, while Nanopub Query provides SPARQL endpoints and additionally exposes published SPARQL templates as REST APIs. Reference libraries are available in Java, Python, and Rust, and user-facing tools such as Nanodash are built on top of these.

" } } } rows { name { value: "wasDerivedFrom" } } rows { name { value: "RADnat3LrHEFpURlOEkTzQt0jbhTllodwoLbdTwIZ5VT8" } } rows { quad { s_iri { prefix_id: 2 name_id: 4 } p_iri { prefix_id: 12 name_id: 18 } o_iri { prefix_id: 1 } g_iri { prefix_id: 2 name_id: 7 } } } rows { name { value: "created" } } rows { datatype { value: "http://www.w3.org/2001/XMLSchema#dateTime" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 6 name_id: 20 } o_literal { lex: "2026-05-11T08:10:30Z" datatype: 1 } g_iri { prefix_id: 2 name_id: 9 } } } rows { name { value: "creator" } } rows { name { value: "0000-0002-1267-0234" } } rows { quad { p_iri { prefix_id: 6 name_id: 21 } o_iri { prefix_id: 11 } } } rows { name { value: "license" } } rows { prefix { value: "https://creativecommons.org/publicdomain/zero/1.0/" } } rows { quad { p_iri { prefix_id: 6 } o_iri { prefix_id: 16 name_id: 2 } } } rows { name { value: "introduces" } } rows { quad { p_iri { prefix_id: 8 name_id: 24 } o_iri { prefix_id: 14 name_id: 12 } } } rows { quad { p_iri { prefix_id: 10 name_id: 16 } o_literal { lex: "FAQ: What tech stack is the nanopublication ecosystem based on?" } } } rows { name { value: "wasCreatedFromProvenanceTemplate" } } rows { name { value: "RAcTpoh5Ra0ssqmcpOgWdaZ_YiPE6demO6cpw-2RvSNs8" } } rows { quad { p_iri { prefix_id: 7 name_id: 25 } o_iri { prefix_id: 1 } } } rows { name { value: "wasCreatedFromPubinfoTemplate" } } rows { name { value: "RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8" } } rows { quad { p_iri { prefix_id: 7 } o_iri { prefix_id: 1 } } } rows { name { value: "RAoTD7udB2KtUuOuAe74tJi1t3VzK0DyWS7rYVAq1GRvw" } } rows { quad { o_iri { } } } rows { name { value: "RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI" } } rows { quad { o_iri { } } } rows { name { value: "wasCreatedFromTemplate" } } rows { name { value: "RAWVrrZFodmZwbu78C0jwIcbdPo-GKNsXI5N1Ckroo_u4" } } rows { quad { p_iri { prefix_id: 7 } o_iri { prefix_id: 1 } } } rows { name { value: "sig" } } rows { name { value: "hasAlgorithm" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 8 } o_literal { lex: "RSA" } } } rows { name { value: "hasPublicKey" } } rows { quad { p_iri { } o_literal { lex: "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" } } } rows { name { value: "hasSignature" } } rows { quad { p_iri { } o_literal { lex: "Krh9Vma9bCjVkPFqvtfrMW0AEJKSUTETQfoInx51o+U8+H2pfOSirYQgX25L96lurSMmFpNQLINjUSs0D+veSuJ0cwvQpRzq0bJdG4bpTervDvuN+apOfggZfUX43mqrggV7u9qHGkIoAPYiX9jWSzxtuecqKx4dBP3XCHbWgco=" } } } rows { name { value: "hasSignatureTarget" } } rows { quad { p_iri { } o_iri { prefix_id: 1 name_id: 1 } } } rows { name { value: "signedBy" } } rows { quad { p_iri { prefix_id: 8 name_id: 38 } o_iri { prefix_id: 11 name_id: 22 } } }