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
LogicErrorif 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
firstandsecond. Iffirstandsecondare 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
Nonethen 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.pdffor respectively the left side, context, and right side graphs. Iffirstandsecondare 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
LogicErrorwhen 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
LogicErrorwhen 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
otherand 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=Truethe 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
inputRulesor not.
- Returns
the rule in the GML string, possibly inverted.
- Return type
-
mod.ruleGML(f, invert=False, add=True)¶ Read
fileand 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
inputRulesor not.
- Returns
the rule in the GML file, possibly inverted.
- Return type