Features
![]() ![]() ![]() |
![]() |
![]() |
|
General: | Adjunction: |
(*) Not actually described here. Reference is to feature access predicates.
+X has_constituents -L
|
Holds if constituent X has at least one
immediate subconstituent. L is bound to the
list of X 's immediate subconstituents.
The variant has_constituent operates under the same
conditions except Y is bound in turn to each of
X 's immediate subconstituents.
|
Example:
![]() |
(a) John saw Mary |
  | Goal | Result/Bindings | ||||
(b) | I1 has_constituents L |
Holds / L = [I(AGR)t[1], [VP...]] |
||||
(c) | VP has_constituents L |
Holds /
L = [[V[V saw]...],[NP Mary]] |
||||
(d) | NP[1] has_constituents L |
Fails / Not applicable | ||||
(e) | C has_constituents L |
Fails / Not applicable | ||||
(f) | VP has_constituent X |
Succeeds twice
|
Note that instead of returning all the constituents in a single list,
has_constituent
in (f) returns them one at a time.
Reference: containsWord
containsWord(+X,-W)
|
Holds if X is a terminal constituent heading lexical
material W .
|
Example:
![]() |
|
|||||||||||||||
(a) |
References: has_constituents
/ ec
ec(+X)
|
Holds if constituent X is an empty category.
|
Example:
![]() |
(a) There seems to be a unicorn |
Following the lower edge of the tree starting at the embedded clause:
  | Goal | Result | Comment |
(b) | ec([C]) |
Holds | Empty complementizer |
(c) | ec(NPt+A-P[1]) |
Holds | NP movement trace |
(d) | ec([I[1]I[1][V[3] be]]) |
Fails | Adjunction to empty head |
(e) | ec(I[1]) |
Holds | Empty head |
(f) | ec(Vt[3]) |
Holds | Trace of head movement |
(g) | ec([DET a]) |
Fails | Non-empty terminal |
References:
mkEC
/ isTrace
/ containsWord
adjoined(+X,-Adjunct,-X')
|
Constituent X has two immediate subconstituents, an
Adjunct and the lower segment X' .
|
For convenience, adjoined/2
and adjoined/1
may be substituted in place of adjoined/3
when either the
third or last two parameters are not required.
Examples:
The goal adjoined/3
with X
bound to
constituent (a) will instantiate Adjunct
and
X'
to be constituents (b) and (c), respectively:
![]() |
![]() |
![]() |
(a) | (b) | (c) |
The goal adjoined/1
with X
bound to (a) will
succeed, but fail when X
is bound to either (b) or (c).
(Note the goal X has_feature adjunct
may be used to test
whether X
is an adjunct.)
References: adjoin
/ Implementation Notes
lowestSegment(+X,-Xl)
|
Constituent Xl is the lowest segment of
X . If nothing has been adjoined to X ,
Xl will be simply instantiated to X .
|
References: lowestSegment/1
/ segmentOf
segmentOf(+X,-X')
|
Non-deterministically instantiates constituent X' to
sub-segments of X . Note: relation is reflexive so it
will succeed even if nothing has been adjoined.
|
References: lowestSegment/1
/ lowestSegment/2
/ Implementation Notes
Features
![]() ![]() ![]() |