◊
and variable symbol ()
. More such symbols can be numbered or named according to letters using different notational conventions: ◊_{1}, ◊_{2},..., <x>, <y>, ... (x), (y),..., x, y, ...
. These auxiliary symbols occur in strings of marker-augmented FSTs that we call below over FSTs (interfaced through OvertFstHandle
). The data type of an uncompiled generalized restriction is OvertFstPair
.
VarHandle
.
VarHandle
can contain a KeyHandle
rather than a SymbolHandle
and it probably more feasible to implement that way.
Type | Comment | hfst-lexc | hfst-twolc |
---|---|---|---|
VarHandle | a variable denoting positions in strings and used in different ways according to the variable type (on boundaries, sprinkled, members) | ||
VarSetHandle | a set of variables | ||
OvertFstHandle | an FST using variables that are not yet bound to any value | ||
OvertFstPair | a pair of FSTs using variables | ||
TransducerHandle | an HFST transducer without variable symbols |
Type | Function | Comment | hfst-lexc | hfst-twolc |
---|---|---|---|---|
VarHandle | create_var_type2 () |
Create a FO variable used for boundaries of a substring | ||
VarSetHandle | create_var_set () |
Create an empty set of FO variables | ||
VarSetHandle | insert_var (VarSetHandle s, VarHandle x) |
Insert an FO variable to set s |
Type | Function | Comment | hfst-lexc | hfst-twolc |
---|---|---|---|---|
OvertFstHandle | var_is_member (VarHandle x, TransducerHandle t) |
Asserts that substring x is recognized by t . |
||
OvertFstHandle | var_partition (VarHandle v, VarHandle x, VarHandle y) |
Asserts that string is partitioned into substrings v , x and y . |
||
OvertFstHandle | var_is_substring_with_context (VarHandle x, TransducerHandle rc, TransducerHandle cntr, TransducerHandle rc, bool padded) |
Asserts that x is substring of strings in cntr that is surrounded by (padded) contexts lc and rc . |
||
OvertFstHandle | var_has_context (VarHandle x, TransducerHandle lc, TransducerHandle rc, bool padded) |
Asserts that substring x is surrounded by (padded) contexts lc and rc . |
||
OvertFstHandle | var_precedes (VarHandle x, TransducerHandle rc, bool padded) |
Asserts that substring x precedes (padded) right context rc . |
||
OvertFstHandle | var_follows (VarHandle x, TransducerHandle lc, bool padded) |
Asserts that substring x follows (padded) left context lc . |
Type | Function | Comment | hfst-lexc | hfst-twolc |
---|---|---|---|---|
OvertFstHandle | var_embeds (VarHandle x, VarHandle y ) |
Asserts that substring x contains substring y . |
||
OvertFstHandle | var_equals (VarHandle x, VarHandle y ) |
Asserts that substrings x and y are equal. |
||
OvertFstHandle | var_starts_simultaneously (VarHandle x, VarHandle y ) |
Asserts that substrings x and y are equal. |
||
OverFstHandle | var_ends_simultaneously (VarHandle x, VarHandle y ) |
Asserts that substrings x and y are equal. |
||
OvertFstHandle | var_starts_before (VarHandle x, VarHandle y ) |
Asserts that substring x starts before substring y . |
||
OvertFstHandle | var_ends_before (VarHandle x, VarHandle y ) |
Asserts that substring x ends before substring y . |
||
OvertFstHandle | var_comes_before (VarHandle x, VarHandle y ) |
Asserts that substring x occurs ends before substring y starts. |
||
OvertFstHandle | var_has_overlap (VarHandle x, VarHandle y ) |
Asserts that substring x and substring y are not disjoint (Hulden 2008). |
||
OvertFstHandle | var_is_prefix_of (VarHandle x, VarHandle y ) |
Asserts that substring x is prefix of y . |
||
OvertFstHandle | var_is_suffix_of (VarHandle x, VarHandle y ) |
Asserts that substring x is suffix of y . |
||
OvertFstHandle | rename_var (VarHandle x, VarHandle y , OvertFstHandle ψ) |
Makes α transformation for overt FST ψ by replacing variable x with variable y . |
Type | Function | Comment | hfst-lexc | hfst-twolc |
---|---|---|---|---|
OvertFstHandle | connect_with_concatenation (OvertFstHande e, OvertFstHande f) |
Combine two overt FSTs under contenation. | ||
OvertFstHandle | connect_with_and (OvertFstHande e, OvertFstHande f) |
Combine two overt FSTs under conjunction. | ||
OvertFstHandle | connect_with_or (OvertFstHande e, OvertFstHande f) |
Combine two overt FSTs under disjunction. | ||
OvertFstHandle | connect_with_xor (OvertFstHande e, OvertFstHande f) |
Combine two overt FSTs under exclusive disjunction. | ||
OvertFstHandle | connect_with_not (OvertFstHande e) |
Negate an overt FST. | ||
OvertFstHandle | connect_with_arrow (OvertFstHande e, OvertFstHande f) |
Combine two overt FSTs with material implication. | ||
OvertFstHandle | quantify_existentially (VarHandle m, OvertFstHandle φ) |
Hides diamond x in φ , or computes (∃ x)φ(x) . |
||
OvertFstHandle | quantify_universally (VarHandle m, OvertFstHandle φ) |
Restrict x to all substrings in φ by evaluatingΣ^{*} <x> Σ^{*} <x> Σ^{*} =^{x}> φ or computes (∀ x)φ(x) . |
Type | Function | Comment | hfst-lexc | hfst-twolc |
---|---|---|---|---|
OvertFstPair | gr_construct (OvertFstHande e, OvertFstHande f) |
Combine two overt FSTs for generalized restriction operator. | ||
OvertFstPair | gr_intersect (OvertFstPair gr1, OvertFstPair gr2) |
Combine two generalized restrictions under intersection. | ||
OvertFstPair | gr_intersect_coherently (OvertFstPair gr1, OvertFstPair gr2) |
Combine two generalized restrictions under coherent intersection. | ||
OvertFstHandle | gr_compile (OvertFstPair g, VarHandle x) |
Compiles generalized restriction φ =^{x}> ψ orlogical formula (∀ x)( φ(x) → ψ(x) ) where (φ,ψ)=g . |
||
OvertFstHandle | gr_compile_parallel (OvertFstPair g, VarSetHandle X) |
Compile generalized restriction φ =^{x1,...,xn}> ψ orlogical formula (∀ x_{1},...,x_{n})( φ(x_{1},...,x_{n}) → ψ(x_{1},...,x_{n})) where (φ,ψ)=g and x_{1},...,x_{n} ∈ X . |
||
TransducerHandle | gr_compile_final (OvertFstPair g) |
Compile generalized restriction φ =^{x1,...,xn}> ψ orlogical formula (∀ x_{1},...,x_{n})( φ(x_{1},...,x_{n}) → ψ(x_{1},...,x_{n})) where (φ,ψ)=g . |
In the following, c
is an overt FST for contexts.
Type | Function | Comment | hfst-lexc | hfst-twolc |
---|---|---|---|---|
OvertFstPair | gr_construct_not (TransducerHandle t) |
not(t) . |
||
OvertFstPair | gr_construct_nowhere (TransducerHandle t) |
nowhere(t) . |
||
OvertFstPair | gr_construct_if_P_then_S (TransducerHandle p, TransducerHandle s) |
if-P-then-S(p,s) (Kaplan & Kay 1994). |
||
OvertFstPair | gr_construct_if_S_then_P (TransducerHandle p, TransducerHandle s) |
if-S-then-P(p,s) (Kaplan & Kay 1994). |
||
OvertFstPair | gr_construct_iff_P_S (TransducerHandle p, TransducerHandle s) |
iff-P-S(p,s) (Kaplan & Kay 1994). |
||
OvertFstPair | gr_construct_center_prohibition (TransducerHandle x, OvertFstHandle c) |
center prohibition x /<= c (in TWOLC). |
||
OvertFstPair | gr_construct_context_restriction (TransducerHandle x, OvertFstHandle c) |
context restriction x => c (Koskenniemi 1983). |
||
OvertFstPair | gr_construct_coercion (TransducerHandle x, OvertFstHandle c) |
coercion x <<= c (Yli-Jyrä & Koskenniemi 2004). |
||
OvertFstPair | gr_construct_output_coercion (TransducerHandle x, OvertFstHandle c) |
surface coercion x <= c (Koskenniemi 1983). |
||
OvertFstPair | gr_construct_input_coercion (TransducerHandle x, OvertFstHandle c) |
lexical coercion x <- c (less used). |
||
OvertFstPair | gr_construct_center_presence_requirement (TransducerHandle x, OvertFstHandle c) |
center presence requirement x <== c (Yli-Jyrä & Koskenniemi 2006). |
||
OvertFstPair | gr_construct_presence_requirement (OvertFstHandle c1, OvertFstHandle c2) |
presence requirement c1 ==> c2 (Yli-Jyrä & Koskenniemi 2006). |
||
OvertFstPair | gr_construct_output_double_arrow (TransducerHandle x, OvertFstHandle c) |
double arrow x <=> c (Koskenniemi 1983). |
||
OvertFstPair | gr_construct_input_double_arrow (TransducerHandle x, OvertFstHandle c) |
double arrow x <-> c that combines a lexical coercion and a context restriction (less used). |
||
OvertFstPair | gr_construct_match_L_R (TransducerHandle l, TransducerHandle d, TransducerHandle r) |
match-L-R(l,d,r) that says that a left side l (right side r ) must always be paired with a right side r (left side l ), and separated from that with a center that belongs to d (Yli-Jyrä 2007). |
||
OvertFstPair | gr_construct_bracketing_restriction (TransducerHandle l, TransducerHandle r, TransducerHandle d, TransducerHandle c) |
bracketing restriction constraint # l __ R # => c according to which (∀ vxy)( v∈l ∧ x∈d ∧ y∈r → x∈d ) (Yli-Jyrä 2003). |
The GR Calculus makes is easy to define some complete rule systems with rule application modes and conflict resolutions. The interfaces to the following systems will be added here:
TWiki Reference