[ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/provenance", "@graph": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/assertion", "http://www.w3.org/ns/prov#wasAttributedTo": [ { "@id": "https://orcid.org/0000-0002-1267-0234" } ] } ] }, { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/assertion", "@graph": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/get-mira-records", "http://purl.org/dc/terms/description": [ { "@value": "Returns every current MIRA record as quads, for bulk import into another system. Each row is one statement with its named graph, so the graph pointers inside a record resolve to graphs the caller also received. Columns: np (the nanopublication, fetch it with Accept: application/trig to get the signed original), created (the sync cursor), subj, pred, obj, graph. Optional parameters: class restricts to one MIRA class; since returns only records created strictly after that timestamp, so re-pulling with the newest value seen returns nothing; part selects head, assertion, provenance or pubinfo, or all, and defaults to assertion plus provenance; examples=include adds the demo records, which are excluded by default. Request application/sparql-results+json rather than CSV: CSV drops datatypes and language tags, and MIRA titles contain commas. Coupled to the shared MIRA record type (https://w3id.org/spaces/mira/r/MiraRecord)." } ], "http://purl.org/dc/terms/license": [ { "@id": "http://www.apache.org/licenses/LICENSE-2.0" } ], "@type": [ "https://w3id.org/kpxl/grlc/grlc-query" ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Get MIRA records as quads" } ], "https://w3id.org/kpxl/grlc/endpoint": [ { "@id": "https://w3id.org/np/l/nanopub-query-1.1/repo/type/5ee93356ac9163d743a44466ee5cae3e537a0bb429b81354f72799d7f700c947" } ], "https://w3id.org/kpxl/grlc/sparql": [ { "@value": "prefix np: \nprefix npa: \nprefix npx: \nprefix dct: \nprefix mira: \n\nselect ?np ?created ?subj ?pred ?obj ?graph where {\n # Every record of the shared MIRA record type. The type repository holds only\n # current versions, so a superseded record never leaves this endpoint.\n graph npa:graph {\n ?np npx:hasNanopubType ;\n dct:created ?created .\n }\n # Optional narrowing to one MIRA class. Absent, ?class falls back to the record\n # type itself, so the extra pattern is a no-op rather than a second binding.\n bind(coalesce(?__class_iri, ) as ?class)\n graph npa:graph { ?np npx:hasNanopubType ?class . }\n # Incremental sync: pass the newest ?created seen on the previous pull.\n # Strict, so re-pulling with the last timestamp returns only what is new.\n bind(coalesce(?__since, \"0000\") as ?since)\n filter(?since < str(?created))\n # Demo records carry npx:ExampleNanopub. They are excluded by default: importing\n # example data into a live system is worse than missing it. OPTIONAL + !bound rather\n # than NOT EXISTS, which mis-plans here.\n optional {\n graph npa:graph { ?np npx:hasNanopubType ?example . }\n filter(?example = npx:ExampleNanopub)\n }\n bind(coalesce(?__examples, \"exclude\") as ?ex)\n filter(?ex = \"include\" || !bound(?example))\n {\n # The Head graph has no pointer predicate of its own: it is the graph in which the\n # nanopublication declares itself. Must exclude npa:graph, which mirrors that triple.\n graph ?graph { ?np a np:Nanopublication . }\n filter(?graph != npa:graph)\n bind(\"head\" as ?part)\n } union {\n graph npa:graph { ?np np:hasAssertion ?graph . }\n bind(\"assertion\" as ?part)\n } union {\n graph npa:graph { ?np np:hasProvenance ?graph . }\n bind(\"provenance\" as ?part)\n } union {\n graph npa:graph { ?np np:hasPublicationInfo ?graph . }\n bind(\"pubinfo\" as ?part)\n }\n # Default is the MIRA content and its attribution: assertion + provenance. Head and\n # pubinfo are available but not sent unless asked, so a default pull carries neither\n # the role declarations nor dct:license. Pass part=all for a complete, self-consistent\n # nanopublication; a single part name selects just that graph.\n bind(coalesce(?__part, \"default\") as ?want)\n filter(?want = \"all\" || ?want = ?part\n || (?want = \"default\" && (?part = \"assertion\" || ?part = \"provenance\")))\n graph ?graph { ?subj ?pred ?obj . }\n}\norder by ?created ?np ?graph ?subj ?pred ?obj\nlimit 50000\n" } ] } ] }, { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/Head", "@graph": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4", "http://www.nanopub.org/nschema#hasAssertion": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/assertion" } ], "http://www.nanopub.org/nschema#hasProvenance": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/provenance" } ], "http://www.nanopub.org/nschema#hasPublicationInfo": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/pubinfo" } ], "@type": [ "http://www.nanopub.org/nschema#Nanopublication" ] } ] }, { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/pubinfo", "@graph": [ { "@id": "https://orcid.org/0000-0002-1267-0234", "http://xmlns.com/foaf/0.1/name": [ { "@value": "Tobias Kuhn" } ] }, { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4", "http://purl.org/dc/terms/created": [ { "@value": "2026-10-02T09:24:44Z", "@type": "http://www.w3.org/2001/XMLSchema#dateTime" } ], "http://purl.org/dc/terms/creator": [ { "@id": "https://orcid.org/0000-0002-1267-0234" } ], "http://purl.org/dc/terms/license": [ { "@id": "https://creativecommons.org/licenses/by/4.0/" } ], "http://purl.org/nanopub/x/embeds": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/get-mira-records" } ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Get MIRA records as quads" } ], "https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate": [ { "@id": "https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU" } ], "https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate": [ { "@id": "https://w3id.org/np/RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8" }, { "@id": "https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI" } ], "https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate": [ { "@id": "https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k" } ] }, { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4/sig", "http://purl.org/nanopub/x/hasAlgorithm": [ { "@value": "RSA" } ], "http://purl.org/nanopub/x/hasPublicKey": [ { "@value": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" } ], "http://purl.org/nanopub/x/hasSignature": [ { "@value": "TOkO9iC1qV4G7XwYYGZZEOAWHeaGTkMpn6nN38WWwVsRUveJ6UfbgQLYdLV5UHpVmLETgdNqmB1rbjAX643c0m1Gydpvi/C1K04u/L+QqtxECxqwN8i/aYulQr2iajBUKIIklO7dpwO/99BLsPwVKBgSHxeaawXwGi4I6SRxcys=" } ], "http://purl.org/nanopub/x/hasSignatureTarget": [ { "@id": "https://w3id.org/np/RA-gpaNbTyW5yrjtP3BqHV7bq8HLeyaCOPoVcu--bMzb4" } ], "http://purl.org/nanopub/x/signedBy": [ { "@id": "https://orcid.org/0000-0002-1267-0234" } ] } ] } ]