Skip to content

Mask Specification

Tobias John edited this page May 12, 2025 · 7 revisions

Mask Specification

Masks are way to restrict the shape of the generated mutants. We discuss the motivation why to use them and how to obtain them in our publication "Mutation-Based Integration Testing of Knowledge Graph Applications".

Configuration File

The selected mask is contained in the condition in the configuration file. The following is an example:

condition:
    reasoning:
        consistency: true
        reasoner: hermit
    masks:
        - file: examples/wiki/allFeatures/AsubClassOfB.ttl
        - file: examples/wiki/allFeatures/AsubClassOfC.ttl

The condition has two elements: reasoning and masks.

  • reasoning allows to specify a reasoner that checks the consistency of the generated RDF graph and ensures that only consistent graphs are generated. Two elements need to be specified:
    • consistency:
      • a boolean value (true / false)
      • if set to true, the selected reasoner needs to classify the generated graph as consistent
      • if set to false, the consistency classification of the reasoner is irrelevant
    • reasoner
      • the reasoner that is used
      • RDFMutate provides the following OWL reasoners HermiT (hermit), Pellet (pellet), ELK (elk) and the OWL reasoner of Apache Jena (jena)
      • value none can be used if no reasoner should be used
  • masks allows to provide a list of files from which SHACL shapes should be loaded
    • file: element that contains the path to a file

If you want to use reasoners that are not provided by RDFMutate, please consult the Developer Documentation.

SHACL Mask Files

We use the SHACL standard to express restrictions on the shape of the generated graph. All the shapes from all the files are combined into one shape graph by RDFMutate and the generated graphs do all conform to this combined shape graph.

We show some examples of SHACL shapes for masks on the Examples page.

Clone this wiki locally