-
Notifications
You must be signed in to change notification settings - Fork 0
List of Mutation Operators
Tobias John edited this page May 12, 2025
·
4 revisions
The following 59 operators are contained in the package org.smolang.robust.mutant.operators. We list the operators that are domain-independent. Most operators target OWL ontologies, in particular the EL-profile.
| Name | Description |
|---|---|
DeclareClassMutation |
declares a new class (with fresh IRI) |
DeclareObjectPropMutation |
delares a new object property (with fresh IRI) |
DeclareDataPropMutation |
declares a new data property (with fresh IRI) |
AddSubclassRelationMutation |
adds a rdfs:subClassOf-relation between two OWL classes |
RemoveSubclassRelationMutation |
removes a rdfs:subClassOf relation |
AddEquivalentClassRelationMutation |
adds an owl:equivalentClass-relation between two OWL classes |
RemoveEquivClassRelationMutation |
removes an owl:equivalentClass-relation |
AddDisjointClassRelationMutation |
adds an owl:disjointWith-realtion between two OWL classes |
RemoveDisjointClassRelationMutation |
removes an owl:disjointWith-relation |
ReplaceClassWithTopMutation |
replaces an OWL class with owl:Thing
|
ReplaceClassWithBottomMutation |
replaces an OWL class with owl:Nothing
|
ReplaceClassWithSiblingMutation |
replaces an OWL class with another OWL class with which is shares a super-class |
AddReflexiveObjectPropertyRelationMutation |
declares an object property to be reflexive |
AddTransitiveObjectPropertyRelationMutation |
declares an object property to be transitive |
AddObjectPropDomainMutation |
adds an rdfs:domain relation between an object property and an OWL class |
AddDataPropDomainMutation |
adds an rdfs:domain relation between a data property and an OWL class |
RemoveDomainRelationMutation |
removes an rdfs:domain relation |
AddObjectPropRangeMutation |
adds an rdfs:range relation between an object property and an OWL class |
AddDataPropRangeMutation |
adds an rdfs:range relation between a data property and one of the domains allowed for the OWL-EL fragment (see definition of OWL-EL) |
RemoveRangeRelationMutation |
removes an rdfs:range relation |
AddSubObjectPropMutation |
adds rdfs:subPropertyOf relation between two object properties |
AddSubDataPropMutation |
adds rdfs:subPropertyOf relation between two data properties |
RemoveSubPropMutation |
removes an rdfs:subPropertyOf relation |
AddEquivObjectPropMutation |
adds an owl:equivalentProperty relation between two object properties |
AddEquivDataPropMutation |
adds an owl:equivalentProperty relation between two data properties |
RemoveEquivPropMutation |
removes an owl:equivalentProperty relation |
AddPropertyChainMutation |
selects three object properties p0 p1, p2 and declares p1 to be equal to the property chain consisting of p1 followed by p2 |
AddObjectIntersectionOfMutation |
selects an OWL class C and two to five other OWL classes and either declares C as a subclass of the intersection of the other classes or the intersection of the other classes as a subclass of C |
AddELObjectOneOfMutation |
selects an OWL class C and a named individual i and either declares C as a subclass of ObjectOneOf(i) or ObjectOneOf(i) as a subclass of C |
AddObjectSomeValuesFromMutation |
selects two OWL classes C, C1 and an object property p and either declares C as a subclass of ObjectSomeValuesFrom(p C1) or ObjectSomeValuesFrom(p C1) as a subclass of C |
AddObjectHasValueMutation |
selects an OWL class C, an individual i and an object property p and either declares C as a subclass of ObjectHasValue(p C1) or ObjectHasValue(p C1) as a subclass of C |
AddDataHasValueMutation |
selects an OWL classs C, a random literal l and a data property p and either declares C as a subclass of DataHasValue(p l) or DataHasValue(p l) as a subclass of C. random literals from a few domains are considered / generated, e.g., decimals, strings, plain literals or literals with language tag |
AddObjectHasSelfMutation |
selects an OWL classs C and an object property p and either declares C as a subclass of ObjectHasSelf(p) or ObjectHasSelf(p l) as a subclass of C |
AddELDataIntersectionOfMutation |
selects an OWL classs C, a data property p and and two or data ranges from the EL-profile. It either declares C as a subclass of DataSomeValuesFrom(p DataIntersectionOf(<dataRanges>)) or DataSomeValuesFrom(p DataIntersectionOf(<dataRanges>)) as a subclass of C |
AddELDataOneOfMutation |
selects an OWL classs C, a data property p and a random literal l. It either declares C as a subclass of SomeValuesFrom(p DataOneOf(l)) or SomeValuesFrom(p DataOneOf(l)) as a subclass of C |
AddELSimpleDataSomeValuesFromMutation |
selects an OWL classs C, a data property p and a data range from the EL-profile R. It either declares C as a subclass of SomeValuesFrom(p R) or SomeValuesFrom(p R) as a subclass of C |
CEUAMutation |
removes one conjunct in a complex class expression |
CEUOMutation |
removes one disjunct in a complex class expression |
ACATOMutation |
replaces a conjunction by a disjunction in a complex class expression |
ACOTAMutation |
replaces a disjunction by a conjunction in a complex class expression |
AddDatatypeDefinition |
defines a new data type (fresh IRI) using DataOneOf(l) where l is a random literal |
AddHasKeyMutation |
adds a HasKey axiom |
AddIndividualMutation |
declares a new named individual (fresh IRI) |
RemoveIndividualMutation |
deletes node that is a named individual from the graph |
AddClassAssertionMutation |
add a class assertion for a named individual and an OWL class |
RemoveClassAssertionMutation |
removes a class assertion (where the class is an OWL class) |
AddObjectPropertyRelationMutation |
adds an object property assertion between two individuals |
RemoveObjectPropertyRelationMutation |
removes an object property relation |
AddNegativeObjectPropertyRelationMutation |
adds a negative assertion of an object property between two individuals |
RemoveNegativePropertyAssertionMutation |
removes a negative property assertion |
AddSameIndividualAssertionMutation |
mark two individuals as the same |
RemoveSameIndividualAssertionMutation |
remove an assertion that two individuals are the same |
AddDifferentIndividualAssertionMutation |
add an assertion that two individuals are different |
RemoveDifferentIndividualAssertionMutation |
removes an assertion that two individuals are different |
BasicAddDataPropertyRelationMutation |
adds a data property assertion between an individual and a literal |
RemoveDataPropertyRelationMutation |
removes an data property assertion |
AddNegativeDataPropertyRelationMutation |
adds a negative assertion of a data property between an individual and a literel |
RemoveStatementMutation |
removes a triple from the graph |
RemoveNodeMutation |
removes a node from the graph (note: this is a quite distructive action and might break other structures in the graph, e.g. lists) |
Overview
User Documentation
- Installation
- General Usage
- Mutation Operator Specification
- Mask Specification
- Operator Extraction
- Examples
Developer Documentation
Misc