Linked.Archi

Zachman Framework Deliverable Templates

Deliverable Templates

https://meta.linked.archi/zachman/deliverable-templates#

v0.3.0 zachdt: Kalin Maldzhanski Linked.Archi Modified: 2026-02-17 License

Deliverable templates for the Zachman Framework. Provides an EA Artifact Coverage Report that queries the knowledge graph for artifacts classified by Zachman perspective and interrogative (or directly by cell), identifies gaps, and generates a coverage matrix.

EA Artifact Coverage Report (Zachman)

A coverage report that classifies all architecture artifacts in the knowledge graph by their Zachman perspective (row) and interrogative (column), identifies which cells are populated and which are gaps, and produces a 6x6 coverage matrix. Supports both axis-level classification (perspective + interrogative) and direct cell-level classification. Useful for EA practice maturity assessment and artifact portfolio management.

Target Purposes: Governing
Available Formats: MarkdownFormat, HTMLFormat

Sections

1 1. Coverage Matrix
6x6 matrix showing artifact count per cell. Rows are perspectives (Executive through Enterprise), columns are interrogatives (What through Why). Cells with zero artifacts are highlighted as gaps. Includes both axis-level and cell-level classified artifacts.
SPARQL Query
PREFIX zach: <https://meta.linked.archi/zachman/onto#>
PREFIX zachtax: <https://meta.linked.archi/zachman/tax#>
PREFIX arch: <https://meta.linked.archi/core#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?perspective ?perspLabel ?interrogative ?intLabel
       (COUNT(DISTINCT ?artifact) AS ?count)
WHERE {
    ?perspective skos:broader zachtax:Perspective ;
                 skos:prefLabel ?perspLabel ;
                 zachtax:rowOrder ?rowOrd .
    ?interrogative skos:broader zachtax:Aspect ;
                   skos:prefLabel ?intLabel ;
                   zachtax:columnOrder ?colOrd .
    OPTIONAL {
        {
            # Axis-level classification
            ?artifact arch:viewpointCoversAspect ?interrogative ;
                      arch:viewpointAddressesPerspective ?perspective .
        } UNION {
            # Cell-level classification
            ?cell skos:broader zachtax:Cell ;
                  zach:hasAspect ?interrogative ;
                  zach:hasPerspective ?perspective .
            ?artifact zach:classifiedByCell ?cell .
        }
    }
}
GROUP BY ?perspective ?perspLabel ?interrogative ?intLabel ?rowOrd ?colOrd
ORDER BY ?rowOrd ?colOrd
2 2. Gap Analysis
Lists all Zachman cells (perspective x interrogative) that have no artifacts classified against them. These represent potential coverage gaps in the EA practice.
SPARQL Query
PREFIX zach: <https://meta.linked.archi/zachman/onto#>
PREFIX zachtax: <https://meta.linked.archi/zachman/tax#>
PREFIX arch: <https://meta.linked.archi/core#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?perspective ?perspLabel ?interrogative ?intLabel ?cellLabel
WHERE {
    ?perspective skos:broader zachtax:Perspective ;
                 skos:prefLabel ?perspLabel ;
                 zachtax:rowOrder ?rowOrd .
    ?interrogative skos:broader zachtax:Aspect ;
                   skos:prefLabel ?intLabel ;
                   zachtax:columnOrder ?colOrd .
    ?cell skos:broader zachtax:Cell ;
          zach:hasAspect ?interrogative ;
          zach:hasPerspective ?perspective ;
          skos:prefLabel ?cellLabel .
    FILTER NOT EXISTS {
        { ?artifact arch:viewpointCoversAspect ?interrogative ;
                    arch:viewpointAddressesPerspective ?perspective . }
        UNION
        { ?artifact zach:classifiedByCell ?cell . }
    }
}
ORDER BY ?rowOrd ?colOrd
3 3. Artifacts by Perspective
For each perspective (row), lists all artifacts classified against it with their interrogative classification and labels.
SPARQL Query
PREFIX zach: <https://meta.linked.archi/zachman/onto#>
PREFIX zachtax: <https://meta.linked.archi/zachman/tax#>
PREFIX arch: <https://meta.linked.archi/core#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?perspective ?perspLabel ?artifact ?artifactLabel ?interrogative ?intLabel
WHERE {
    {
        ?artifact arch:viewpointCoversAspect ?interrogative ;
                  arch:viewpointAddressesPerspective ?perspective ;
                  skos:prefLabel ?artifactLabel .
    } UNION {
        ?cell skos:broader zachtax:Cell ;
              zach:hasAspect ?interrogative ;
              zach:hasPerspective ?perspective .
        ?artifact zach:classifiedByCell ?cell ;
                  skos:prefLabel ?artifactLabel .
    }
    ?perspective skos:broader zachtax:Perspective ;
                 skos:prefLabel ?perspLabel ;
                 zachtax:rowOrder ?rowOrd .
    ?interrogative skos:broader zachtax:Aspect ;
                   skos:prefLabel ?intLabel ;
                   zachtax:columnOrder ?colOrd .
}
ORDER BY ?rowOrd ?colOrd ?artifactLabel
4 4. Summary Statistics
Total artifact count, coverage percentage (populated cells / 36), and distribution by perspective and interrogative.
SPARQL Query
PREFIX zach: <https://meta.linked.archi/zachman/onto#>
PREFIX zachtax: <https://meta.linked.archi/zachman/tax#>
PREFIX arch: <https://meta.linked.archi/core#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT
    (COUNT(DISTINCT ?artifact) AS ?totalArtifacts)
    (COUNT(DISTINCT ?cellKey) AS ?populatedCells)
WHERE {
    {
        SELECT (CONCAT(STR(?p), "-", STR(?i)) AS ?cellKey) ?artifact
        WHERE {
            {
                ?artifact arch:viewpointCoversAspect ?i ;
                          arch:viewpointAddressesPerspective ?p .
            } UNION {
                ?cell skos:broader zachtax:Cell ;
                      zach:hasAspect ?i ;
                      zach:hasPerspective ?p .
                ?artifact zach:classifiedByCell ?cell .
            }
            ?p skos:broader zachtax:Perspective .
            ?i skos:broader zachtax:Aspect .
        }
    }
}
5 5. Reification Transformation Coverage
Shows artifact distribution by reification transformation level, revealing which levels of abstraction are well-covered and which are sparse.
SPARQL Query
PREFIX zach: <https://meta.linked.archi/zachman/onto#>
PREFIX zachtax: <https://meta.linked.archi/zachman/tax#>
PREFIX arch: <https://meta.linked.archi/core#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?transformation ?transLabel (COUNT(DISTINCT ?artifact) AS ?count)
WHERE {
    ?perspective skos:broader zachtax:Perspective ;
                 zach:hasPerspective ?transformation .
    ?transformation skos:prefLabel ?transLabel ;
                    zachtax:rowOrder ?rowOrd .
    OPTIONAL {
        {
            ?artifact arch:viewpointAddressesPerspective ?perspective .
        } UNION {
            ?cell skos:broader zachtax:Cell ;
                  zach:hasPerspective ?perspective .
            ?artifact zach:classifiedByCell ?cell .
        }
    }
}
GROUP BY ?transformation ?transLabel ?rowOrd
ORDER BY ?rowOrd