Nanopublication

< Home

ID

https://w3id.org/np/RAbagGprLwYUsKq1Ae6mqRqzsXQI3jx8K6I4zPwPUy7V0

Formats

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

Content

@prefix this: <https://w3id.org/np/RAbagGprLwYUsKq1Ae6mqRqzsXQI3jx8K6I4zPwPUy7V0> .
@prefix sub: <https://w3id.org/np/RAbagGprLwYUsKq1Ae6mqRqzsXQI3jx8K6I4zPwPUy7V0/> .
@prefix np: <http://www.nanopub.org/nschema#> .
@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:find-gofair-qualified-things-valid a <https://w3id.org/kpxl/grlc/grlc-query>;
    dct:description "This query allows for searching for resources (FERs etc.) together with the info about whether GO FAIR qualified them. It performs a Lucene full-text search on labels and descriptions, restricted to FAIR Enabling Resource and FAIR Specification types (optionally narrowed to a single given nanopub type), and excludes retracted/superseded nanopublications, example nanopublications, entries from before 2022, and entries disapproved by the curators. This version merges the functions of the earlier 'Search on FAIR Specifications' and 'FSR lookup' queries.";
    dct:license <http://www.apache.org/licenses/LICENSE-2.0>;
    rdfs:label "Find GO FAIR qualified things (only valid entries)";
    <https://w3id.org/kpxl/grlc/endpoint> <https://w3id.org/np/l/nanopub-query-1.1/repo/full>;
    <https://w3id.org/kpxl/grlc/sparql> """prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>

select distinct ?thing ?label ?description ?np ?date ?pubkey ?qualifier ?qualification_np (group_concat(distinct ?recommender; separator=\" \") as ?recommenders) (group_concat(distinct ?recommendation_np; separator=\" \") as ?recommendation_nps) (count(distinct ?recommender) as ?recommender_count) (sample(?fairAssessmentLevel_) as ?fairAssessmentLevel) (sample(?fairAssessmentLevelNp_) as ?fairAssessmentLevelNp) where {
  { select distinct ?np where {
    service <https://w3id.org/np/l/nanopub-query-1.1/repo/text> {
      { ?np search:matches [ search:query ?_searchterm ; search:property rdfs:label ] . }
      union
      { ?np search:matches [ search:query ?_searchterm ; search:property dct:description ] . }
    }
  } }

  graph npa:graph {
    <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk .
    ?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk .
    filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . }
    ?latest_curators_np np:hasAssertion ?latest_curators_assertion .
  }
  graph npa:networkGraph {
    ?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
    filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np }
  }

  graph npa:graph {
    values ?fer_type { fip:FAIR-Specification fip:Data-usage-license fip:Metadata-preservation-policy fip:Persistency-Policy fip:Crosswalk fip:Editor fip:FAIR-Representation-Service fip:Authentication-and-authorization-service fip:Provenance-Tracking-Service fip:Validation-Service fip:Web-API fip:Identifier-service fip:FAIR-Supporting-Software fip:Registry fip:Communication-protocol fip:Knowledge-representation-language fip:Metadata-schema fip:Metadata-data-linking-schema fip:Provenance-model fip:Structured-vocabulary fip:Semantic-model }
    ?np npx:hasNanopubType ?fer_type .
    ?np npx:hasNanopubType ?__type_iri .
    ?np npa:hasValidSignatureForPublicKey ?pubkey .
    filter not exists { ?retraction npx:retracts ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
    filter not exists { ?newversion npx:supersedes ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
    filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
    ?np (npx:introduces|npx:describes) ?thing .
    ?np rdfs:label ?label .
    optional { ?np dct:description ?description . }
    ?np dct:created ?date .
    filter(str(?date) > \"2022\")
  }

  optional {
    graph npa:graph {
      ?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
    }
    graph ?latest_curators_assertion {
      ?dpubkeys npx:hasPublicKey ?dpubkey .
    }
    graph npa:graph {
      filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
      ?disapproval np:hasAssertion ?da .
    }
    graph ?da {
      ?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
    }
  } filter(!bound(?disapproval))  # Faster than \"filter not exists\" for some reason

  optional {
    graph npa:graph {
      ?recommendation_np npx:hasNanopubType fip:recommended-by .
      ?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey .
      filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . }
      ?recommendation_np np:hasAssertion ?ra .
      ?recommendation_np np:hasProvenance ?rp .
    }
    graph ?ra {
      ?thing fip:recommended-by ?recommender .
    }
    graph ?rp {
      ?ra prov:wasDerivedFrom ?rfip_np .
    }
    graph npa:graph {
      ?rfip_np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile .
      ?rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
      ?latest_rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey .
      filter not exists { ?latest_rfip_npx npx:invalidates ?latest_rfip_np ; npa:hasValidSignatureForPublicKey ?rfip_pubkey . }
    }
    graph npa:networkGraph {
      ?latest_rfip_np (npx:supersedes)* ?rfip_np .
    }
    graph ?rfip_qa {
      ?rfip_qualifier npx:qualifies ?latest_rfip_np .
    }
    graph npa:graph {
      ?rfip_qualification_np np:hasAssertion ?rfip_qa .
      ?rfip_qualification_np npx:hasNanopubType npx:qualifies .
      ?rfip_qualification_np npa:hasValidSignatureForPublicKey ?rfip_qpubkey .
      filter not exists { ?rfip_qualification_np_x npx:invalidates ?rfip_qualification_np ; npa:hasValidSignatureForPublicKey ?rfip_qpubkey . }
    }
    graph ?latest_curators_assertion {
      ?rfip_qpubkeys npx:hasPublicKey ?rfip_qpubkey .
    }
  }

  optional {
    graph npa:graph {
      ?qualification_np npx:hasNanopubType npx:qualifies .
      ?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
    }
    graph ?latest_curators_assertion {
      ?qpubkeys npx:hasPublicKey ?qpubkey .
    }
    graph npa:graph {
      filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
      ?qualification_np np:hasAssertion ?qa .
    }
    graph ?qa {
      ?qualifier npx:qualifies ?np .
    }
  }

  optional {
    graph npa:graph {
      ?fairAssessmentLevelNp_ npx:hasNanopubType fip:has-FAIR-assessment .
      ?fairAssessmentLevelNp_ npa:hasValidSignatureForPublicKey ?lpubkey .
      filter not exists { ?fairAssessmentLevelNp_x npx:invalidates ?fairAssessmentLevelNp_ ; npa:hasValidSignatureForPublicKey ?lpubkey . }
      ?fairAssessmentLevelNp_ np:hasAssertion ?la .
    }
    graph ?latest_curators_assertion {
      ?lpubkeys npx:hasPublicKey ?lpubkey .
    }
    graph ?la {
      ?thing fip:has-FAIR-assessment ?fairAssessmentLevel_ .
    }
  }

}
group by ?thing ?label ?description ?np ?date ?pubkey ?qualifier ?qualification_np
order by desc(?recommender_count) asc(?label)""" .
}

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-07-14T12:58:47Z"^^xsd:dateTime;
    dct:creator orcid:0000-0002-1267-0234;
    dct:license <https://creativecommons.org/publicdomain/zero/1.0/>;
    npx:embeds sub:find-gofair-qualified-things-valid;
    npx:supersedes <https://w3id.org/np/RAbIm89ikH6lYNcysd1TTM1Ai8VgQ766CWaQV8kemf5h4>;
    prov:wasDerivedFrom <https://w3id.org/np/RA9rho2HHeT5zl2z7dk6ntdzCE3CWYHfdqdg10dCk5kJc>,
      <https://w3id.org/np/RAQjW2MXoE9fSzp5dLH2l5VrcDBNJSeaMvsjHINp-FaAM>;
    nt:wasCreatedFromProvenanceTemplate <https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU>;
    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 "NXrxvrWDSqfPuL1/83PY6XEBF49/8cwp5roKQR6Xz/8ZMAhvOLkcwyZY9RAiUuGXsbMdyVQnF+9h+5YsG40PUBQG/st/nfYc9wlitwn+k52Ztg+nnuksZ+fcG+cwP01PtwYyq6K6fQw2h8VXdMbkY4mNX2hm9YNFO5ms0nGYcP8=";
    npx:hasSignatureTarget this:;
    npx:signedBy orcid:0000-0002-1267-0234 .
}