https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/Head
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://www.nanopub.org/nschema#hasAssertion
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/assertion
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://www.nanopub.org/nschema#hasProvenance
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/provenance
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://www.nanopub.org/nschema#hasPublicationInfo
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/pubinfo
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.nanopub.org/nschema#Nanopublication
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/assertion
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/get-project-summary-svg
http://purl.org/dc/terms/description
Computes an SVG summary diagram of a FAIR project: the studies and other activities on the left, the outputs they produced on the right, the evidence and arguments they yielded above that, and the higher-level statements they support or establish above, with the people and their institutions below. The evidence band carries both empirical evidence and deductive arguments such as proofs. A statement reaches the knowledge band either by generalising one of the project's findings - whether that finding cites the study directly or cites an evidence item generated by it - or by being established by a proof the project produced, in which case it is marked as proved rather than as accumulating evidence. Every entry links to the resource it stands for, on its part page within the project space.
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/get-project-summary-svg
http://purl.org/dc/terms/license
http://www.apache.org/licenses/LICENSE-2.0
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/get-project-summary-svg
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
https://w3id.org/kpxl/grlc/grlc-query
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/get-project-summary-svg
http://www.w3.org/2000/01/rdf-schema#label
Get project summary diagram as SVG
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/get-project-summary-svg
https://w3id.org/kpxl/grlc/endpoint
https://w3id.org/np/l/nanopub-query-1.1/repo/full
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/get-project-summary-svg
https://w3id.org/kpxl/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 gen: <https://w3id.org/kpxl/gen/terms/>
prefix ff: <https://w3id.org/fair/ff/terms/>
prefix obo: <http://purl.obolibrary.org/obo/>
prefix hycl: <http://purl.org/petapico/o/hycl#>
prefix cito: <http://purl.org/spar/cito/>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix wd: <http://www.wikidata.org/entity/>
select (concat(
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 871 ', str((((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) + (floor((?nppl + 3) / 4) * 20 + 14) + 26) + (floor((?ninst + 1) / 2) * 20 + 14) + 12)),
'" width="1393" height="', str(round(((((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) + (floor((?nppl + 3) / 4) * 20 + 14) + 26) + (floor((?ninst + 1) / 2) * 20 + 14) + 12)) * 8 / 5)), '" font-family="Noto Emoji, Inter, Verdana, Helvetica, sans-serif">',
'<text x="22" y="', str(26 - 8), '" font-size="11" font-weight="bold" fill="#444">๐ก Knowledge</text>',
'<rect x="10" y="', str(26), '" width="851" height="', str((floor((?nkno + 0) / 1) * 20 + 14)),
'" rx="4" fill="#f4f4f4" stroke="#888"></rect>',
'<g transform="translate(22,', str(26 + 6), ')">', ?boxeskno, '</g>',
'<text x="22" y="', str((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) - 8), '" font-size="11" font-weight="bold" fill="#444">โ Evidence & Arguments</text>',
'<rect x="10" y="', str((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28)), '" width="850" height="', str((floor((?nev + 1) / 2) * 20 + 14)),
'" rx="4" fill="#f4f4f4" stroke="#888"></rect>',
'<g transform="translate(22,', str((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + 6), ')">', ?boxesev, '</g>',
'<text x="22" y="', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) - 8), '" font-size="11" font-weight="bold" fill="#444">๐ฌ Activities</text>',
'<rect x="10" y="', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28)), '" width="409" height="', str(((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14)),
'" rx="4" fill="#f4f4f4" stroke="#888"></rect>',
'<g transform="translate(22,', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + 6), ')">', ?boxesact, '</g>',
'<text x="463" y="', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) - 8), '" font-size="11" font-weight="bold" fill="#444">๐ฆ Outputs</text>',
'<rect x="451" y="', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28)), '" width="409" height="', str(((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14)),
'" rx="4" fill="#f4f4f4" stroke="#888"></rect>',
'<g transform="translate(463,', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + 6), ')">', ?boxesout, '</g>',
'<text x="23" y="', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) - 8), '" font-size="11" font-weight="bold" fill="#444">๐ฅ People</text>',
'<rect x="11" y="', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26)), '" width="848" height="', str((floor((?nppl + 3) / 4) * 20 + 14)),
'" rx="4" fill="#f4f4f4" stroke="#888"></rect>',
'<g transform="translate(23,', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) + 6), ')">', ?boxesppl, '</g>',
'<text x="22" y="', str(((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) + (floor((?nppl + 3) / 4) * 20 + 14) + 26) - 8), '" font-size="11" font-weight="bold" fill="#444">๐ Institutions</text>',
'<rect x="10" y="', str(((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) + (floor((?nppl + 3) / 4) * 20 + 14) + 26)), '" width="850" height="', str((floor((?ninst + 1) / 2) * 20 + 14)),
'" rx="4" fill="#f4f4f4" stroke="#888"></rect>',
'<g transform="translate(22,', str(((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) + (floor((?nppl + 3) / 4) * 20 + 14) + 26) + 6), ')">', ?boxesinst, '</g>',
'<text x="435" y="', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) / 2) + 7), '" text-anchor="middle" font-size="22" fill="#888">โค</text>',
'<text x="221" y="', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) - 14), '" text-anchor="middle" font-size="22" fill="#888" transform="rotate(-90 221 ', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) - 14), ')">โค</text>',
'<text x="662" y="', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) - 14), '" text-anchor="middle" font-size="22" fill="#888" transform="rotate(-90 662 ', str(((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) - 14), ')">โค</text>',
'<text x="442" y="', str((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) - 14), '" text-anchor="middle" font-size="22" fill="#888" transform="rotate(-90 442 ', str((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) - 14), ')">โค</text>',
'<text x="221" y="', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) - 13), '" text-anchor="middle" font-size="22" fill="#888" transform="rotate(-90 221 ', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) - 13), ')">โค</text>',
'<text x="662" y="', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) - 13), '" text-anchor="middle" font-size="22" fill="#888" transform="rotate(-90 662 ', str((((26 + (floor((?nkno + 0) / 1) * 20 + 14) + 28) + (floor((?nev + 1) / 2) * 20 + 14) + 28) + ((if(?nact > ?nout, ?nact, ?nout)) * 20 + 14) + 26) - 13), ')">โค</text>',
'</svg>') as ?svg)
where {
{
select (group_concat(distinct ?boxkno; separator="") as ?boxeskno) (count(*) as ?nkno) where {
{
select ?irikno ?lblkno ?icokno ?typkno ?rrankkno (count(distinct ?okno) as ?iykno) where {
values ?_project_multi_iri {}
{
select ?irikno (min(?labelkno) as ?lblkno) (min(?iconkno) as ?icokno)
(group_concat(distinct ?typekno; separator=", ") as ?typkno) (min(?rrkno) as ?rrankkno)
(sample(?memberPubkeys) as ?mpkkno) 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 {
?npsgkno np:hasAssertion ?asgkno ;
npa:hasValidSignatureForPublicKeyHash ?pksgkno .
filter not exists { ?ixsgkno npx:invalidates ?npsgkno ; npa:hasValidSignatureForPublicKeyHash ?pksgkno . }
filter not exists { ?sxsgkno npx:supersedes ?npsgkno . }
}
filter(contains(?memberPubkeys, ?pksgkno))
graph ?asgkno {
?studygkno a obo:OBI_0000066 ; dct:isPartOf ?_project_multi_iri .
}
graph npa:graph {
?nprgkno np:hasAssertion ?argkno ;
npa:hasValidSignatureForPublicKeyHash ?pkrgkno .
filter not exists { ?ixrgkno npx:invalidates ?nprgkno ; npa:hasValidSignatureForPublicKeyHash ?pkrgkno . }
filter not exists { ?sxrgkno npx:supersedes ?nprgkno . }
}
filter(contains(?memberPubkeys, ?pkrgkno))
graph ?argkno {
?irikno (hycl:hasMoreGeneralMeaningThan|^<https://w3id.org/np/RApY2x9ZrKtmpsW-ZINc1M1cvI9LYbmZ1-Gbgl3TEJsCI/proves>) ?anchorkno .
}
optional {
graph npa:graph {
?npfgkno np:hasAssertion ?afgkno ;
npa:hasValidSignatureForPublicKeyHash ?pkfgkno .
filter not exists { ?ixfgkno npx:invalidates ?npfgkno ; npa:hasValidSignatureForPublicKeyHash ?pkfgkno . }
filter not exists { ?sxfgkno npx:supersedes ?npfgkno . }
}
filter(contains(?memberPubkeys, ?pkfgkno))
graph ?afgkno { ?anchorkno a hycl:AIDA-Sentence ; cito:obtainsSupportFrom ?supkno . }
}
optional {
graph npa:graph {
?nphgkno np:hasAssertion ?ahgkno ;
npa:hasValidSignatureForPublicKeyHash ?pkhgkno .
filter not exists { ?ixhgkno npx:invalidates ?nphgkno ; npa:hasValidSignatureForPublicKeyHash ?pkhgkno . }
filter not exists { ?sxhgkno npx:supersedes ?nphgkno . }
}
filter(contains(?memberPubkeys, ?pkhgkno))
graph ?ahgkno { ?anchorkno cito:obtainsSupportFrom ?midkno . }
graph npa:graph {
?npegkno np:hasAssertion ?aegkno ;
npa:hasValidSignatureForPublicKeyHash ?pkegkno .
filter not exists { ?ixegkno npx:invalidates ?npegkno ; npa:hasValidSignatureForPublicKeyHash ?pkegkno . }
filter not exists { ?sxegkno npx:supersedes ?npegkno . }
}
filter(contains(?memberPubkeys, ?pkegkno))
graph ?aegkno { ?midkno prov:wasGeneratedBy ?viakno . }
}
optional {
graph npa:graph {
?npqgkno np:hasAssertion ?aqgkno ;
npa:hasValidSignatureForPublicKeyHash ?pkqgkno .
filter not exists { ?ixqgkno npx:invalidates ?npqgkno ; npa:hasValidSignatureForPublicKeyHash ?pkqgkno . }
filter not exists { ?sxqgkno npx:supersedes ?npqgkno . }
}
filter(contains(?memberPubkeys, ?pkqgkno))
graph ?aqgkno { ?anchorkno prov:wasGeneratedBy ?pstkno . }
}
filter(coalesce(?supkno = ?studygkno, false) || coalesce(?viakno = ?studygkno, false)
|| coalesce(?pstkno = ?studygkno, false))
optional {
graph npa:graph {
?npogkno np:hasAssertion ?aogkno ;
npa:hasValidSignatureForPublicKeyHash ?pkogkno .
filter not exists { ?ixogkno npx:invalidates ?npogkno ; npa:hasValidSignatureForPublicKeyHash ?pkogkno . }
filter not exists { ?sxogkno npx:supersedes ?npogkno . }
}
graph ?aogkno { ?irikno hycl:hasMoreGeneralMeaningThan ?ofndkno . }
graph npa:graph {
?nppgkno np:hasAssertion ?apgkno ;
npa:hasValidSignatureForPublicKeyHash ?pkpgkno .
filter not exists { ?ixpgkno npx:invalidates ?nppgkno ; npa:hasValidSignatureForPublicKeyHash ?pkpgkno . }
filter not exists { ?sxpgkno npx:supersedes ?nppgkno . }
}
graph ?apgkno { ?ofndkno skos:related ?oprojkno . }
filter(?oprojkno != ?_project_multi_iri)
}
bind(replace(replace(replace(replace(replace(strafter(str(?irikno), "http://purl.org/aida/"), "[+]", " "), "%2C", ","), "%3A", ":"), "%28", "("), "%29", ")") as ?labelkno)
optional {
graph npa:graph {
?nppvkno np:hasAssertion ?apvkno ;
npa:hasValidSignatureForPublicKeyHash ?pkpvkno .
filter not exists { ?ixpvkno npx:invalidates ?nppvkno ; npa:hasValidSignatureForPublicKeyHash ?pkpvkno . }
filter not exists { ?sxpvkno npx:supersedes ?nppvkno . }
}
graph ?apvkno { ?anyproofkno <https://w3id.org/np/RApY2x9ZrKtmpsW-ZINc1M1cvI9LYbmZ1-Gbgl3TEJsCI/proves> ?irikno . }
}
bind(if(bound(?anyproofkno), "proved",
if(bound(?oprojkno), "increased evidence", "first evidence")) as ?typekno)
bind(0 as ?rrkno)
bind(if(?typekno = "proved", "๐", if(?typekno = "first evidence", "๐ฑ", "๐")) as ?iconkno)
} group by ?irikno
}
optional {
graph npa:graph {
?onpsgkno np:hasAssertion ?oasgkno ;
npa:hasValidSignatureForPublicKeyHash ?opksgkno .
filter not exists { ?oixsgkno npx:invalidates ?onpsgkno ; npa:hasValidSignatureForPublicKeyHash ?opksgkno . }
filter not exists { ?osxsgkno npx:supersedes ?onpsgkno . }
}
graph ?oasgkno {
?ostudygkno a obo:OBI_0000066 ; dct:isPartOf ?_project_multi_iri .
}
graph npa:graph {
?onprgkno np:hasAssertion ?oargkno ;
npa:hasValidSignatureForPublicKeyHash ?opkrgkno .
filter not exists { ?oixrgkno npx:invalidates ?onprgkno ; npa:hasValidSignatureForPublicKeyHash ?opkrgkno . }
filter not exists { ?osxrgkno npx:supersedes ?onprgkno . }
}
graph ?oargkno {
?okno (hycl:hasMoreGeneralMeaningThan|^<https://w3id.org/np/RApY2x9ZrKtmpsW-ZINc1M1cvI9LYbmZ1-Gbgl3TEJsCI/proves>) ?oanchorkno .
}
optional {
graph npa:graph {
?onpfgkno np:hasAssertion ?oafgkno ;
npa:hasValidSignatureForPublicKeyHash ?opkfgkno .
filter not exists { ?oixfgkno npx:invalidates ?onpfgkno ; npa:hasValidSignatureForPublicKeyHash ?opkfgkno . }
filter not exists { ?osxfgkno npx:supersedes ?onpfgkno . }
}
graph ?oafgkno { ?oanchorkno a hycl:AIDA-Sentence ; cito:obtainsSupportFrom ?osupkno . }
}
optional {
graph npa:graph {
?onphgkno np:hasAssertion ?oahgkno ;
npa:hasValidSignatureForPublicKeyHash ?opkhgkno .
filter not exists { ?oixhgkno npx:invalidates ?onphgkno ; npa:hasValidSignatureForPublicKeyHash ?opkhgkno . }
filter not exists { ?osxhgkno npx:supersedes ?onphgkno . }
}
graph ?oahgkno { ?oanchorkno cito:obtainsSupportFrom ?omidkno . }
graph npa:graph {
?onpegkno np:hasAssertion ?oaegkno ;
npa:hasValidSignatureForPublicKeyHash ?opkegkno .
filter not exists { ?oixegkno npx:invalidates ?onpegkno ; npa:hasValidSignatureForPublicKeyHash ?opkegkno . }
filter not exists { ?osxegkno npx:supersedes ?onpegkno . }
}
graph ?oaegkno { ?omidkno prov:wasGeneratedBy ?oviakno . }
}
optional {
graph npa:graph {
?onpqgkno np:hasAssertion ?oaqgkno ;
npa:hasValidSignatureForPublicKeyHash ?opkqgkno .
filter not exists { ?oixqgkno npx:invalidates ?onpqgkno ; npa:hasValidSignatureForPublicKeyHash ?opkqgkno . }
filter not exists { ?osxqgkno npx:supersedes ?onpqgkno . }
}
graph ?oaqgkno { ?oanchorkno prov:wasGeneratedBy ?opstkno . }
}
filter(coalesce(?osupkno = ?ostudygkno, false) || coalesce(?oviakno = ?ostudygkno, false)
|| coalesce(?opstkno = ?ostudygkno, false))
bind(0 as ?orrkno)
filter(concat(str(?orrkno), "|", str(?okno)) < concat(str(?rrankkno), "|", str(?irikno))
&& (!bound(?opkegkno) || contains(?mpkkno, ?opkegkno))
&& (!bound(?opkfgkno) || contains(?mpkkno, ?opkfgkno))
&& (!bound(?opkhgkno) || contains(?mpkkno, ?opkhgkno))
&& (!bound(?opkqgkno) || contains(?mpkkno, ?opkqgkno))
&& (!bound(?opkrgkno) || contains(?mpkkno, ?opkrgkno))
&& (!bound(?opksgkno) || contains(?mpkkno, ?opksgkno)))
}
} group by ?irikno ?lblkno ?icokno ?typkno ?rrankkno
}
bind((?iykno - floor(?iykno / 1) * 1) * 843 as ?bxkno)
bind(floor(?iykno / 1) * 20 as ?bykno)
bind(xsd:integer(floor((827 - 26 - strlen(?typkno) * 4.6) / 5.15)) as ?cap0kno)
bind(if(?cap0kno < 8, 8, ?cap0kno) as ?capkno)
bind(if(strlen(?lblkno) > ?capkno, concat(substr(?lblkno, 1, ?capkno - 1), "โฆ"), ?lblkno) as ?tkno)
bind(replace(replace(replace(?tkno, "&", "&"), "<", "<"), ">", ">") as ?esckno)
bind(replace(replace(replace(?lblkno, "&", "&"), "<", "<"), ">", ">") as ?fullkno)
bind(concat('<text x="', str(?bxkno), '" y="', str(?bykno + 12), '" font-size="10" fill="#111">',
'<a href="/part?id=', encode_for_uri(str(?irikno)), '">', '<title>', ?fullkno, '</title><tspan>', ?icokno, ' ', ?esckno, '</tspan></a>',
'<tspan dx="9" font-size="9">', ?typkno, '</tspan></text>') as ?boxkno)
}
}
{
select (group_concat(distinct ?boxev; separator="") as ?boxesev) (count(*) as ?nev) where {
{
select ?iriev ?lblev ?icoev ?typev ?rrankev (count(distinct ?oev) as ?iyev) where {
values ?_project_multi_iri {}
{
select ?iriev (min(?labelev) as ?lblev) (min(?iconev) as ?icoev)
(group_concat(distinct ?typeev; separator=", ") as ?typev) (min(?rrev) as ?rrankev)
(sample(?memberPubkeys) as ?mpkev) 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 {
?npsev np:hasAssertion ?asev ;
npa:hasValidSignatureForPublicKeyHash ?pksev .
filter not exists { ?ixsev npx:invalidates ?npsev ; npa:hasValidSignatureForPublicKeyHash ?pksev . }
filter not exists { ?sxsev npx:supersedes ?npsev . }
}
filter(contains(?memberPubkeys, ?pksev))
graph ?asev {
?studyev a obo:OBI_0000066 ; dct:isPartOf ?_project_multi_iri .
}
graph npa:graph {
?npev np:hasAssertion ?aev ;
np:hasPublicationInfo ?piev ;
npa:hasValidSignatureForPublicKeyHash ?pkev .
filter not exists { ?ixev npx:invalidates ?npev ; npa:hasValidSignatureForPublicKeyHash ?pkev . }
filter not exists { ?sxev npx:supersedes ?npev . }
}
filter(contains(?memberPubkeys, ?pkev))
graph ?aev {
?iriev a ?baseev ; prov:wasGeneratedBy ?studyev .
values ?baseev { obo:ECO_0000000 wd:Q11538 }
}
optional { graph ?aev { ?iriev rdfs:label ?laev } }
optional {
graph ?aev {
?iriev a ?subev .
filter(?subev != obo:ECO_0000000 && strstarts(str(?subev), "http://purl.obolibrary.org/obo/ECO_"))
}
graph ?piev { ?subev rdfs:label ?sublev }
}
bind(coalesce(?laev, replace(str(?iriev), "^.*[/#]", "")) as ?labelev)
bind(coalesce(?sublev, if(?baseev = wd:Q11538, "proof", "evidence")) as ?typeev)
bind(0 as ?rrev)
bind(if(?typeev = "proof", "๐", if(contains(?typeev, "combinatorial"), "๐งฉ", if(contains(?typeev, "similarity"), "๐งฌ", if(contains(?typeev, "computational"), "๐ฅ", if(contains(?typeev, "documented"), "๐", if(contains(?typeev, "high throughput"), "๐งซ", if(contains(?typeev, "inferential"), "๐ง ", "๐"))))))) as ?iconev)
} group by ?iriev
}
optional {
graph npa:graph {
?onpsev np:hasAssertion ?oasev ;
npa:hasValidSignatureForPublicKeyHash ?opksev .
filter not exists { ?oixsev npx:invalidates ?onpsev ; npa:hasValidSignatureForPublicKeyHash ?opksev . }
filter not exists { ?osxsev npx:supersedes ?onpsev . }
}
graph ?oasev {
?ostudyev a obo:OBI_0000066 ; dct:isPartOf ?_project_multi_iri .
}
graph npa:graph {
?onpev np:hasAssertion ?oaev ;
np:hasPublicationInfo ?opiev ;
npa:hasValidSignatureForPublicKeyHash ?opkev .
filter not exists { ?oixev npx:invalidates ?onpev ; npa:hasValidSignatureForPublicKeyHash ?opkev . }
filter not exists { ?osxev npx:supersedes ?onpev . }
}
graph ?oaev {
?oev a ?obaseev ; prov:wasGeneratedBy ?ostudyev .
values ?obaseev { obo:ECO_0000000 wd:Q11538 }
}
bind(0 as ?orrev)
filter(concat(str(?orrev), "|", str(?oev)) < concat(str(?rrankev), "|", str(?iriev))
&& (!bound(?opkev) || contains(?mpkev, ?opkev))
&& (!bound(?opksev) || contains(?mpkev, ?opksev)))
}
} group by ?iriev ?lblev ?icoev ?typev ?rrankev
}
bind((?iyev - floor(?iyev / 2) * 2) * 421 as ?bxev)
bind(floor(?iyev / 2) * 20 as ?byev)
bind(xsd:integer(floor((405 - 26 - strlen(?typev) * 4.6) / 5.15)) as ?cap0ev)
bind(if(?cap0ev < 8, 8, ?cap0ev) as ?capev)
bind(if(strlen(?lblev) > ?capev, concat(substr(?lblev, 1, ?capev - 1), "โฆ"), ?lblev) as ?tev)
bind(replace(replace(replace(?tev, "&", "&"), "<", "<"), ">", ">") as ?escev)
bind(replace(replace(replace(?lblev, "&", "&"), "<", "<"), ">", ">") as ?fullev)
bind(concat('<text x="', str(?bxev), '" y="', str(?byev + 12), '" font-size="10" fill="#111">',
'<a href="/part?id=', encode_for_uri(str(?iriev)), '">', '<title>', ?fullev, '</title><tspan>', ?icoev, ' ', ?escev, '</tspan></a>',
'<tspan dx="9" font-size="9">', ?typev, '</tspan></text>') as ?boxev)
}
}
{
select (group_concat(distinct ?boxact; separator="") as ?boxesact) (count(*) as ?nact) where {
{
select ?iriact ?lblact ?icoact ?typact ?rrankact (count(distinct ?oact) as ?iyact) where {
values ?_project_multi_iri {}
{
select ?iriact (min(?labelact) as ?lblact) (min(?iconact) as ?icoact)
(group_concat(distinct ?typeact; separator=", ") as ?typact) (min(?rract) as ?rrankact)
(sample(?memberPubkeys) as ?mpkact) 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 {
?npact np:hasAssertion ?aact ;
np:hasPublicationInfo ?piact ;
npa:hasValidSignatureForPublicKeyHash ?pkact .
filter not exists { ?ixact npx:invalidates ?npact ; npa:hasValidSignatureForPublicKeyHash ?pkact . }
filter not exists { ?sxact npx:supersedes ?npact . }
}
filter(contains(?memberPubkeys, ?pkact))
graph ?aact {
?iriact a obo:OBI_0000066 ; dct:isPartOf ?_project_multi_iri .
}
optional { graph ?aact { ?iriact rdfs:label ?laact } }
optional {
graph ?aact {
?iriact a ?subact .
filter(?subact != obo:OBI_0000066 && strstarts(str(?subact), "http://purl.obolibrary.org/obo/OBI_"))
}
graph ?piact { ?subact rdfs:label ?sublact }
}
bind(coalesce(?laact, replace(str(?iriact), "^.*[/#]", "")) as ?labelact)
bind(coalesce(replace(?sublact, "investigation", "study"), "study") as ?typeact)
bind(0 as ?rract)
bind(if(contains(?typeact, "observational"), "๐", if(contains(?typeact, "surveillance"), "๐ก", if(contains(?typeact, "trial"), "๐", "๐งช"))) as ?iconact)
} group by ?iriact
}
optional {
graph npa:graph {
?onpact np:hasAssertion ?oaact ;
np:hasPublicationInfo ?opiact ;
npa:hasValidSignatureForPublicKeyHash ?opkact .
filter not exists { ?oixact npx:invalidates ?onpact ; npa:hasValidSignatureForPublicKeyHash ?opkact . }
filter not exists { ?osxact npx:supersedes ?onpact . }
}
graph ?oaact {
?oact a obo:OBI_0000066 ; dct:isPartOf ?_project_multi_iri .
}
bind(0 as ?orract)
filter(concat(str(?orract), "|", str(?oact)) < concat(str(?rrankact), "|", str(?iriact))
&& (!bound(?opkact) || contains(?mpkact, ?opkact)))
}
} group by ?iriact ?lblact ?icoact ?typact ?rrankact
}
bind((?iyact - floor(?iyact / 1) * 1) * 401 as ?bxact)
bind(floor(?iyact / 1) * 20 as ?byact)
bind(xsd:integer(floor((385 - 26 - strlen(?typact) * 4.6) / 5.15)) as ?cap0act)
bind(if(?cap0act < 8, 8, ?cap0act) as ?capact)
bind(if(strlen(?lblact) > ?capact, concat(substr(?lblact, 1, ?capact - 1), "โฆ"), ?lblact) as ?tact)
bind(replace(replace(replace(?tact, "&", "&"), "<", "<"), ">", ">") as ?escact)
bind(replace(replace(replace(?lblact, "&", "&"), "<", "<"), ">", ">") as ?fullact)
bind(concat('<text x="', str(?bxact), '" y="', str(?byact + 12), '" font-size="10" fill="#111">',
'<a href="/part?id=', encode_for_uri(str(?iriact)), '">', '<title>', ?fullact, '</title><tspan>', ?icoact, ' ', ?escact, '</tspan></a>',
'<tspan dx="9" font-size="9">', ?typact, '</tspan></text>') as ?boxact)
}
}
{
select (group_concat(distinct ?boxout; separator="") as ?boxesout) (count(*) as ?nout) where {
{
select ?iriout ?lblout ?icoout ?typout ?rrankout (count(distinct ?oout) as ?iyout) where {
values ?_project_multi_iri {}
{
select ?iriout (min(?labelout) as ?lblout) (min(?iconout) as ?icoout)
(group_concat(distinct ?typeout; separator=", ") as ?typout) (min(?rrout) as ?rrankout)
(sample(?memberPubkeys) as ?mpkout) 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 {
?npout np:hasAssertion ?aout ;
np:hasPublicationInfo ?piout ;
npa:hasValidSignatureForPublicKeyHash ?pkout .
filter not exists { ?ixout npx:invalidates ?npout ; npa:hasValidSignatureForPublicKeyHash ?pkout . }
filter not exists { ?sxout npx:supersedes ?npout . }
}
filter(contains(?memberPubkeys, ?pkout))
graph ?aout {
?_project_multi_iri ?relout ?iriout .
values ?relout { ff:has-article ff:has-dataset ff:has-software ff:has-method ff:has-dmp ff:has-presentation ff:has-blog-post ff:has-media-coverage ff:has-social-post ff:has-podcast ff:has-discussion }
}
optional { graph ?aout { ?iriout rdfs:label ?laout } }
optional { graph ?piout { ?iriout foaf:name ?lfout } }
optional { graph ?piout { ?iriout rdfs:label ?lqout } }
bind(coalesce(?laout, ?lfout, ?lqout, replace(str(?iriout), "^.*[/#]", "")) as ?labelout)
bind(strafter(str(?relout), "https://w3id.org/fair/ff/terms/has-") as ?rawout)
bind(replace(?rawout, "-", " ") as ?typeout)
bind(if(?rawout = "article", 0, if(?rawout = "dataset", 1, if(?rawout = "software", 2, if(?rawout = "method", 3, if(?rawout = "dmp", 4, if(?rawout = "presentation", 5, if(?rawout = "blog-post", 6, 7))))))) as ?rrout)
bind(if(?rawout = "article", "๐", if(?rawout = "software", "๐ป", if(?rawout = "dataset", "๐พ", if(?rawout = "presentation", "๐ค", if(?rawout = "blog-post", "๐", if(?rawout = "podcast", "๐ง", if(?rawout = "media-coverage", "๐ฐ", if(?rawout = "social-post", "๐ฌ", if(?rawout = "discussion", "๐ฌ", if(?rawout = "method", "๐ง", if(?rawout = "dmp", "๐", "๐"))))))))))) as ?iconout)
} group by ?iriout
}
optional {
graph npa:graph {
?onpout np:hasAssertion ?oaout ;
np:hasPublicationInfo ?opiout ;
npa:hasValidSignatureForPublicKeyHash ?opkout .
filter not exists { ?oixout npx:invalidates ?onpout ; npa:hasValidSignatureForPublicKeyHash ?opkout . }
filter not exists { ?osxout npx:supersedes ?onpout . }
}
graph ?oaout {
?_project_multi_iri ?orelout ?oout .
values ?orelout { ff:has-article ff:has-dataset ff:has-software ff:has-method ff:has-dmp ff:has-presentation ff:has-blog-post ff:has-media-coverage ff:has-social-post ff:has-podcast ff:has-discussion }
}
bind(strafter(str(?orelout), "https://w3id.org/fair/ff/terms/has-") as ?orawout)
bind(if(?orawout = "article", 0, if(?orawout = "dataset", 1, if(?orawout = "software", 2, if(?orawout = "method", 3, if(?orawout = "dmp", 4, if(?orawout = "presentation", 5, if(?orawout = "blog-post", 6, 7))))))) as ?orrout)
filter(concat(str(?orrout), "|", str(?oout)) < concat(str(?rrankout), "|", str(?iriout))
&& (!bound(?opkout) || contains(?mpkout, ?opkout)))
}
} group by ?iriout ?lblout ?icoout ?typout ?rrankout
}
bind((?iyout - floor(?iyout / 1) * 1) * 401 as ?bxout)
bind(floor(?iyout / 1) * 20 as ?byout)
bind(xsd:integer(floor((385 - 26 - strlen(?typout) * 4.6) / 5.15)) as ?cap0out)
bind(if(?cap0out < 8, 8, ?cap0out) as ?capout)
bind(if(strlen(?lblout) > ?capout, concat(substr(?lblout, 1, ?capout - 1), "โฆ"), ?lblout) as ?tout)
bind(replace(replace(replace(?tout, "&", "&"), "<", "<"), ">", ">") as ?escout)
bind(replace(replace(replace(?lblout, "&", "&"), "<", "<"), ">", ">") as ?fullout)
bind(concat('<text x="', str(?bxout), '" y="', str(?byout + 12), '" font-size="10" fill="#111">',
'<a href="/part?id=', encode_for_uri(str(?iriout)), '">', '<title>', ?fullout, '</title><tspan>', ?icoout, ' ', ?escout, '</tspan></a>',
'<tspan dx="9" font-size="9">', ?typout, '</tspan></text>') as ?boxout)
}
}
{
select (group_concat(distinct ?boxppl; separator="") as ?boxesppl) (count(*) as ?nppl) where {
{
select ?irippl ?lblppl ?icoppl ?typppl ?rrankppl (count(distinct ?oppl) as ?iyppl) where {
values ?_project_multi_iri {}
{
select ?irippl (min(?labelppl) as ?lblppl) (min(?iconppl) as ?icoppl)
(group_concat(distinct ?typeppl; separator=", ") as ?typppl) (min(?rrppl) as ?rrankppl)
(sample(?memberPubkeys) as ?mpkppl) 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 {
?npppl np:hasAssertion ?appl ;
np:hasPublicationInfo ?pippl ;
npa:hasValidSignatureForPublicKeyHash ?pkppl .
filter not exists { ?ixppl npx:invalidates ?npppl ; npa:hasValidSignatureForPublicKeyHash ?pkppl . }
filter not exists { ?sxppl npx:supersedes ?npppl . }
}
filter(contains(?memberPubkeys, ?pkppl))
graph ?appl {
?_project_multi_iri ?relppl ?irippl .
values ?relppl { ff:has-principal-investigator ff:has-participant ff:has-data-steward gen:hasProjectLead ff:has-project-leader }
}
optional { graph ?appl { ?irippl rdfs:label ?lappl } }
optional { graph ?pippl { ?irippl foaf:name ?lfppl } }
optional { graph ?pippl { ?irippl rdfs:label ?lqppl } }
bind(coalesce(?lappl, ?lfppl, ?lqppl, replace(str(?irippl), "^.*[/#]", "")) as ?labelppl)
bind(if(?relppl = ff:has-principal-investigator, "PI", if(?relppl in (gen:hasProjectLead, ff:has-project-leader), "project lead", if(?relppl = ff:has-data-steward, "data steward", "participant"))) as ?typeppl)
bind(if(?relppl = ff:has-principal-investigator, 0, if(?relppl in (gen:hasProjectLead, ff:has-project-leader), 1, if(?relppl = ff:has-data-steward, 2, 3))) as ?rrppl)
bind("๐ค" as ?iconppl)
} group by ?irippl
}
optional {
graph npa:graph {
?onpppl np:hasAssertion ?oappl ;
np:hasPublicationInfo ?opippl ;
npa:hasValidSignatureForPublicKeyHash ?opkppl .
filter not exists { ?oixppl npx:invalidates ?onpppl ; npa:hasValidSignatureForPublicKeyHash ?opkppl . }
filter not exists { ?osxppl npx:supersedes ?onpppl . }
}
graph ?oappl {
?_project_multi_iri ?orelppl ?oppl .
values ?orelppl { ff:has-principal-investigator ff:has-participant ff:has-data-steward gen:hasProjectLead ff:has-project-leader }
}
bind(if(?orelppl = ff:has-principal-investigator, 0, if(?orelppl in (gen:hasProjectLead, ff:has-project-leader), 1, if(?orelppl = ff:has-data-steward, 2, 3))) as ?orrppl)
filter(concat(str(?orrppl), "|", str(?oppl)) < concat(str(?rrankppl), "|", str(?irippl))
&& (!bound(?opkppl) || contains(?mpkppl, ?opkppl)))
}
} group by ?irippl ?lblppl ?icoppl ?typppl ?rrankppl
}
bind((?iyppl - floor(?iyppl / 4) * 4) * 210 as ?bxppl)
bind(floor(?iyppl / 4) * 20 as ?byppl)
bind(xsd:integer(floor((194 - 26 - strlen(?typppl) * 4.6) / 5.15)) as ?cap0ppl)
bind(if(?cap0ppl < 8, 8, ?cap0ppl) as ?capppl)
bind(if(strlen(?lblppl) > ?capppl, concat(substr(?lblppl, 1, ?capppl - 1), "โฆ"), ?lblppl) as ?tppl)
bind(replace(replace(replace(?tppl, "&", "&"), "<", "<"), ">", ">") as ?escppl)
bind(replace(replace(replace(?lblppl, "&", "&"), "<", "<"), ">", ">") as ?fullppl)
bind(concat('<text x="', str(?bxppl), '" y="', str(?byppl + 12), '" font-size="10" fill="#111">',
'<a href="/part?id=', encode_for_uri(str(?irippl)), '">', '<title>', ?fullppl, '</title><tspan>', ?icoppl, ' ', ?escppl, '</tspan></a>',
'<tspan dx="9" font-size="9">', ?typppl, '</tspan></text>') as ?boxppl)
}
}
{
select (group_concat(distinct ?boxinst; separator="") as ?boxesinst) (count(*) as ?ninst) where {
{
select ?iriinst ?lblinst ?icoinst ?typinst ?rrankinst (count(distinct ?oinst) as ?iyinst) where {
values ?_project_multi_iri {}
{
select ?iriinst (min(?labelinst) as ?lblinst) (min(?iconinst) as ?icoinst)
(group_concat(distinct ?typeinst; separator=", ") as ?typinst) (min(?rrinst) as ?rrankinst)
(sample(?memberPubkeys) as ?mpkinst) 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 {
?npinst np:hasAssertion ?ainst ;
np:hasPublicationInfo ?piinst ;
npa:hasValidSignatureForPublicKeyHash ?pkinst .
filter not exists { ?ixinst npx:invalidates ?npinst ; npa:hasValidSignatureForPublicKeyHash ?pkinst . }
filter not exists { ?sxinst npx:supersedes ?npinst . }
}
filter(contains(?memberPubkeys, ?pkinst))
graph ?ainst {
?_project_multi_iri ?relinst ?iriinst .
values ?relinst { ff:has-lead-institution ff:has-partner-institution ff:has-funder }
}
optional { graph ?ainst { ?iriinst rdfs:label ?lainst } }
optional { graph ?piinst { ?iriinst foaf:name ?lfinst } }
optional { graph ?piinst { ?iriinst rdfs:label ?lqinst } }
bind(coalesce(?lainst, ?lfinst, ?lqinst, replace(str(?iriinst), "^.*[/#]", "")) as ?labelinst)
bind(if(?relinst = ff:has-lead-institution, "lead institution", if(?relinst = ff:has-partner-institution, "partner", "funder")) as ?typeinst)
bind(if(?relinst = ff:has-lead-institution, 0, if(?relinst = ff:has-partner-institution, 1, 2)) as ?rrinst)
bind(if(?relinst = ff:has-funder, "๐ถ", "๐") as ?iconinst)
} group by ?iriinst
}
optional {
graph npa:graph {
?onpinst np:hasAssertion ?oainst ;
np:hasPublicationInfo ?opiinst ;
npa:hasValidSignatureForPublicKeyHash ?opkinst .
filter not exists { ?oixinst npx:invalidates ?onpinst ; npa:hasValidSignatureForPublicKeyHash ?opkinst . }
filter not exists { ?osxinst npx:supersedes ?onpinst . }
}
graph ?oainst {
?_project_multi_iri ?orelinst ?oinst .
values ?orelinst { ff:has-lead-institution ff:has-partner-institution ff:has-funder }
}
bind(if(?orelinst = ff:has-lead-institution, 0, if(?orelinst = ff:has-partner-institution, 1, 2)) as ?orrinst)
filter(concat(str(?orrinst), "|", str(?oinst)) < concat(str(?rrankinst), "|", str(?iriinst))
&& (!bound(?opkinst) || contains(?mpkinst, ?opkinst)))
}
} group by ?iriinst ?lblinst ?icoinst ?typinst ?rrankinst
}
bind((?iyinst - floor(?iyinst / 2) * 2) * 421 as ?bxinst)
bind(floor(?iyinst / 2) * 20 as ?byinst)
bind(xsd:integer(floor((405 - 26 - strlen(?typinst) * 4.6) / 5.15)) as ?cap0inst)
bind(if(?cap0inst < 8, 8, ?cap0inst) as ?capinst)
bind(if(strlen(?lblinst) > ?capinst, concat(substr(?lblinst, 1, ?capinst - 1), "โฆ"), ?lblinst) as ?tinst)
bind(replace(replace(replace(?tinst, "&", "&"), "<", "<"), ">", ">") as ?escinst)
bind(replace(replace(replace(?lblinst, "&", "&"), "<", "<"), ">", ">") as ?fullinst)
bind(concat('<text x="', str(?bxinst), '" y="', str(?byinst + 12), '" font-size="10" fill="#111">',
'<a href="/part?id=', encode_for_uri(str(?iriinst)), '">', '<title>', ?fullinst, '</title><tspan>', ?icoinst, ' ', ?escinst, '</tspan></a>',
'<tspan dx="9" font-size="9">', ?typinst, '</tspan></text>') as ?boxinst)
}
}
}
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/provenance
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/assertion
http://www.w3.org/ns/prov#wasAttributedTo
https://w3id.org/np/RA0SDqJIc3dtX2AihcvcSzBR7QIWfVl5lwk6U_MbH5RoA/nanopub-ecosystem-paper-bot
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/assertion
http://www.w3.org/ns/prov#wasDerivedFrom
https://w3id.org/np/RAHIwzJgrR6Ft5qD7Hmfm8ce7Bw1srAE9jwpiP2wMRifM
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/pubinfo
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://purl.org/dc/terms/created
2026-08-18T09:09:41Z
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://purl.org/dc/terms/creator
https://w3id.org/np/RA0SDqJIc3dtX2AihcvcSzBR7QIWfVl5lwk6U_MbH5RoA/nanopub-ecosystem-paper-bot
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://purl.org/dc/terms/license
https://creativecommons.org/licenses/by/4.0/
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://purl.org/nanopub/x/embeds
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/get-project-summary-svg
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
http://www.w3.org/2000/01/rdf-schema#label
Get project summary diagram as SVG
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate
http://purl.org/np/RAmRxSMXuHZWtDXqTXqTK_aM1KBPauATJg4_KqixamLiE
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate
https://w3id.org/np/RA0J4vUn_dekg-U1kK3AOEt02p9mT2WO03uGxLDec1jLw
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate
https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate
https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/sig
http://purl.org/nanopub/x/hasAlgorithm
RSA
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/sig
http://purl.org/nanopub/x/hasPublicKey
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxxo+arlpyxYYoHYYVTNSOWe/es90yVMBA8vaDyaAQk4pnOjTlpPptP5IkGg6zuCRIlm11QrHKkiU536witBT6gdh9kP9ay3S6m7wZ3iM7YcPMfhVHUXN6TBnuiKHHyJdVeK6RxMZlfXRKEz9HYcND+PGCXMVp8BofpKBKke3y4m8FTt+8aMEcgVcFBHFdrkWXoIIvkMlodtXkMgSwuGK8yXt/9lXqChIWpsbzu2juuX6pktMkfexkfQTwIH7oNSr/ma4KzZXERuLrCSO6IH5SfWXwjQUery6rKHiEMyie58mgBf0ssKh+uJoaZOqgbmj0f+EDwTIzq0dNsPA0A+n2QIDAQAB
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/sig
http://purl.org/nanopub/x/hasSignature
HuGML6SUd2fnixmZBtYpkZMwOR0u30WyPDU0YdPbM/efqpc6hQQJc/9oIes8RuMlaajEdNrv/y0E221ysnnEWISpoC2hKGgF4KC04XhzC7Mr1qfbbBIR75ZImud9ZcSpKPlM4V2r0+YFbPNTT4KffxlDFsS1PTPVqynJabDdsd3RAYB1OkNNvAWUmNmesNjFjmo/CaGbu6qW/pVaqccz09u5gI23n3WFLXbELchONyyyoC61MpVeursNGDQxZha9I1jcQC3OEufd01amdE53iWy9Su08IFLdegBaegllDVxEQ6r+JSnL85YwwS26TPAW5xp7078kWeYX3VrIx4J71w==
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/sig
http://purl.org/nanopub/x/hasSignatureTarget
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M
https://w3id.org/np/RARvo3-Sr-fO42h3xsQvHS4bxRACFPaqCVf2ZMnPiM0_M/sig
http://purl.org/nanopub/x/signedBy
https://w3id.org/np/RA0SDqJIc3dtX2AihcvcSzBR7QIWfVl5lwk6U_MbH5RoA/nanopub-ecosystem-paper-bot