Nanopublication

< Home

ID

https://w3id.org/np/RAoYaaobJq-kITaJxLuzApn0cheIsECBwkp4DrNI_6d_Y

Formats

.trig | .trig.txt | .jelly | .jelly.txt | .jsonld | .jsonld.txt | .nq | .nq.txt | .xml | .xml.txt

Content

@prefix this: <https://w3id.org/np/RAoYaaobJq-kITaJxLuzApn0cheIsECBwkp4DrNI_6d_Y> .
@prefix sub: <https://w3id.org/np/RAoYaaobJq-kITaJxLuzApn0cheIsECBwkp4DrNI_6d_Y/> .
@prefix np: <http://www.nanopub.org/nschema#> .
@prefix grlc: <https://w3id.org/kpxl/grlc/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix nt: <https://w3id.org/np/o/ntemplate/> .
@prefix npx: <http://purl.org/nanopub/x/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix orcid: <https://orcid.org/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

sub:Head {
  this: a np:Nanopublication;
    np:hasAssertion sub:assertion;
    np:hasProvenance sub:provenance;
    np:hasPublicationInfo sub:pubinfo .
}

sub:assertion {
  sub:get-outputs-for-project a grlc:grlc-query;
    dct:description "Returns all outputs (e.g. publications) linked to the given project via frapo:hasOutput, with the output's label, its type(s) and publication date (when described by a space member), restricted to links and descriptions authored by a member, maintainer, or admin of the project's space.";
    dct:license <http://www.apache.org/licenses/LICENSE-2.0>;
    rdfs:label "Get outputs for project";
    grlc:endpoint <https://w3id.org/np/l/nanopub-query-1.1/repo/full>;
    grlc:sparql """prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix dct: <http://purl.org/dc/terms/>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix nt: <https://w3id.org/np/o/ntemplate/>
prefix frapo: <http://purl.org/cerif/frapo/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix fabio: <http://purl.org/spar/fabio/>

select ?publication ?publication_label
  (group_concat(distinct str(?type); separator=\" \") as ?type_multi_iri)
  (group_concat(distinct ?typeLabel; separator=\"\\n\") as ?type_label_multi)
  (sample(?pubdate0) as ?pubdate)
  ?np (\"^\" as ?np_label)
where {
  values ?_project_multi_iri {}
  service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> {
    select (group_concat(?mpk; separator=\" \") as ?memberPubkeys) where {
      graph npa:graph { <http://purl.org/nanopub/admin/thisRepo> npa:hasCurrentSpaceState ?stateG . }
      values ?_project_multi_iri {}
      graph ?stateG {
        ?_project_multi_iri npa:isMaintainedBy? ?space .
        ?ri a gen:RoleInstantiation ; npa:forSpace ?space ; npa:forAgent ?agent ; npa:hasRoleType ?roleType .
        filter(?roleType in (gen:AdminRole, gen:MaintainerRole, gen:MemberRole))
        ?acct a npa:AccountState ; npa:agent ?agent ; npa:pubkey ?mpk .
      }
    }
  }
  graph npa:graph {
    ?np npa:hasValidSignatureForPublicKeyHash ?npPubkey .
    filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?npPubkey . }
    filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
    ?np np:hasAssertion ?a .
    ?np np:hasPublicationInfo ?pi .
  }
  filter(contains(?memberPubkeys, ?npPubkey))
  graph ?a { ?_project_multi_iri frapo:hasOutput ?publication . }
  optional { graph ?pi { ?publication nt:hasLabelFromApi ?publication_label . } }
  optional {
    graph npa:graph {
      ?dnp npa:hasValidSignatureForPublicKeyHash ?dpk .
      filter not exists { ?dnpx npx:invalidates ?dnp ; npa:hasValidSignatureForPublicKeyHash ?dpk . }
      filter not exists { ?dnp npx:hasNanopubType npx:ExampleNanopub . }
      ?dnp np:hasAssertion ?da .
    }
    filter(contains(?memberPubkeys, ?dpk))
    graph ?da {
      ?publication a ?type .
      filter(strstarts(str(?type), \"http://purl.org/spar/fabio/\"))
      optional { ?publication dct:date ?pubdate0 }
    }
    bind(strafter(str(?type), \"http://purl.org/spar/fabio/\") as ?typeLabel)
  }
}
group by ?publication ?publication_label ?np
order by desc(?pubdate)""" .
}

sub:provenance {
  sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234 .
}

sub:pubinfo {
  orcid:0000-0002-1267-0234 foaf:name "Tobias Kuhn" .
  
  this: dct:created "2026-06-30T14:21:04Z"^^xsd:dateTime;
    dct:creator orcid:0000-0002-1267-0234;
    dct:license <https://creativecommons.org/licenses/by/4.0/>;
    npx:embeds sub:get-outputs-for-project;
    npx:supersedes <https://w3id.org/np/RACRdb5AKQssLHZvSqZFZIpRM7n4Omkk7eBLQkXKt-8v0>;
    rdfs:label "Get outputs for project";
    nt:wasCreatedFromProvenanceTemplate <http://purl.org/np/RAcm8OurwUk15WOgBM9wySo-T3a5h6as4K8YR5MBrrxUc>;
    nt:wasCreatedFromPubinfoTemplate <https://w3id.org/np/RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8>,
      <https://w3id.org/np/RARW4MsFkHuwjycNElvEVtuMjpf4yWDL10-0C5l2MqqRQ>, <https://w3id.org/np/RAoTD7udB2KtUuOuAe74tJi1t3VzK0DyWS7rYVAq1GRvw>,
      <https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI>;
    nt:wasCreatedFromTemplate <https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k> .
  
  sub:sig npx:hasAlgorithm "RSA";
    npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB";
    npx:hasSignature "MvqeMgVXKgPt6Ue4+b8s9aI8hhoRybC/mfinEGbCo40SeSS6Ock6A/jF0YDRY1sPaupGCzHaak65UFHOV40PKQVBv7Bq6lu0odPEPrOAVLi/k+9npb/coTfQh6VeHLF2FRmoNYsAjo3ASMpFubzXMfTEZ3E0A3rnxhn3pDKaWDI=";
    npx:hasSignatureTarget this:;
    npx:signedBy orcid:0000-0002-1267-0234 .
}