|  |   | 
| (8 intermediate revisions by one other user not shown) | 
| Line 1: | Line 1: | 
|  | In order to form a natural language sentence or a UNL graph, [[nodes]] are inter-related by relations. In the UNL framework, there can be three different types of relations between nodes:
 |  | The relation "and" or "or" between the strings "a" and "b" (use regular expressions) | 
|  | *the linear relation L, which defines the order of the elements in a list
 |  | does it work? /.{2,3}/("a";"b") | 
|  | *[[syntactic relation]]s (such as adjunct of the noun phrase, complement of the verbal phrase, specifier of the adjective phrase, etc.)
 |  | 
|  | *[[semantic relation]]s (such as agent, object, manner, instrument, etc.)
 |  | 
|  |   |  | 
|  |   |  | 
|  | == Basic Symbols ==
 |  | 
|  | {{:Basic Symbols}}
 |  | 
|  |   |  | 
|  | == Basic Concepts ==
 |  | 
|  | {{:Grammar units}}
 |  | 
|  |   |  | 
|  | == Notation ==
 |  | 
|  | Relations are represented by the general syntax
 |  | 
|  |  rel:scope(arg1;arg2;...;argn)
 |  | 
|  | Where
 |  | 
|  | *''rel'' is the name of the relation; 
 |  | 
|  | *''scope'' is the scope of the relation;
 |  | 
|  | *''arg1'', ''arg2'', ..., are the arguments of the relation, i.e., [[node]]s.
 |  | 
|  | The main scope is 00 and it is not shown, by default: |  | 
|  | *''rel(arg1;arg2)'' is the same as rel:00(arg1;arg2) (i.e., the relation ''rel'' belongs to the main scope, i.e., the main graph)
 |  | 
|  | *''rel:01(arg1;arg2)'' (the relation ''rel'' belongs to the scope :01, i.e., a sub-graph ([[hyper-node]]) inside the main graph)
 |  | 
|  |   |  | 
|  | == Types ==
 |  | 
|  | In the UNL framework, there can be three different types of relations:
 |  | 
|  | *the '''linear''' relation L expresses the surface (list) structure of natural language sentences
 |  | 
|  | *'''[[syntactic relations]]''' express the syntactic (tree) structure of natural language sentences
 |  | 
|  | *'''[[semantic relations]]''' express the semantic (graph) structure of UNL graphs
 |  | 
|  |   |  | 
|  | == Examples ==
 |  | 
|  | Examples of relations:
 |  | 
|  | *("a")("b") (a linear relationbetween two nodes: one having the string "a" andthe other having the string "b"
 |  | 
|  | *L("a";"b") (the same as above)
 |  | 
|  | *VC(V;NP)   (a syntactic relation VC between two nodes: one having the feature V and the other having the feature NP
 |  | 
|  | *VC("a",V;"b",<nowiki>[[b]]</nowiki>,LEX=N,NP) (a syntactic relation VC between two nodes: one having the string "a" and the feature V; and the other having the string "b", the UW [[b]] and the features LEX=N and NP)
 |  | 
|  | *agt("kill";N) (a semantic relation between two nodes: one having the string "kill" and the other having the feature N.
 |  | 
|  |   |  | 
|  | == Properties == 
 |  | 
|  | ;The linear relation is always binary and is represented in two possible formats:
 |  | 
|  | *L(%x;%y) or
 |  | 
|  | *(%x)(%y)
 |  | 
|  | where L is the invariant name of the linear relation, and %x and %y are nodes.
 |  | 
|  | ;Syntactic relations are not predefined, although we have been using a set of binary relations based on the [[syntactic relations|X-bar theory]].
 |  | 
|  | ;Semantic relations constitute a predefined and closed set that can be found [[Universal Relations|here]].
 |  | 
|  | ;Arguments of relations are not commutative.
 |  | 
|  | :The order of the elements in a relation affects the result:
 |  | 
|  | ::(%x)(%y) is different from (%y)(%x)
 |  | 
|  | ::relation(%x;%y) is different from relation(%y;%x)
 |  | 
|  | ;Linear and semantic relations are always binary; syntactic relations may be n-ary:
 |  | 
|  | :L(%x;%y) - linear relation
 |  | 
|  | :agt(%x;%y) - semantic relation
 |  | 
|  | :VH(%x) - unary syntactic relation
 |  | 
|  | :VC(%x;%y) - binary syntactic relation
 |  | 
|  | :XX(%x;%y;%z) - possible ternary syntactic relation
 |  | 
|  | ;Inside each relation, nodes are isolated by semicolon (;). 
 |  | 
|  | :VC(%x;%y)
 |  | 
|  | :<strike>VC(%x,%y)</strike>
 |  | 
|  | ;Inside each relation, nodes may be referenced by any of its elements, isolated by comma (,):
 |  | 
|  | :("a")([b]) - linear relation between a node where string = "a"and another node where headword = [b]
 |  | 
|  | :L(<nowiki>[[c]]</nowiki>;D) - linear relation betweena node where UW = <nowiki>[[c]]</nowiki> and another node having thefeature D
 |  | 
|  | :VC(%a;%b) - syntactic relation between a node where index = %a and another node where index = %b
 |  | 
|  | :agt("a",[a],<nowiki>[[a]]</nowiki>,A;"b",[b],<nowiki>[[b]]</nowiki>,B) - semantic relation between a node having the feature A where string = "a" AND headword "a" AND UW = <nowiki>[[a]]</nowiki> AND another node having the feature B where string = "b" AND headword = [b] AND UW = <nowiki>[[b]]</nowiki>
 |  | 
|  | ;Relations may be conjoined through juxtaposition:
 |  | 
|  | :("a")("b")("c") - two linear relations: one between ("a") and ("b") AND other between ("b") and ("c")
 |  | 
|  | :agt(%x;%y)obj(%x;%z) - two semantic relations: one between (%x) and (%y) AND other between (%x) and(%z)
 |  | 
|  | :<strike>VC([a];[b]),VC([a];[c])</strike> - conjoined relations must not be isolated by comma
 |  | 
|  | ;Relations may be disjoined through {braces}
 |  | 
|  | :{("a")|("b")}("c") - either ("a")("c") or ("b")("c")
 |  | 
|  | :{agt(%x;%y)|exp(%x;%y)}obj(%x;%z) - either agt(%x;%y)obj(%x;%z) or exp(%x;%y)obj(%x;%z)
 |  | 
|  | ;Syntactic and semantic relations may be replaced by regular expressions
 |  | 
|  | :/.{2,3}/(%x;%y) - any relation made of two or three characters between %x and %y
 |  | 
|  | ;Differently from [[node]]s, relations do not have elements (strings, headwords, features and indexes)
 |  | 
|  | In rel("a",[a],<nowiki>[[a]]</nowiki>,A;"b",[b],<nowiki>[[b]]</nowiki>,B), the elements "a", "b", [a], [b], <nowiki>[[a]], [[b]]</nowiki>, A and B belong to the arguments of the relation and not to the relation itself.
 |  | 
The relation "and" or "or" between the strings "a" and "b" (use regular expressions)
does it work? /.{2,3}/("a";"b")