Hyper-relation
From UNL Wiki
Hyper-relation is a relation between relations, or between relations and nodes.
Contents |
Basic Symbols
Symbol | Definition | Example |
---|---|---|
( ) | node | (%a) |
" " | string | "went" |
[ ] | natural language entry (headword) | [go] |
[[ ]] | UW | [[to go(icl>to move)]] |
// | regular expression | /a{2,3}/ = aa,aaa |
rel(x;y) | relation | agt(kill;Peter) |
^ | not | ^a = not a |
{ | } | or | {a|b} = a or b |
% | index for nodes, attributes and values | %x |
: | scope ID | :01 |
# | index for sub-NLWs | #01 |
= | attribute-value assignment | POS=NOU |
! | rule trigger | !PLR |
& | merge operator | %x&%y |
? | dictionary lookup operator | ?[a] |
Basic Concepts
- Node
- A node is the most elementary unit in the graph. It is the result of the tokenization process, and corresponds to the notion of "lexical item". At the surface level, a natural language sentence is considered a list of nodes, and a UNL graph a set of relations between nodes.
- Relation
- In order to form a natural language sentence or a UNL graph, nodes are inter-related by relations. In the UNL framework, there are three different types of relations: the linear (list) relation, syntactic relations and semantic relations.
- Hyper-Node
- A hyper-node is a sub-graph, i.e., a scope: a node containing relations between nodes.
- Hyper-Relation
- A hyper-relation is a relation between relations.
Notation
Hyper-relations and relations are represented in the same way, i.e.,
rel:scope(arg1;arg2;...;argn)
where:
- rel is the name of the hyper-relation
- scope is the scope of the hyper-relation
- arg1, arg2, ... are the arguments of the hyper-relation
The only difference between relations and hyper-relations is that the latter has at least one relation as one of its arguments, e.g.:
- rel(rel1(arg1;arg2);arg3;...;argn)
For better readability, inner relations are normally replaced by relation ID's, to be represented by :XX, where XX is a two-digit string
- rel(rel1(arg1;arg2);arg3;...;argn) is the same as rel(:01;arg3;...;argn)rel1:01(arg1;arg2)
Properties
- A hyper-relation may have one single relation as each argument
- XP(XB(%a;%b);%c) - the source argument of the hyper-relation XP is a relation
- XP(%a;XB(%b;%c)) - the target argument of the hyper-relation XP is a relation
- XP(VC(%a;%b);VA(%a;%c)) - the source and the target argument of the hyper-relation XP are relations
XP(VC(%a;%b)VA(%a;%c);VS(%a;%d))- a hyper-relation may not have more than one relation as one single argument (in this case, the hyper-relation XP contained two relations as the source argument)
- Differently from nodes, relations do not have elements (strings, headwords, features and indexes)
XP(XB(%a;%b),"ab",[ab],[[ab]],A,B;%c)(the relation XB(%a;%b) may not have strings, UWs, headwords or any features)
Examples
Examples of hyper-relations
- XP(XB(%a;%b);%c) - a syntactic relation XP between the syntactic relation XB(%a;%b) and the node %c
- and(agt([a];[b]);agt([a];[c])) - a semantic relation "and" between the semantic relations agt([a];[b]) AND agt([a];[c])
Transformations
Hyper-relations are altered, replaced, created and deleted by T-rules:
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.)