Skip to content

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)

Clone this wiki locally