Internal Structure
![]() ![]() ![]() |
![]() |
![]() |
|
General Constructors: | Adjunction: |
(*) Not actually described here. Reference is to feature access predicates.
mkEC(+C,+Fs,-X)
|
Creates an empty category or constituent X with category
label C and features Fs
|
Note: Fs
is not a simple, static list. For example, among
other things, updates via addFeature
can be
made. Fs
must be created using mkFs/2
which
creates a feature set from an ordinary list. If a true null category
is all that's needed, use mkNull
which creates an empty
category with a null set of features by default.
Example:
![]() |
![]() |
![]() |
(a) |   | (b) John arrived |
Here is the code to create the generic or underspecified empty NP shown in (a). It comes with empty slots that can be instantiated later to make it one of PRO, pro, Wh-trace, or NP trace as shown in (b):
emptyNP(X) :- mkFs([agr(_),case(_),theta(_),a(_),p(_),ec(_)],Fs), mkEC(np,Fs,X).Note that
emptyNP
create a standalone NP. In particular,
positional features are not available until the NP is actually
attached as part as a phrase. For example, in (b) the empty NP is
attached as the base object of the unaccusative verb arrive. By
virtue of its position, it will receive features compl
(for complement) and apos
(for A-position).
In fact, in PAPPI, asking an unattached phrase, for attachment information - such as whether it is an adjunct, A-position, complement, or indirect object or not - is considered to be an error.
References: ec
/ mkFs
/ mkNull
/ addFeature
mkNull(+C,-X)
|
Creates an empty category or constituent X with category
label C with null features, i.e. with an empty feature set.
|
See mkEC
to see how to create an empty category with a
non-null feature set.
Reference: mkEC
mkFs(+L,-Fs)
|
Creates a feature set Fs from a list L .
|
See the description in mkEC
for an example of its use.
Reference: mkEC
mkLexCat(+C,+Fs,+Word,-X)
|
Creates a constituent X with category
label C with features Fs immediately
dominating lexical material Word .
|
Note: X
has no sub-constituents.
Also, Fs
is not an ordinary list. For example, among
other things, the feature list may be augmented via addFeature
.
The primitive mkFs
must be used to construct
Fs
.
Examples:
mkFs([count(_),agr([3,[],[]])],Fs), mkLexCat(det,Fs,the,X)and:
mkFs([grid([],[]),case(_),theta(_),a(-),p(-),count(+),agr([3,sg,m])],Fs), mkLexCat(n,Fs,boy,X)produce the simple lexical categories (a) and (b) shown below:
![]() |
![]() |
(a) | (b) |
References: mkFs
/ addFeature
adjoin(+Dir,+Adjunct,+X,-X')
|
Left or right adjoin constituent Adjunct to constituent
X giving X' . The direction of adjunction is
specified by Dir which may have value left
or right .
|
Examples:
The goal adjoin(left,Adjunct,X,X')
with
Adjunct
and X
bound to constituents (a) and
(b), respectively, will instantiate X'
as (c). If the
direction parameter is set to right
, X'
will be instantiated as (d) instead:
![]() |
![]() |
(a) | (b) |
![]() |
![]() |
(c) | (d) |
References: adjoined
/ Implementation Notes
Internal Structure
![]() ![]() ![]() |