Features Constructors

Constituent Structure:
Internal Structure

  1. Features:

    Predicates that access and instantiate constituent feature values.

  2. Internal structure:

    Predicates that provide access to the internal structure of complex constituents.

  3. Constructors:

    Predicates for building basic constituents and complex constituents out of simpler constituents.


Contents

General:
has_constituents,
has_constituent
containsWord
ec
cat/1(*)
Adjunction:
adjoined/{2,3}
lowestSeg/2
segmentOf

(*) Not actually described here. Reference is to feature access predicates.


General

+X has_constituents -L
+X has_constituent -Y
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
Binding (1): X = [V[V saw] I(AGR)]
Binding (2): X = [NP[3] Mary]

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:

  Goal Result/Bindings
(b) containsWord([C],W) Fails / Not applicable
(c) containsWord([I2...],W) Fails / Not applicable
(d) containsWord([NP[1] John],W) Holds / W = John
(e) containsWord(I(AGR)t[1],W) Fails / Not applicable
(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


Adjunction

adjoined(+X,-Adjunct,-X')
adjoined(+X,-Adjunct)
adjoined(+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 Constructors