Program
type: Class
comment: The original program
subclass of: SoftwareSourceCode

extension
type: Property
comment: The expected extension files are in without compiling
domain includes: Program
range includes: Text

fileName
type: Property
comment: The full fileName, i.e. [[name]].[[extension]]
domain includes: Program
range includes: Text

Mutant
type: Class
comment: A modified version of a [[Program]].
subclass of: SoftwareSourceCode

operator
type: Property
comment: The operator(s) that are needed to get the mutant from the [[Program]].
domain includes: Mutant
range includes: Operator

equivalence
type: Property
comment: If the mutant is equivalent to [[Program]] this should be true. If it is not equivalent, it should be false. Else empty/unknown/none/null
domain includes: Mutant
range includes: Boolean

originalProgram
type: Property
comment: The [[Program]] that the mutant originates from.
domain includes: Mutant
range includes: Program

difference
type: Property
comment: The difference between the [[Mutant]] and the [[Program]]. Should be generated using the following bash command: diff -u0 --ignore-all-space --ignore-blank-lines [SoftwareSourceCode location] [mutant location] | tail -n+3
domain includes: Mutant
range includes: Text

ripPlus
type: Property
comment: The RIP model classifying equivalent mutants as defined by J. Voas and G. McGraw in "Software Fault Injection:Inoculating Programs Against Errors." and extended by X. Yao et al. in "A Study of Equivalent and Stubborn Mutation Operatorsusing Human Analysis of Equivalence".
domain includes: Mutant
range includes: RIPPlus

RIPPlus
type: DataType
type: Class
comment: The RIP model classifying equivalent mutants as defined by J. Voas and G. McGraw in "Software Fault Injection:Inoculating Programs Against Errors." and extended by X. Yao et al. in "A Study of Equivalent and Stubborn Mutation Operatorsusing Human Analysis of Equivalence".

Unreachable
type: RIPPlus
comment: Mutated statement or predicate cannot be reached.

UnreachableSC
type: RIPPlus
comment: Mutated sub-expression never evaluated though its containing predicate is.

UninfectiousContextFree
type: RIPPlus
comment: Infection can never occur in any state.

UninfectiousContextSensitive
type: RIPPlus
comment: Not context free, but infection cannot occur in anyreachingstate.

UninfectiousSubpathEuivalent
type: RIPPlus
comment: Mutation changes path executed, but all paths are equivalent.

NotPropagatingUnobservable
type: RIPPlus
comment: No output statement mentions an infected variable.

NotPropagatingObservable
type: RIPPlus
comment: Outputs mention infected variable(s), but infection fails to reach any.

Operator
type: Class
comment: A rule that will change a small part of [[Program]], e.g. < would become >=.
subclass of: Thing

operatorAbbreviation
type: Property
comment: The short name, or abbreviation, of the mutant operator.
domain includes: Operator
range includes: Text

operatorDescription
type: Property
comment: The text representation in LaTeX of the mathematical operation.
domain includes: Operator
range includes: Text

operatorAction
type: Property
comment: The type of operation the operator will perform.
domain includes: Operator
range includes: OperatorAction

OperatorAction
type: DataType
type: Class
comment: The type of operation the operator will perform. Options: [[InsertionOperator]], [[ReplacementOperator]], [[DeletionOperator]]

InsertionOperator
type: OperatorAction
comment: The operator that inserts.

ReplacementOperator
type: OperatorAction
comment: The operator that replaces.

DeletionOperator
type: OperatorAction
comment: The operator that deletes.

operatorClass
type: Property
comment: The class of the operator as defined by King and Offurr in "A fortran language system for mutation-based software testing"
domain includes: Operator
range includes: OperatorClass

OperatorClass
type: DataType
type: Class
comment: The class of operator as defined by King and Offurr in "A fortran language system for mutation-based software testing" Options: [[CoincidentalCorrectness]], [[PredicateAnalysis]], [[StatementAnalysis]]

CoincidentalCorrectness
type: OperatorClass
comment: CoincidentalCorrectness, also CCA, changes to variable names or other references.

PredicateAnalysis
type: OperatorClass
comment: Predicate analysis, also PDA, changes to the predicate of a statement.

StatementAnalysis
type: OperatorClass
comment: StatementAnalysis, also SAL, changes to entire statements.

primitiveOperator
type: Property
comment: The primitive action of operator used as defined by Y. Ma in "Description of muJava's Method-level Mutation Operators"
domain includes: Operator
range includes: PrimitiveOperator

PrimitiveOperator
type: DataType
type: Class
comment: The primitive action of operator used as defined by Y. Ma in "Description of muJava's Method-level Mutation Operators"

Arithmetic
type: PrimitiveOperator
comment: An arithmetic operator is a mathematical function that takes two operands and performs a calculation on them. This operator excludes any bitwise operations, e.g. {+,-,*,/,%,++,--} for the [[schema:ComputerLanguage]] Java.

Relational
type: PrimitiveOperator
comment: A relational operator is an operator that tests or defines some kind of relation between two entities, e.g. {>, >=, <, <=, ==, !=} for the [[schema:ComputerLanguage]] Java.

ShortCircuitEvaluation
type: PrimitiveOperator
comment: A Conditional operator, also short circuit boolean operator, is an operator with which the second argument is executed or evaluated only if the first argument does not suffice to determine the value of the expression, e.g. {&&,||} for the [[schema:ComputerLanguage]] Java.

Shift
type: PrimitiveOperator
comment: A shift operator does a bitwise operation that shifts all of the bits of its operand, e.g. {>>,<<,>>>} for the [[schema:ComputerLanguage]] Java.

Logical
type: PrimitiveOperator
comment: A logical operator is a bitwise operation that is not a shift operator, e.g. {&, |, ~} for the [[schema:ComputerLanguage]] Java.

ShortcutAssignment
type: PrimitiveOperator
comment: A short-cut assignment operator, is a operator that combines the assignment with another operation, e.g. {+=,-=,*=,/=,%=,>>=,<<=,>>>=} for the [[schema:ComputerLanguage]] Java

Statement
type: PrimitiveOperator
comment: A statement operator does an operation on a statement

Variable
type: PrimitiveOperator
comment: A variabl operator does an operation on a variable

Constant
type: PrimitiveOperator
comment: A constant operator does an operation on a constant