@prefix this: . @prefix sub: . @prefix np: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix orcid: . @prefix prov: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:get-kg-pending-phenotypes a ; dct:description "Lists mvikg/r/kg phenotype records whose approval status is 'pending' (latest admin npx:approvesOf/disapprovesOf verdict from a current mvikg admin decides the status; no verdict means pending). One row per record: its label, who created it and when."; dct:license ; rdfs:label "Get mvikg/r/kg pending phenotypes"; ; """prefix npa: prefix gen: prefix npx: prefix dct: prefix rdfs: prefix foaf: select distinct ?Name_label ?ModifiedBy_label ?Modified_noheader ?approve_target ?reject_target ?np ?np_label where { { select distinct ?dnp ?label ?creator ?created where { graph ?da { ?thing a ; dct:isPartOf . } bind(iri(replace(str(?da), '/assertion$', '')) as ?dnp) graph ?pi { ?dnp dct:creator ?creator ; dct:created ?createdRaw . } bind(replace(str(?createdRaw), '[.]000Z$', 'Z') as ?created) optional { graph ?pi { ?dnp rdfs:label ?lbl } } bind(coalesce(?lbl, str(?thing)) as ?label) } } optional { graph ?vda { ?admin ?verdictPred ?dnp . filter(?verdictPred in (npx:approvesOf, npx:disapprovesOf)) } filter(exists { service { graph npa:graph { npa:hasCurrentSpaceState ?g . } graph ?g { ?ri a gen:RoleInstantiation ; npa:forSpace ; npa:forAgent ?admin ; npa:hasRoleType gen:AdminRole . } } }) bind(iri(replace(str(?vda), '/assertion$', '')) as ?vnp) graph ?vpi { ?vnp dct:created ?vcreatedRaw . } bind(xsd:dateTime(?vcreatedRaw) as ?vcreated) filter not exists { graph ?vda2 { ?admin2 ?verdictPred2 ?dnp . filter(?verdictPred2 in (npx:approvesOf, npx:disapprovesOf)) } filter(exists { service { graph npa:graph { npa:hasCurrentSpaceState ?g2 . } graph ?g2 { ?ri2 a gen:RoleInstantiation ; npa:forSpace ; npa:forAgent ?admin2 ; npa:hasRoleType gen:AdminRole . } } }) bind(iri(replace(str(?vda2), '/assertion$', '')) as ?vnp2) graph ?vpi2 { ?vnp2 dct:created ?vcreated2Raw . } filter(xsd:dateTime(?vcreated2Raw) > ?vcreated) } optional { graph ?vda { ?vda rdfs:comment ?reason } } } bind(if(bound(?verdictPred), if(?verdictPred = npx:approvesOf, 'approved', 'rejected'), 'pending') as ?finalStatus) filter(?finalStatus = 'pending') bind(str(?dnp) as ?np) bind('^' as ?np_label) bind(?label as ?Name_label) optional { ?creator foaf:name ?cname } bind(coalesce(?cname, replace(str(?creator), '^.*/', '')) as ?ModifiedBy_label) bind(?created as ?Modified_noheader) bind(npx:approvesOf as ?approve_target) bind(npx:disapprovesOf as ?reject_target) }""" . } sub:provenance { sub:assertion prov:wasAttributedTo orcid:0009-0005-5515-1230 . } sub:pubinfo { this: dct:created "2026-11-09T12:32:36Z"^^xsd:dateTime; dct:creator orcid:0009-0005-5515-1230; dct:license ; npx:embeds sub:get-kg-pending-phenotypes; rdfs:label "Get mvikg/r/kg pending phenotypes"; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjO3oH8Lq/l1oZIUY3FlCz5DnndybGvAhBdmEJ/yq7Nv3GZEYPrEro23rCBCp0GiriOXlVbk61pA/7JFE6tqzTresINW6QQMxE9sIhCBlX4cG66JFD8ud6bMvUyzCR8LQA6zfrSbafGE06rvglJd4MDUcTwvUKqtL9UCnOaowVfnZ3sPOe9EqlmJuO3iHGxBSXMPOPEJZUzMXsFDWFuMZTnrR8gY3r5nVF5a8L/MD135ZH8qW5yGXOB28CmVYCAbw2o07QEKzyzFKN+W1gfnprYZvuKzwGexnzcdzc1S8N/M5bzhWQ40EKCEqgUE8c81OzEMm1HUlUKEJ/o5I/FKKAwIDAQAB"; npx:hasSignature "C6n0LJG4B938HJjcnV3QxXlqkxU+o/q9bJDGq6psnmJGnXbZU1Ntslmvn8inlZ4hv3Ul3aph+dJQ7fCJlCBdMTgF4GT2PH/iNbsT5x6fLodQAR+DqTmxwbvDqXx+pxHYPGxQFaSd7kSMylUk01UsYbOWBUl++pMvZTAn0lYsikc2rtRamao8QrJLtSxsO5V4BrUWOyKod1Y7jMdcKEwot6/oESyh2XIXd53qvc/5rVYmbQSb1ouz/yYYwm4exJd+HHMud8667oQT1jWRpcH2+bGG6piZQTaMa/Q82ZAPwyCrL6kHqiRpam9mZnCO0/+NRuPlTsGCxyspzuq03iCamg=="; npx:hasSignatureTarget this:; npx:signedBy orcid:0009-0005-5515-1230 . }