(22)
When we look at such graphs, it is natural to think in terms of paths through the graph.
feature path is a sequence of arcs that can be followed from the root node. We will
represent paths as tuples of arc labels. Thus, 
('ADDRESS', 'STREET')
is a feature path
whose value in (22) is the node labeled 
'rue Pascal'
.
Now let’s consider a situation where Lee has a spouse named Kim, and Kim’s address
is the same as Lee’s. We might represent this as (23).
(23)
However, rather than repeating the address information in the feature structure, we
can “share” the same sub-graph between different arcs:
9.2  Processing Feature Structures s | | 339
Pdf merge - Merge, append PDF files in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provide C# Demo Codes for Merging and Appending PDF Document
add pdf pages together; combine pdf files
Pdf merge - VB.NET PDF File Merge Library: Merge, append PDF files in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Guide and Sample Codes to Merge PDF Documents in .NET Project
pdf merge; c# combine pdf
(24)
In other words, the value of the path 
('ADDRESS')
in (24) is identical to the value of the
path 
('SPOUSE', 'ADDRESS')
. DAGs such as (24) are said to involve structure shar-
ing or reentrancy. When two paths have the same value, they are said to be
equivalent.
In order to indicate reentrancy in our matrix-style representations, we will prefix the
first occurrence of a shared feature structure with an integer in parentheses, such as
(1)
. Any later reference to that structure will use the notation 
->(1)
, as shown here.
[ ADDRESS = (1) [ NUMBER = 74           ] ]
              [ STREET = 'rue Pascal' ] ]
                                        ]
[ NAME    = 'Lee'                         ]
                                        ]
[ SPOUSE  = [ ADDRESS -> (1)  ]           ]
          [ NAME    = 'Kim' ]           ]
The bracketed integer is sometimes called a tag or a coindex. The choice of integer is
not significant. There can be any number of tags within a single feature structure.
[ A = 'a'             ]
                    ]
[ B = (1) [ C = 'c' ] ]
                    ]
[ D -> (1)            ]
[ E -> (1)            ]
340 | | Chapter 9: Building Feature-Based Grammars
Online Merge PDF files. Best free online merge PDF tool.
Thus, C#.NET PDF document merge library control can be counted as an efficient .NET doc solution for keeping PDF document files organized. Download Free Trial.
add multiple pdf files into one online; attach pdf to mail merge in word
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Tell VB.NET users how to: create a new PDF file and load PDF from other file formats; merge, append, and split PDF files; insert, delete, move, rotate, copy
combine pdf; combine pdfs online
Subsumption and Unification
It is standard to think of feature structures as providing partial information about
some object, in the sense that we can order feature structures according to how general
they are. For example, (25a) is more general (less specific) than (25b), which in turn is
more general than (25c).
(25) a.[NUMBER = 74]
b.[NUMBER = 74          ]
[STREET = 'rue Pascal']
c.[NUMBER = 74          ]
[STREET = 'rue Pascal']
[CITY = 'Paris'       ]
This ordering is called subsumption; a more general feature structure subsumes a less
general one. If FS
0
subsumes FS
1
(formally, we write FS
0
⊑ FS
1
), then FS
1
must have
all the paths and path equivalences of FS
0
, and may have additional paths and equiv-
alences as well. Thus, (23) subsumes (24) since the latter has additional path equiva-
lences. It should be obvious that subsumption provides only a partial ordering on fea-
ture structures, since some feature structures are incommensurable. For example,
(26) neither subsumes nor is subsumed by (25a).
(26)
[TELNO = 01 27 86 42 96]
So we have seen that some feature structures are more specific than others. How do we
go about specializing a given feature structure? For example, we might decide that
addresses should consist of not just a street number and a street name, but also a city.
That is, we might want to merge graph (27a) with (27b) to yield (27c).
9.2  Processing Feature Structures s | | 341
How to C#: Merge Images
Convert Jpeg to PDF; Merge PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings. FREE TRIAL: HOW TO:
all jpg to one pdf converter; append pdf files reader
C# PDF insert image Library: insert images into PDF in C#.net, ASP
installed. Able to zoom and crop image and achieve image resizing. Merge several images into PDF. Insert images into PDF form field. Access
break a pdf into multiple files; break pdf into multiple files
(27) a.
b.
c.
Merging information from two feature structures is called unification and is supported
by the 
unify()
method.
>>> fs1 = nltk.FeatStruct(NUMBER=74, STREET='rue Pascal')
>>> fs2 = nltk.FeatStruct(CITY='Paris')
>>> print fs1.unify(fs2)
[ CITY   = 'Paris'      ]
[ NUMBER = 74           ]
[ STREET = 'rue Pascal' ]
342 | | Chapter 9: Building Feature-Based Grammars
C# WPF PDF Viewer SDK to view, annotate, convert and print PDF in
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
c# combine pdf; add pdf pages together
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
pdf mail merge plug in; c# merge pdf
Unification is formally defined as a binary operation: FS
0
⊔ FS
1
. Unification is sym-
metric, so FS
0
⊔ FS
1
FS
⊔ FS
0
. The same is true in Python:
>>> print fs2.unify(fs1)
[ CITY   = 'Paris'      ]
[ NUMBER = 74           ]
[ STREET = 'rue Pascal' ]
If we unify two feature structures that stand in the subsumption relationship, then the
result of unification is the most specific of the two:
(28) If FS
0
⊑ FS
1
, then FS
0
⊔ FS
1
FS
1
For example, the result of unifying (25b) with (25c) is (25c).
Unification between FS
0
and FS
1
will fail if the two feature structures share a path π
where the value of π in FS
0
is a distinct atom from the value of π in FS
1
. This is imple-
mented by setting the result of unification to be 
None
.
>>> fs0 = nltk.FeatStruct(A='a')
>>> fs1 = nltk.FeatStruct(A='b')
>>> fs2 = fs0.unify(fs1)
>>> print fs2
None
Now, if we look at how unification interacts with structure-sharing, things become
really interesting. First, let’s define (23) in Python:
>>> fs0 = nltk.FeatStruct("""[NAME=Lee,
...                           ADDRESS=[NUMBER=74,
...                                    STREET='rue Pascal'],
...                           SPOUSE= [NAME=Kim,
...                                    ADDRESS=[NUMBER=74,
>>> print fs0
[ ADDRESS = [ NUMBER = 74           ]               ]
          [ STREET = 'rue Pascal' ]               ]
                                                  ]
[ NAME    = 'Lee'                                   ]
                                                  ]
          [ ADDRESS = [ NUMBER = 74           ] ] ]
[ SPOUSE  = [           [ STREET = 'rue Pascal' ] ] ]
          [                                     ] ]
          [ NAME    = 'Kim'                     ] ]
What happens when we augment Kim’s address with a specification for 
CITY
? Notice
that 
fs1
needs to include the whole path from the root of the feature structure down
to 
CITY
.
>>> fs1 = nltk.FeatStruct("[SPOUSE = [ADDRESS = [CITY = Paris]]]")
>>> print fs1.unify(fs0)
[ ADDRESS = [ NUMBER = 74           ]               ]
          [ STREET = 'rue Pascal' ]               ]
                                                  ]
9.2  Processing Feature Structures s | | 343
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
build pdf from multiple files; combine pdf files
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view
batch pdf merger online; apple merge pdf
[ NAME    = 'Lee'                                   ]
                                                  ]
          [           [ CITY   = 'Paris'      ] ] ]
          [ ADDRESS = [ NUMBER = 74           ] ] ]
[ SPOUSE  = [           [ STREET = 'rue Pascal' ] ] ]
          [                                     ] ]
          [ NAME    = 'Kim'                     ] ]
By contrast, the result is very different if 
fs1
is unified with the structure sharing version
fs2
(also shown earlier as the graph (24)):
...                           SPOUSE=[NAME=Kim, ADDRESS->(1)]]""")
>>> print fs1.unify(fs2)
              [ CITY   = 'Paris'      ] ]
[ ADDRESS = (1) [ NUMBER = 74           ] ]
              [ STREET = 'rue Pascal' ] ]
                                        ]
[ NAME    = 'Lee'                         ]
                                        ]
[ SPOUSE  = [ ADDRESS -> (1)  ]           ]
          [ NAME    = 'Kim' ]           ]
Rather than just updating what was in effect Kim’s “copy” of Lee’s address, we have
now updated both their addresses at the same time. More generally, if a unification
involves specializing the value of some path π, that unification simultaneously spe-
cializes the value of any path that is equivalent to π.
As we have already seen, structure sharing can also be stated using variables such as
?x
.
>>> fs2 = nltk.FeatStruct("[ADDRESS1=?x, ADDRESS2=?x]")
>>> print fs2
[ ADDRESS1 = ?x ]
[ ADDRESS2 = ?x ]
>>> print fs2.unify(fs1)
[ ADDRESS1 = (1) [ NUMBER = 74           ] ]
               [ STREET = 'rue Pascal' ] ]
                                         ]
[ ADDRESS2 -> (1)                          ]
9.3  Extending a Feature-Based Grammar
In this section, we return to feature-based grammar and explore a variety of linguistic
issues, and demonstrate the benefits of incorporating features into the grammar.
Subcategorization
In Chapter 8, we augmented our category labels to represent different kinds of verbs,
and used the labels 
IV
and 
TV
for intransitive and transitive verbs respectively. This
allowed us to write productions like the following:
344 | | Chapter 9: Building Feature-Based Grammars
(29)
VP -> IV
VP -> TV NP
Although we know that 
IV
and 
TV
are two kinds of 
V
, they are just atomic non-terminal
symbols in a CFG and are as distinct from each other as any other pair of symbols. This
notation doesn’t let us say anything about verbs in general; e.g., we cannot say “All
lexical items of category 
V
can be marked for tense,” since walk, say, is an item of
category 
IV
, not 
V
. So, can we replace category labels such as 
TV
and 
IV
by 
V
along with
a feature that tells us whether the verb combines with a following 
NP
object or whether
it can occur without any complement?
A simple approach, originally developed for a grammar framework called Generalized
Phrase Structure Grammar (GPSG), tries to solve this problem by allowing lexical cat-
egories to bear a 
SUBCAT
feature, which tells us what subcategorization class the item
belongs to. In contrast to the integer values for 
SUBCAT
used by GPSG, the example here
adopts more mnemonic values, namely 
intrans
trans
, and 
clause
:
(30)
VP[TENSE=?t, NUM=?n] -> V[SUBCAT=intrans, TENSE=?t, NUM=?n]
VP[TENSE=?t, NUM=?n] -> V[SUBCAT=trans, TENSE=?t, NUM=?n] NP
VP[TENSE=?t, NUM=?n] -> V[SUBCAT=clause, TENSE=?t, NUM=?n] SBar
V[SUBCAT=intrans, TENSE=pres, NUM=sg] -> 'disappears' | 'walks'
V[SUBCAT=trans, TENSE=pres, NUM=sg] -> 'sees' | 'likes'
V[SUBCAT=clause, TENSE=pres, NUM=sg] -> 'says' | 'claims'
V[SUBCAT=intrans, TENSE=pres, NUM=pl] -> 'disappear' | 'walk'
V[SUBCAT=trans, TENSE=pres, NUM=pl] -> 'see' | 'like'
V[SUBCAT=clause, TENSE=pres, NUM=pl] -> 'say' | 'claim'
V[SUBCAT=intrans, TENSE=past] -> 'disappeared' | 'walked'
V[SUBCAT=trans, TENSE=past] -> 'saw' | 'liked'
V[SUBCAT=clause, TENSE=past] -> 'said' | 'claimed'
When we see a lexical category like 
V[SUBCAT=trans]
, we can interpret the 
SUBCAT
spec-
ification as a pointer to a production in which 
V[SUBCAT=trans]
is introduced as the
head child in a 
VP
production. By convention, there is a correspondence between the
values of 
SUBCAT
and the productions that introduce lexical heads. On this approach,
SUBCAT
can appear only on lexical categories; it makes no sense, for example, to specify
SUBCAT
value on 
VP
. As required, walk and like both belong to the category 
V
. Never-
theless, walk will occur only in 
VP
s expanded by a production with the feature
SUBCAT=intrans
on the righthand side, as opposed to like, which requires a
SUBCAT=trans
.
In our third class of verbs in (30), we have specified a category 
SBar
. This is a label for
subordinate clauses, such as the complement of claim in the example You claim that
you like children. We require two further productions to analyze such sentences:
(31)
SBar -> Comp S
Comp -> 'that'
9.3  Extending a Feature-Based Grammar r | 345
The resulting structure is the following.
(32)
An alternative treatment of subcategorization, due originally to a framework known as
categorial grammar, is represented in feature-based frameworks such as PATR and
Head-driven Phrase Structure Grammar. Rather than using 
SUBCAT
values as a way of
indexing productions, the 
SUBCAT
value directly encodes the valency of a head (the list
of arguments that it can combine with). For example, a verb like put that takes 
NP
and
PP
complements (put the book on the table) might be represented as (33):
(33)
V[SUBCAT=<NP, NP, PP>]
This says that the verb can combine with three arguments. The leftmost element in the
list is the subject 
NP
, while everything else—an 
NP
followed by a 
PP
in this case—com-
prises the subcategorized-for complements. When a verb like put is combined with
appropriate complements, the requirements which are specified in the 
SUBCAT
are dis-
charged, and only a subject 
NP
is needed. This category, which corresponds to what is
traditionally thought of as 
VP
, might be represented as follows:
(34)
V[SUBCAT=<NP>]
Finally, a sentence is a kind of verbal category that has no requirements for further
arguments, and hence has a 
SUBCAT
whose value is the empty list. The tree (35) shows
how these category assignments combine in a parse of Kim put the book on the table.
(35)
346 | | Chapter 9: Building Feature-Based Grammars
Heads Revisited
We noted in the previous section that by factoring subcategorization information out
of the main category label, we could express more generalizations about properties of
verbs. Another property of this kind is the following: expressions of category 
V
are heads
of phrases of category 
VP
. Similarly, 
N
s are heads of 
NP
s, 
A
s (i.e., adjectives) are heads of
AP
s, and 
P
s (i.e., prepositions) are heads of 
PP
s. Not all phrases have heads—for exam-
ple, it is standard to say that coordinate phrases (e.g., the book and the bell) lack heads.
Nevertheless, we would like our grammar formalism to express the parent/head-child
relation where it holds. At present, 
V
and 
VP
are just atomic symbols, and we need to
find a way to relate them using features (as we did earlier to relate 
IV
and 
TV
).
X-bar syntax addresses this issue by abstracting out the notion of phrasal level. It is
usual to recognize three such levels. If 
N
represents the lexical level, then 
N
' represents
the next level up, corresponding to the more traditional category 
Nom
, and 
N
'' represents
the phrasal level, corresponding to the category 
NP
(36a) illustrates a representative
structure, while (36b) is the more conventional counterpart.
(36) a.
b.
The head of the structure (36a) is 
N
, and 
N
' and 
N
'' are called (phrasal) projections of
N
N
'' is the maximal projection, and 
N
is sometimes called the zero projection. One
of the central claims of X-bar syntax is that all constituents share a structural similarity.
Using 
X
as a variable over 
N
V
A
, and 
P
, we say that directly subcategorized comple-
ments of a lexical head 
X
are always placed as siblings of the head, whereas adjuncts are
placed as siblings of the intermediate category, 
X'
. Thus, the configuration of the two
P
'' adjuncts in (37) contrasts with that of the complement 
P
'' in (36a).
9.3  Extending a Feature-Based Grammar r | 347
(37)
The productions in (38) illustrate how bar levels can be encoded using feature struc-
tures. The nested structure in (37) is achieved by two applications of the recursive rule
expanding 
N[BAR=1]
.
(38)
S -> N[BAR=2] V[BAR=2]
N[BAR=2] -> Det N[BAR=1]
N[BAR=1] -> N[BAR=1] P[BAR=2]
N[BAR=1] -> N[BAR=0] P[BAR=2]
Auxiliary Verbs and Inversion
Inverted clauses—where the order of subject and verb is switched—occur in English
interrogatives and also after “negative” adverbs:
(39) a.Do you like children?
b.Can Jody walk?
(40) a.Rarely do you see Kim.
b.Never have I seen this dog.
However, we cannot place just any verb in pre-subject position:
(41) a.*Like you children?
b.*Walks Jody?
(42) a.*Rarely see you Kim.
b.*Never saw I this dog.
Verbs that can be positioned initially in inverted clauses belong to the class known as
auxiliaries, and as well as docan, and have include bewill, and shall. One way of
capturing such structures is with the following production:
(43)
S[+INV] -> V[+AUX] NP VP
348 | | Chapter 9: Building Feature-Based Grammars
Documents you may be interested
Documents you may be interested