![]() | Description |
---|---|
A graph pattern call from an ASM rule initiates graph pattern matching. A graph pattern call can be initiated in the following contexts:
|
GraphPatternCallAST ::= find QualifiedTypeNameAST ActualParameterDefAST ActualParameterDefAST ::= ( ActualParamsAST ) | ( )
![]() | Syntax |
---|---|
The called graph pattern is identified by the graph pattern name and its arity (number of parameters). A local name of the called graph pattern can be used if
If the pattern is defined in another machine and its namespace is not imported then the graph pattern name should be the fully qualified name of the pattern. The actual params part is the list of actual parameters supplied to the called graph pattern. |
![]() | Semantics |
---|---|
The variables in the actual parameter list supplied to the called graph pattern from the caller ASM context can be either bound or unbound. This way, the semantics of a graph pattern call depends on its adornment, i.e. the binding of actual parameters.
If the matching of a called pattern fails, then it still depends on the caller ASM rule if this failure is propagated or not.
Containment constraints of quantified variables defined in a forall rule or a choose rule are passed to the pattern matching engine as additional containment constraints. When pattern matching is initiated from a base logical term, successful pattern matching is converted to the logical true value while the failure of pattern matching is interpreted as the logical false value. Note, however, even if the matching of the called pattern succeeds, the actual bindings are forbidden to be used (i.e. thrown away) in the context of caller base logical term. |