Transformation over relations
From UNL Wiki
(Difference between revisions)
Line 1: | Line 1: | ||
Relations and hyper-relations are altered, replaced, created and deleted by [[T-rule]]s: | Relations and hyper-relations are altered, replaced, created and deleted by [[T-rule]]s: | ||
− | === | + | == Altering relations == |
+ | The arguments of a relation are altered | ||
+ | |||
+ | <CONDITION> := <ACTION>; | ||
+ | |||
+ | |||
+ | |||
+ | == | ||
+ | There are four types of S-rules: | ||
+ | ;Change | ||
+ | <CONDITION> := <RELATION>; | ||
+ | :Change the attributes of the constituents of the relation. The relation itself is not affected. Features are added through "+" and deleted through "-". | ||
+ | :*VA(%head;%adjt):=VA(%head,+C;%adj,-D); (add the feature C to the head and remove the feature D from the adjunct) | ||
+ | ;Create | ||
+ | <CONDITION> := +<RELATION>; | ||
+ | :Create a new relation. Nodes to be created must be defined as strings (between quotes) or lemmas (between brackets), if not co-indexed to an existing node. | ||
+ | :*VA(%head;%adjt):=+VC(%head;"c"); (add the relation VC between the head and "c", which is created.) | ||
+ | ;Delete | ||
+ | <CONDITION> := -<RELATION>; | ||
+ | :Delete a relation between the head and the argument. The head and the argument are not deleted. | ||
+ | :*VA(%head;%adjt):=-VA(%head;%adjt); (delete the relation VA between the head and its arguments. The nodes are not deleted) | ||
+ | ;Replace | ||
+ | <RELATION> := <RELATION>; | ||
+ | :Replace the relation in the left side by the one in the right side | ||
+ | :*VA(%head;%any):=VC(%head;%any); (replace the relation VA by VC) | ||
+ | :Two special cases of replacement are | ||
+ | :;Merge: <RELATION><RELATION> := <RELATION>; | ||
+ | ::Replace the relations in the left side by the ones in the right side. | ||
+ | ::*VA(%head;%adjt)VC(%head;%comp):=VB(VB(%head;%adjt);%comp); (VA and VC are deleted, and VB is created) | ||
+ | :;Divide: <RELATION> := <RELATION><RELATION>; | ||
+ | ::Replace the relation in the left side by those in the right side. | ||
+ | ::*VA(%head;%adjt):=VC(%head;%x)VC(%head;%y); (VA is deleted, and the two VCs are created) | ||
+ | |||
+ | Where:<br/> | ||
+ | *<CONDITION> (to be repeated 0 or more times) may be a [[Tagset|tag]] or a <RELATION> that defines when the rule is applied. It may be empty in general cases (i.e., if the rule is always applied). | ||
+ | *<RELATION> (to be repeated 1 or more times) may be: | ||
+ | **a [[Syntactic roles|syntactic relation]] containing the <HEAD>, in case of head-only relations (VH, NH, JH, PH, IH, CH, AH, DH), or the <HEAD> and <ARGUMENT> (i.e, complement, adjunct or specifier), in case of binary relations (VA, VC, VS, VB, NA, NC, NS, etc). | ||
+ | **a [[Universal Relation|semantic relation]], containing the <SOURCE> and the <TARGET>. | ||
+ | *<HEAD>, <ARGUMENT>, <SOURCE> and <TARGET> may be expressed as | ||
+ | **a "string" (strings come between parentheses); | ||
+ | **a [lemma] (lemmas come between square brackets); | ||
+ | **a feature or a set of features, separated by comma, and extracted from the [[Tagset|UNDLF Tagset]]; | ||
+ | **an [[#Indexes|index]]; | ||
+ | **an action, to be performed by adding features (through "+"), deleting features (through "-"), or through the right side of an [[A-rule]] (i.e., prefixation, suffixation, infixation); or | ||
+ | **a <RELATION> itself (i.e., rules may be recursive). | ||
+ | |||
Revision as of 18:08, 21 August 2013
Relations and hyper-relations are altered, replaced, created and deleted by T-rules:
Altering relations
The arguments of a relation are altered
<CONDITION> := <ACTION>;
==
There are four types of S-rules:
- Change
<CONDITION> := <RELATION>;
- Change the attributes of the constituents of the relation. The relation itself is not affected. Features are added through "+" and deleted through "-".
- VA(%head;%adjt):=VA(%head,+C;%adj,-D); (add the feature C to the head and remove the feature D from the adjunct)
- Create
<CONDITION> := +<RELATION>;
- Create a new relation. Nodes to be created must be defined as strings (between quotes) or lemmas (between brackets), if not co-indexed to an existing node.
- VA(%head;%adjt):=+VC(%head;"c"); (add the relation VC between the head and "c", which is created.)
- Delete
<CONDITION> := -<RELATION>;
- Delete a relation between the head and the argument. The head and the argument are not deleted.
- VA(%head;%adjt):=-VA(%head;%adjt); (delete the relation VA between the head and its arguments. The nodes are not deleted)
- Replace
<RELATION> := <RELATION>;
- Replace the relation in the left side by the one in the right side
- VA(%head;%any):=VC(%head;%any); (replace the relation VA by VC)
- Two special cases of replacement are
- Merge
- <RELATION><RELATION> := <RELATION>;
- Replace the relations in the left side by the ones in the right side.
- VA(%head;%adjt)VC(%head;%comp):=VB(VB(%head;%adjt);%comp); (VA and VC are deleted, and VB is created)
- Divide
- <RELATION> := <RELATION><RELATION>;
- Replace the relation in the left side by those in the right side.
- VA(%head;%adjt):=VC(%head;%x)VC(%head;%y); (VA is deleted, and the two VCs are created)
Where:
- <CONDITION> (to be repeated 0 or more times) may be a tag or a <RELATION> that defines when the rule is applied. It may be empty in general cases (i.e., if the rule is always applied).
- <RELATION> (to be repeated 1 or more times) may be:
- a syntactic relation containing the <HEAD>, in case of head-only relations (VH, NH, JH, PH, IH, CH, AH, DH), or the <HEAD> and <ARGUMENT> (i.e, complement, adjunct or specifier), in case of binary relations (VA, VC, VS, VB, NA, NC, NS, etc).
- a semantic relation, containing the <SOURCE> and the <TARGET>.
- <HEAD>, <ARGUMENT>, <SOURCE> and <TARGET> may be expressed as
- a "string" (strings come between parentheses);
- a [lemma] (lemmas come between square brackets);
- a feature or a set of features, separated by comma, and extracted from the UNDLF Tagset;
- an index;
- an action, to be performed by adding features (through "+"), deleting features (through "-"), or through the right side of an A-rule (i.e., prefixation, suffixation, infixation); or
- a <RELATION> itself (i.e., rules may be recursive).
- REL1(%x;%y):=REL2(%x;%y); (replacement)
- REL(%x;%y):=; (deletion)
- REL1(%x;%y):=+REL2(%w;%z); (creation)
Creating hyper-relations
Hyper-relations are created through encapsulating relations:
- REL1(%x;%y)REL2(%x;%z):=REL1(REL2(%x;%z);%y); (the relation REL1 between %x and %y becomes a hyper-relation between the relation REL2(%x;%z) and the node %y.)
Transforming hyper-relations into simple relations
Hyper-relations are transformed into simple relations by removing their internal relations:
- REL1(REL2(%x;%z);%y):=REL1(%x;%y)REL2(%x;%z); (the hyper-relation REL1 between the relation REL2(%x;%z) and the node %y is transformed into a simple relation between the nodes %x and %y; the relatin REL2(%x;%z) is not affected.)