← mustrd

MustRD ontology coverage

An RDF view of a mustrd term-coverage run: how well a test suite exercises an ontology, expressed as W3C DQV quality measurements plus a per-term breakdown, so it can be merged into a knowledge graph and queried over time. This is a quality of the ONTOLOGY (measured by the tests), not of the test suite.

IRI https://mustrd.org/coverage/

Download merged graph: Turtle RDF/XML JSON-LD N-Triples

Diagram

G CompetencyQuestion CompetencyQuestion Outcome Outcome Reference Reference QualityIssue QualityIssue detail string QualityIssue->Reference reference IssueType IssueType QualityIssue->IssueType issueType TestSpec TestSpec QualityIssue->TestSpec aboutTest Assertion Assertion Assertion->CompetencyQuestion onCompetencyQuestion Assertion->CompetencyQuestion duplicateOf Assertion->Outcome outcome Ontology Ontology Assertion->Ontology requiresOntology Assertion->TestSpec onTest TermCoverage TermCoverage kind string structuralReason string Exercise Exercise TermCoverage->Exercise exercise CoverageRole CoverageRole TermCoverage->CoverageRole role TermCoverage->CoverageRole cqRole SourceFile SourceFile filePath string fileReference string fileText string mediaType string TestSpec->SourceFile embeddedSource TestResult TestResult className string duration decimal module string testName string testType string TestResult->Outcome resultOutcome TestResult->TestSpec resultTest

 class · → object property · ▷ subClassOf · rows are data properties

Classes

Assertion cov:Assertion
Something a run asserts about a competency question: either one test's verification of it (cov:onTest + cov:outcome), or that it duplicates another CQ (cov:duplicateOf).
Coverage role cov:CoverageRole
Coverage run cov:CoverageRun
One mustrd coverage computation over one or more ontologies. Each run gets a fresh URI so successive runs accumulate in a knowledge graph rather than clobber. Carries prov:startedAtTime (when it ran), cov:gitCommit / cov:commit (the revision), and cov:ciRun (the CI job) when available.
Exercise cov:Exercise
One test's contribution to a term: whether it appears in that test's data and/or SPARQL.
Issue type cov:IssueType
Outcome cov:Outcome
Quality issue cov:QualityIssue
A problem surfaced while computing coverage.
Reference cov:Reference
One test's reference to an undeclared term (in its data and/or SPARQL).
Source file cov:SourceFile
The verbatim text of a file (or query) a run read.
Term coverage cov:TermCoverage
How one declared ontology term is exercised by the tests in a run.
Test Result cov:TestResult
One test's execution outcome in a run (mustrd spec or plain pytest test).

Properties

CI run cov:ciRun
A link to the CI job that produced the run (e.g. the GitHub Actions run), when run in CI.
domain cov:CoverageRun · range · ObjectProperty
about term cov:aboutTerm
The term the issue concerns (which may be undeclared).
domain cov:QualityIssue · range · ObjectProperty
about test cov:aboutTest
domain cov:QualityIssue · range must:TestSpec · ObjectProperty
class name cov:className
domain cov:TestResult · range xsd:string · DatatypeProperty
cq role cov:cqRole
As cov:role, but counting only competency-question tests.
domain cov:TermCoverage · range cov:CoverageRole · ObjectProperty
detail cov:detail
domain cov:QualityIssue · range xsd:string · DatatypeProperty
duplicate of cov:duplicateOf
On a cov:Assertion (whose cov:onCompetencyQuestion is the subject CQ): another CQ that shares its question text. Both are excluded from the coverage calculation as a likely copy/paste. The relation is symmetric between the members of a duplicate group. Modelling it as a run assertion keeps the finding off the CQ node itself.
domain cov:Assertion · range cq:CompetencyQuestion · ObjectProperty
duration cov:duration
Wall-clock execution time in seconds.
domain cov:TestResult · range xsd:decimal · DatatypeProperty
embedded source cov:embeddedSource
A source this test is defined by or executes.
domain must:TestSpec · range cov:SourceFile · ObjectProperty
exercise cov:exercise
A per-test record of how one test exercises the term.
domain cov:TermCoverage · range cov:Exercise · ObjectProperty
file path cov:filePath
Where the text came from, relative to the run's working directory. Absent for a query given inline in the spec.
domain cov:SourceFile · range xsd:string · DatatypeProperty
file reference cov:fileReference
How a spec named this file — the must:file or must:fileurl value as written, when it differs from cov:filePath. Lets a report turn the reference inside a spec into a link to the embedded copy.
domain cov:SourceFile · range xsd:string · DatatypeProperty
file text cov:fileText
The verbatim content.
domain cov:SourceFile · range xsd:string · DatatypeProperty
git commit cov:gitCommit
The git commit SHA the run was computed at (GITHUB_SHA in CI, else the local HEAD).
domain cov:CoverageRun · range xsd:string · DatatypeProperty
git commit URL cov:gitCommitUrl
A web link to that commit — cov:gitRepository + '/commit/' + cov:gitCommit (e.g. the GitHub commit page), when the repository is known. The clickable counterpart of the cov:gitCommit SHA.
domain cov:CoverageRun · range · ObjectProperty
git repository cov:gitRepository
A link to the source repository the run was computed from (GITHUB_REPOSITORY in CI, else the local `origin` remote, normalised to an https URL).
domain cov:CoverageRun · range · ObjectProperty
in data cov:inData
domain · range xsd:boolean · DatatypeProperty
in query cov:inQuery
domain · range xsd:boolean · DatatypeProperty
issue type cov:issueType
domain cov:QualityIssue · range cov:IssueType · ObjectProperty
kind cov:kind
Whether the term is a 'class' or a 'property'.
domain cov:TermCoverage · range xsd:string · DatatypeProperty
media type cov:mediaType
'text/turtle' or 'application/sparql-query'.
domain cov:SourceFile · range xsd:string · DatatypeProperty
module cov:module
domain cov:TestResult · range xsd:string · DatatypeProperty
on competency question cov:onCompetencyQuestion
domain cov:Assertion · range cq:CompetencyQuestion · ObjectProperty
on test cov:onTest
domain cov:Assertion · range must:TestSpec · ObjectProperty
outcome cov:outcome
domain cov:Assertion · range cov:Outcome · ObjectProperty
reference cov:reference
A per-test record of where a term is referenced (data and/or SPARQL).
domain cov:QualityIssue · range cov:Reference · ObjectProperty
requires ontology cov:requiresOntology
An ontology the test matches its data only *through* (via that ontology's class hierarchy), so it must be loaded as an input for the test to pass. Absence means the test passes on its own data. Replaces an earlier boolean.
domain cov:Assertion · range owl:Ontology · ObjectProperty
result outcome cov:resultOutcome
domain cov:TestResult · range cov:Outcome · ObjectProperty
result test cov:resultTest
The mustrd test spec this result is for (absent for plain pytest tests).
domain cov:TestResult · range must:TestSpec · ObjectProperty
role cov:role
How the term is exercised across all tests.
domain cov:TermCoverage · range cov:CoverageRole · ObjectProperty
source file cov:sourceFile
The file an ontology was read from, as a path relative to the run's working directory (for report links).
domain · range xsd:string · DatatypeProperty
structural reason cov:structuralReason
Why a structural term is load-bearing (e.g. domain/range of a used property).
domain cov:TermCoverage · range xsd:string · DatatypeProperty
term cov:term
The ontology term (class or property) this record is about.
domain cov:TermCoverage · range · ObjectProperty
test cov:test
The mustrd test spec of an exercise or reference.
domain · range must:TestSpec · ObjectProperty
test name cov:testName
domain cov:TestResult · range xsd:string · DatatypeProperty
test type cov:testType
'mustrd' or 'pytest'.
domain cov:TestResult · range xsd:string · DatatypeProperty
uses in data cov:usesInData
A domain term (declared or not) the test asserts in its input data.
domain must:TestSpec · range · ObjectProperty
uses in query cov:usesInQuery
A domain term (declared or not) the test names in its SPARQL.
domain must:TestSpec · range · ObjectProperty

SHACL shapes

None defined.