|
|
| (11 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 agt 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)
| |
| 00
| |
| | |
| == 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 relation between two nodes: one having the string "a" and the 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 between a node where UW = <nowiki>[[c]]</nowiki> and another node having the feature 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")