{# Renderers over conf.profile (ProfileAnalytics); no queries are issued here (DEC-6). render_report enables autoescape for this template: endpoint data is untrusted. #} {# Shorten an IRI with the first matching prefix from prefixes.json ({"skos:": "http://…#"}). #} {% macro curie(iri, prefixes) -%} {%- set found = namespace(text=iri) -%} {%- if iri -%} {%- for prefix, uri in prefixes.items() -%} {%- if found.text == iri and iri.startswith(uri) -%} {%- set found.text = prefix ~ iri[uri|length:] -%} {%- endif -%} {%- endfor -%} {%- endif -%} {{- found.text if found.text else '—' -}} {%- endmacro %} {# A number rounded to 2 decimals; an absent value is a dash. #} {% macro num(value) -%} {{- '—' if value is none else (value | round(2) if value is float else value) -}} {%- endmacro %} {% macro precision(cls) -%} {%- if cls.precision_mode == 'first_n' -%} first {{ cls.observed_instances }} of {{ cls.instances }} {%- if cls.sample_shared == false %} (sample may differ between queries){% endif -%} {%- else -%} exact {%- endif -%} {%- endmacro %} {% macro class_section(cls, prefixes) -%}

Class {{ curie(cls.class_iri, prefixes) }}

Instances: {{ cls.instances }} · precision: {{ precision(cls) }} {%- if cls.parents %} · parents: {% for p in cls.parents %}{{ curie(p.parent, prefixes) }} ({{ p.source }}){{ ", " if not loop.last }}{% endfor %} {%- endif %}

{% for p in cls.property_partitions or [] %} {% endfor %}
PropertySubjectsMinMaxAvgKind Distinct valuesValue typesConfidenceCardinalityInheritanceLanguage coverage
{{ curie(p.property, prefixes) }} {{ num(p.subjects_with_property) }} {{ num(p.min) }} {{ num(p.max) }} {{ num(p.mean) }} {{ p.property_kind or '—' }} {{ num(p.distinct_objects) }} {% if p.value_types %}{% for t in p.value_types %}{{ curie(t, prefixes) }}{{ ", " if not loop.last }}{% endfor %}{% else %}—{% endif %} {{ num(p.confidence) }} {{ p.cardinality_label or ('present' if p.presence_only else '—') }} {{ p.inheritance or '—' }} {{ num(p.language_coverage) }}
The shape of {{ curie(cls.class_iri, prefixes) }} class instances
{%- endmacro %} {% macro collection_section(profile, prefixes) -%}

Collection

Endpoint {{ profile.endpoint | e }}{% if profile.tool_version %}, rdf-fingerprinter {{ profile.tool_version }}{% endif %}.

{% for name, value in profile.settings.model_dump().items() %} {% endfor %}
SettingValue
{{ name }}{{ '—' if value is none else value }}
Settings used
{% if profile.failures %} {% for f in profile.failures %} {% endfor %}
GraphClassPropertyMeasurementAttemptsMessage
{{ f.graph or 'default' }} {{ curie(f.class_iri, prefixes) }} {{ curie(f.property, prefixes) }} {{ f.query_kind }} {{ num(f.attempts) }} {{ f.message | e }}
Failures: these measurements are missing from the report
{% else %}

Every measurement succeeded.

{% endif %}
{%- endmacro %}