3.1.12.3. rule/Rule¶
3.1.12.3.1. Class Rule
¶
-
class
mod.
Rule
¶ Model of a transformation rule in the Double Pushout formalism.
-
vertices
¶ (Read-only) An iterable of all vertices in the rule.
- Type
RuleVertexRange
-
edges
¶ (Read-only) An iterable of all edges in the rule.
- Type
RuleEdgeRange
-
left
¶ (Read-only) A proxy object representing the left graph of the rule.
- Type
-
context
¶ (Read-only) A proxy object representing the context graph of the rule.
- Type
-
right
¶ (Read-only) A proxy object representing the right graph of the rule.
- Type
-
makeInverse
()¶ - Returns
a rule representing the inversion of this rule.
- Return type
- Raises
LogicError
if inversion is not possible (due to matching constraints).
-
print
()¶ -
print
(first, second=None) Print the rule, using either the default options or the options in
first
andsecond
. Iffirst
andsecond
are the same, only one depiction will be made.- Parameters
first (GraphPrinter) – the printing options used for the first depiction.
second (GraphPrinter) – the printing options used for the second depiction. If it is
None
then it is set tofirst
.
- Returns
a pair of filename prefixes for the PDF-files that will be compiled in post-processing. The actual names can be obtained by appending
_L.pdf
,_K.pdf
, and_R.pdf
for respectively the left side, context, and right side graphs. Iffirst
andsecond
are the same, the two file prefixes are equal.- Return type
-
printTermState
()¶ Print the term state for the rule.
-
getGMLString
(withCoords=False)¶ - Returns
the GML representation of the rule, optionally with generated 2D coordinates.
- Return type
- Raises
LogicError
when coordinates are requested, but none can be generated.
-
printGML
(withCoords=False)¶ Print the rule in GML format, optionally with generated 2D coordinates.
- Returns
the filename of the printed GML file.
- Return type
- Raises
LogicError
when coordinates are requested, but none can be generated.
-
labelType
¶ (Read-only) The intended label type for this rule, or None if no specific label type is intended.
- Type
-
numLeftComponents
¶ (Read-only) The number of connected components of the left graph.
- Type
std::size_t
-
numRightComponents
¶ (Read-only) The number of connected components of the right graph.
- Type
std::size_t
-
isomorphism
(other, maxNumMatches=1, labelSettings=LabelSettings(LabelType.String, LabelRelation.Isomorphism))¶ - Parameters
maxNumMatches (int) – the maximum number of isomorphisms to search for.
labelSettings (LabelSettings) – the label settings to use during the search.
- Returns
the number of isomorphisms found between
other
and this rule, but at mostmaxNumMatches
.- Return type
-
monomorphism
(host, maxNumMatches=1, labelSettings=LabelSettings(LabelType.String, LabelRelation.Isomorphism))¶ - Parameters
maxNumMatches (int) – the maximum number of morphisms to search for.
labelSettings (LabelSettings) – the label settings to use during the search.
- Returns
the number of monomorphisms from this rule to subgraphs of
host
, though at mostmaxNumMatches
.- Return type
-
isomorphicLeftRight
(other, labelSettings=LabelSettings(LabelType.String, LabelRelation.Isomorphism))¶ - Parameters
labelSettings (LabelSettings) – the label settings to use during the search.
- Returns
whether the left-hand sides are isomorphic and the right-hand sides are isomorphic.
- Return type
-
getVertexFromExternalId
(id)¶ If the rule was not loaded from an external data format, then this function always return a null descriptor.
Note
In general there is no correlation between external and internal ids.
- Parameters
id (int) – the external id to find the vertex descriptor for.
- Returns
the vertex descriptor for the given external id. The descriptor is null if the external id was not used.
- Return type
-
minExternalId
¶ -
maxExternalId
¶ If the rule was not loaded from an external data format, then these attributes are always return 0. Otherwise, they are the minimum/maximum external id from which non-null vertices can be obtained from
getVertexFromExternalId()
. If no such minimum and maximum exists, then they are 0.- Type
-
-
mod.
inputRules
¶ A list of rules to which explicitly loaded rules as default are appended.
-
mod.
ruleGMLString
(s, invert=False, add=True)¶ Load a rule from a GML string, and maybe store it in a global list. The name of the rule is the one specified in the GML string, though when
invert=True
the string “, inverse” is appended to the name.Note
If the GML string specifies matching constraints it is currently not possible to invert the rule. There is however a configuration option to ignore matching constraints when inverting rules.
- Parameters
s (str) – the GML string to load a rule from.
invert (bool) – whether or not to invert the loaded rule.
add (bool) – whether to append the rule to
inputRules
or not.
- Returns
the rule in the GML string, possibly inverted.
- Return type
-
mod.
ruleGML
(f, invert=False, add=True)¶ Read
file
and pass the contents toruleGMLString()
.- Parameters
f (str) – name of the GML file to be loaded.
invert (bool) – whether or not to invert the loaded rule.
add (bool) – whether to append the rule to
inputRules
or not.
- Returns
the rule in the GML file, possibly inverted.
- Return type