Get FSR typology diagram as SVG
has assertion: assertion
has provenance: provenance
has publication info: pubinfo
type: Nanopublication
created: 2026-08-11T14:31:47Z
creator: Tobias Kuhn
license: https://creativecommons.org/licenses/by/4.0/
embeds: Get FSR typology diagram as SVG

Get FSR typology diagram as SVG
description: Returns a single result row with one 'svg' column holding a complete SVG document rendering the FSR typology of the FAIR Implementation Profile (FIP) Ontology, computed dynamically from the published class definitions. This is the query behind the 'FSR typology' SVG view (gen:SvgView) and is specific to the FIP Ontology: it mirrors the hand-drawn FSR typology diagram with three fixed columns headed by FAIR Data Policy, FAIR Specification, and FAIR Supporting Technology, listing each column's subclasses (and their subclasses, indented) as boxes hanging off a vertical spine with a subtype triangle. Classes that are also FAIR-Enabling Resources (directly, or via their parent for nested entries) get a gray background; a legend below the columns explains the FSR/FER distinction. Box labels link root-relatively (/part?id=...) so they resolve inside the rendering Nanodash instance, which appends the page context; labels are shown in full. Box labels are shown in full, wrapping to two lines when needed. Each class that declares the FAIR (sub-)principles it enables (fip:enables, present in the legacy per-term nanopubs, fetched via a federated lookup on the full repo) gets a badge box attached on the right, as in the hand-drawn original; each principle code links to the principle's IRI. The FSR/FER legend boxes link to their class terms likewise. Link text carries a neutral fill that the rendering page's stylesheet overrides with its own link colors. Positions are computed via rank subqueries, so the output is deterministic. The 'resource' parameter (the ontology) is used to derive the class namespace filter.
license: LICENSE-2.0
type: grlc-query
sparql: prefix np: <http://www.nanopub.org/nschema#> prefix npa: <http://purl.org/nanopub/admin/> prefix npx: <http://purl.org/nanopub/x/> prefix owl: <http://www.w3.org/2002/07/owl#> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix xsd: <http://www.w3.org/2001/XMLSchema#> select (concat( ' ', group_concat(?frag; separator=""), '<g transform="translate(20,', str((96 + max(?iy) * 38 + 24)), ')">',' ',' ',' FAIR Supporting Resource (FSR) ',' ',' ',' ',' FAIR-Enabling Resource (FER) ',' ',' All resources in this typology are ',' FAIR Supporting Resources (FSR), but ',' the FAIR-Enabling Resources (FER, ',' gray background) among them are ',' essential for the FAIR Principles. ',' </g>', ' ') as ?svg) where { # --- one row per rendered box, with rank ?iy inside its column { select ?b ?bx ?c ?clbl ?ind ?fer (count(*) as ?iy) where { { { { select ?b ?bx ?c (coalesce(min(?lu1), min(?la1), replace(str(?c), "^.*[/#]", "")) as ?clbl) where { values (?b ?bx) { (<https://w3id.org/fair/fip/terms/FAIR-Data-Policy> 0) (<https://w3id.org/fair/fip/terms/FAIR-Specification> 1) (<https://w3id.org/fair/fip/terms/FAIR-Supporting-Technology> 2) } graph npa:graph { ?np1 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk1 ; npx:introduces ?c ; np:hasAssertion ?a1 . filter not exists { ?npi1 npx:invalidates ?np1 ; npa:hasValidSignatureForPublicKeyHash ?pk1 . } } graph ?a1 { ?c a owl:Class ; rdfs:subClassOf ?b . optional { ?c rdfs:label ?lu1 . filter(lang(?lu1) = "") } optional { ?c rdfs:label ?la1 . } } filter(strstarts(str(?c), replace(str(?_resource_iri), "[^/#]*$", ""))) } group by ?b ?bx ?c } bind(0 as ?ind) bind(concat(?clbl, "|", str(?c)) as ?sk) bind(if(exists { graph npa:graph { ?npf2 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pkf2 ; npx:introduces ?c ; np:hasAssertion ?af2 . filter not exists { ?npfi2 npx:invalidates ?npf2 ; npa:hasValidSignatureForPublicKeyHash ?pkf2 . } } graph ?af2 { ?c rdfs:subClassOf <https://w3id.org/fair/fi…

sig
has algorithm: RSA
signed by: Tobias Kuhn