Modification in ULF
Prerequisite Knowledge
Understanding the crux of this post requires
- basic knowledge of EL semantic types and associated notation,
- basic knowledge of ULF syntax,
- basic knowledge of the EL interpretation process,
- familiarity with English syntax terminology, and
- familiarity with terminology such as ‘predicate’ and ‘intensional’ from logic.
Some details also require knowledge of
- Skolemization,
- lambda functions, and
- the EL charaterizing operator
**
.
Predicate Modification
EL semantic types represent predicate modifiers as functions from monadic predicates to monadic predicates, i.e. (\((\mathcal{D} \rightarrow \mathcal{2}) \rightarrow (\mathcal{D} \rightarrow \mathcal{2})\)). This enables handling of non-intersective modifiers, e.g.nearly, fake, almost. These are further distinguished by the syntactic category of the predicate being modified.
- noun modification:
(fake.mod-n diamond.n)
- adjective modification:
(very.mod-a happy.a)
- verb modification:
(nearly.adv-a fall.v)
So the type extensions .mod-n
and .mod-a
are noun and adjective premodifier
types, respectively. .adv-a
is the VP adverbial type, which corresponds to
monadic verb modifiers. Ultimately, these become action modifiers in EL semantics,
hence the -a
extension. Since actions aren’t explicitly represented in ULF,
.adv-a
modifiers are represented as intensional monadic verb modifiers.
(See Actions, Experiences, and Attributes for
more details).
There are type-shifters that form operators of each of these types from monadic
predicates. The operator names borrow from the extensions that accompany the
lexical versions of these modifiers. So mod-a
, mod-n
, and adv-a
(note,
no dot preceding them) are type-shifters that shift monadic predicates to
adjective modifiers, noun modifiers, and VP modifiers, respectively. Here are
some examples
((mod-n wooden.a) shoe.n)
, ((mod-n ice.n) pick.n)
, (fake.mod-n ruby.n)
,
((mod-n worldly.a) wise.a)
, (very.mod-a fit.a)
, (slyly.adv-a grin.v)
In English there’s also common noun premodification by a proper noun, e.g.
“Seattle skyline”. For this case we also introduce a type-shifter from
a proper noun to a nominal modifier, nnp
.
((nnp |Seattle|) skyline.n)
Here is a table of each of the type-shifters introduced so far along wth an example and the formal type.
Table of Predicate Modifier Forming Operators
Name | Example | Formal Type |
---|---|---|
mod-a |
((mod-a worldly.a) wise.a) |
\(\mathcal{N} \rightarrow ( \mathcal{N}_{ADJ} \rightarrow \mathcal{N}_{ADJ} ) \) |
mod-n |
((mod-a (very.mod-a happy.a)) dog.n) |
\(\mathcal{N} \rightarrow ( \mathcal{N}_{N} \rightarrow \mathcal{N}_{N} ) \) |
adv-a |
(play.v (adv-a (with.p (a.d dog.n)))) |
\(\mathcal{N} \rightarrow ( \mathcal{N}_{V} \rightarrow \mathcal{N}_{V} ) \) |
nnp |
((nnp |Seattle|) skyline.n) |
\(\mathcal{D} \rightarrow ( \mathcal{N}_{N} \rightarrow \mathcal{N}_{N} ) \) |
Since in ULF there are no valid adjective-adjective, adjective-noun, noun-noun,
noun-adjective compositions without this sort of type-shifting, we can often
omit mod-a
and mod-n
type-shifters and introduce them in post-processing.
For example, “burning hot melting pot” is hand annotated as
((burning.a hot.a) (melting.n pot.n))
which gets post-processed to
((mod-n ((mod-a burning.a) hot.a)) ((mod-n melting.n) pot.n))
Therefore, when there’s a (ADJ ADJ), (ADJ N), (N N), or (N ADJ) structure we infer that the first argument is a modifier and the second is being modified.
This cannot be done when the modifier is a verb – “running man”,
“sleeping beauty”, “frequently returning member”, annotated ((mod-n run.v)
man.n)
, ((mod-n sleep.v) beauty.n)
, and ((mod-n (frequently.adv-f
return.v)) (member-of.n *ref))
, respectively. The -ing morpheme here seems
to be acting as an indication that this is a modifier, rather than marking a
progressive or turning the verb into a noun. This also occurs for verb-verb
modification, e.g. “He ran in the forest, looking at the trees” becomes
(he.pro
((past run.v) (adv-e (in.p (the.d forest.n)))
(adv-a (look.v (at.p-arg (the.d (plur tree.n)))))))
The subsection on Participial Phrases discusses such verb phrase
modifiers in more detail. Verbs need explicit type-shifters because some verbs can
take predicate arguments so it would be ambiguous whether the noun or adjective following
a verb is an argument or if the verb is acting as a predicate modifier. An example of
a predicate argument is sad in “He looks sad”. sad is a predicate argument to
looks in this case. This is the same reason that verb modifiers (i.e. of adv-a
type)
always require the type-shifter explicitly.
Notice from the examples in the table of predicate modifier forming operators
that the operators aren’t necessarily prefixed in ULFs, rather they appear in
the surface word order. In EL, monadic operators are prefixed, whereas
operators with more arguments are infixed. In ULF, we leave them in place
since the operator and operand can be inferred from the types of the
constituents. Consider the types for play.v
and (adv-a (with.p (the.d
dog.n)))
. Since the former is an verbal monadic predicate and the latter is
an verbal monadic predicate modifier, we can be certain that (adv-a (with.p
(the.d dog.n)))
is the operator while play.v
is the operand.
Premodification of adjectives and nouns in English tend to allow
non-intersective readings, though this isn’t always the case. The formal type
of the modifiers described so far as intensional predicate modifiers (i.e.
\(\mathcal{N} \rightarrow \mathcal{N}\) allows us to handle both cases.
An example of and intersective reading for premodification is “triangular container”
which we annotate as ((mod-n triangular.a) container.n)
. Since this relation is
intersective, given the correct background knowledge, we would infer that this
has the same meaning as (lambda x ((x triangular.a) and.cc (x container.n)))
.
There are some constructions in English that really seem to always
indicate an intersective interpretation via the grammar, for which we annotate
them as such. This includes post-nominal modification and appositives. For
example, we would annotate “The buildings in the city” as (see the post
on macros for details of the n+preds
macro)
(The.d (n+preds (plur building.n)
(in.p (the.d city.n))))
which is equivalent to
(The.d (lambda x ((x (plur building.n)) and.cc
(x (in.p (the.d city.n))))))
Thus we distinguish grammatical constructions that indicate intersective modification, but ULFs do not distinguish all intersective vs. non-intersective modification.
Actions, Experiences, and Attributes
In the general description, we glanced over what actions – and more generally,
experiences and attributes – are (i.e. what .adv-a
type predicate modifiers
ultimately act over in EL). Here we describe them a bit more carefully.
Adverbial modifiers of the sort .adv-a
intuitively modify actions, experiences,
or attributes, which are a category of individuals in the EL ontology distinct from
events and situations. It’s designed to deal with semantic subtleties such as:
- “He lifted the child easily” – which refers to an action that was easy for the agent, rather than to an easy event;
- “He fell painfully” – which refers to a painful experience rather than to a painful event; and
- “He excels intellectually” – which refers to an intellectual attribute rather than to an intellectual event or situation.
Actions, experiences, and attributes in EL are individuals comprised of
agent-episode pairs and this allows modifiers of the sort .adv-a
to
express a constraint on both the agent (more generally, subject) of a sentence
and the episode it characterizes. No sharp or exhaustive classification of
such pairs into actions, experiences, and attributes is presupposed by this –
the point is just to make the subject of sentences available in working out
entailments of VP-modification. Since actions are derived, in part, from
explicit episodes and such episodes are implicit in ULFs until deindexing,
actions are also implicit in ULFs. Formally, actions have the semantic type
\( \subset \mathcal{D}\), where \(\) is the range of a
pairing function, pair
, of type \((\mathcal{D} \times \mathcal{S}) \rightarrow
\mathcal{D}\). These action-based constraints are derived from .adv-a
predicate modifiers via meaning postulate inference rules. So the formula
(used in the main discussion)
(|John| (play.v (adv-a (with.p (the.d dog.n)))))
after event deindexing and canonicalization could become the formula
[[|John| (play.v (adv-a (with.p (the.d dog.n))))] ** E1.sk]
where E1.sk
is a Skolemized episode variable. From this we can infer
[[|John| play.v] ** E1.sk]
,
[(pair |John| E1.sk) with.p (the.d dog.n)]
The pairing function can also be written with the pipe shorthand, (pair X Y)
\( \equiv \) [X | Y]
. So the second formula above can be rewritten as
[[|John| | E1.sk] with.p (the.d dog.n)]
. Lexical .adv-a
modifiers are similarly
derived into predications over actions. “They escape quickly” (ignoring
tense) has the raw ULF representation
(they.pro (escape.v quickly.adv-a))
which after event deindexing, event canonicalization, and .adv-a
inference results in
[[they.pro escape.v] ** E1.sk]
and [[they.pro | E1.sk] quick.a]
Note the conversion of quickly.adv-a
to quick.a
, since a predication over actions
is inferred from the verb modification.
Participial Phrases
In case you’re unfamiliar, partiples are verbs are used as adjectives (working woman, running man)
or nouns (the exquisite cleaning). As you may have noticed, for simple cases we simply change the
suffix marking of the word to the POS that it is acting as; e.g. (working.a woman.n)
,
(running.a man.n)
, and (the.d (exquisite.a cleaning.n))
. However, for complex participial phrases,
this no longer works because the verb may take arguments in ways don’t fit into formal interpretation
of adjectives and nouns. Consider for example,
- I greeted the frequently returning member
- We’re required to submit a carefully written notice
- Kenneth nervously watched the woman, alarmed by her gun
- I went back to sleep, having heard this before
It seems that we can make arbitrarily complex verb phrases into paritipial phrases, including those that have passivization and perfect aspect. All cases that initially looked tensed turned out to be passivization as far as I’ve seen so far. Participial phrases also don’t allow progressives, since the -ing morpheme is already in use. It can get confusing though since in many cases participles have a concurrent interpretation, but this isn’t always the case, e.g.
- Lifting weights for two hours, Ron developed sore muscles
- The student scoring the highest grade on the exam will receive an award
We consider the concurrent vs. non-concurrent interpretation to be a pragmatic issue and therefore leave it ambiguous in the ULF representation of paritipial phrases.
In ULF we don’t have a single category for participial phrases since the
semantic type structure can vary. When the verb is acting as a predicate
modifying adjective, we will treat complex participial phrases as untensed verb
phrases which may include perf
and pasv
which are type-shifted to the
appropriate predicate modifier. For how we handle nominal participial phrases,
please refer to the Derived Nominals section of the annotation guidelines.
Here are some concrete examples of complex predicate modifying participial
phrase annotations in ULF.
- I greeted the frequently returning member
(i.pro ((past greet.v) (the.d ((mod-n (frequently.adv-f return.v)) (member-of.n *ref)))))
- We’re required to submit a carefully written notice
(we.pro ((pres (pasv require.v)) (to (submit.v (a.d ((mod-n (carefully.adv-a (pasv write.v))) notice.n))))))
- Kenneth nervously watched the woman, alarmed by her gun
(|Kenneth| (nervously.adv-a ((past watch.v) (the.d woman.n) (adv-a ((pasv alarm.v) (by.p-arg (her.d gun.n)))))))
- I went back to sleep, having heard this before
(i.pro ((past go.v) back.adv-a (to.p-arg (k sleep.n)) (adv-a (perf (hear.v this.pro before.adv-e)))))
- Lifting weights for two hours, Ron developed sore muscles
(sub (adv-a (lift.v (k (plur weight.n)) (adv-e (for.p (two.d (plur hour.n)))))) (|Ron| ((past develop.v) (k (sore.a (plur muscle.n))) *h)))
- Any student scoring a good grade on the exam will receive an award
((any.d (n+preds student.n (score.v (a.d (good.a grade.n)) (on.p-arg (the.d exam.n))))) ((pres will.aux-s) (receive.v (an.d award.n))))
Comparison of Modifier Notation Against Stanford Dependencies
The Stanford dependency parser indicates the lexical category of the modifier, not the operand.
amod
- adjectival modifiernmod
– nominal modifieradvmod
– adverbial modifierpartmod
– participal modifier (e.g. “recorded message”)tmod
– temporal modifier (e.g. “said today”)- etc.
If we regard their amod, nmod, partmod labels as of type monadic predicate to monadic-predicate,
we have a kind of equivalence to what we’re doing for N-premodification. But the ULF notation is
more informative concerning adverbs, because their advmod
is ambiguous between adjective-modifying,
VP-modifying and S-modifying. The their notation is slightly more informative than ULF for
noun premodification – they make distinctions like premodifying (ordinary) adjective vs. premodifying
participle.
Sentence Modification
A formula or nonatomic verbal predicate in ULF may contain sentential modifiers
of type \((\mathcal{S} \rightarrow \mathcal{2}) \rightarrow (\mathcal{S} \rightarrow \mathcal{2})\):
divided corresponding to their EL semantic differences into sorts .adv-s
,
.adv-e
, and .adv-f
. Again there are type-shifting operators that create
these sorts of modifiers from monadic predicates. Sentential modifiers of the
sort .adv-s
are usually modal (and thus opaque), e.g.,
perhaps.adv-s
, (adv-s (without.p (a.d doubt.n)))
;
however, negation is transparent in the usual sense – the truth value of a negated sentence depends only of the truth value of the unnegated sentence.
Modifiers of sort .adv-e
are transparent, typically implying temporal or
locative constraints, e.g.,
today.adv-e
, (adv-e (during.p (the.d drought.n)))
, (adv-e (in.p |Rome|))
;
these constraints are ultimately cashed out as predications about episodes
characterized by the sentence being modified. (This is also true for the past
and pres
tense operators.)
Similarly any modifier of sort .adv-f
is transparent and implies the
existence of a multi-episode (characterized by the sentence as a whole) whose
temporally disjoint parts each have the same characterization
(Hwang & Schubert, 1994); e.g.,
regularly.adv-f
, (adv-f ({at}.p (three.d (plur time.n))))
.
The relative scoping of these operators are left ambiguous at the ULF stage, just as with quantifiers and tense. (Kim & Schubert, 2017) introduced this approach to sentence modification annotation and provides further details and examples. They also discuss methods to handle tense and aspect annotation, which are closely related to sentence modification. We adopt their approach in our work.
Flat Bracketing & Localized Modification
In describing predicate and sentence modification, we’ve loosely described the relaxations for operator positioning. Here we discuss the subtleties in operator positioning, motivate the relaxations, and specify the exact constraints.
We refine and generalize the operator-lifting technique of sentence-level
operators described by (Kim & Schubert, 2017) to verb phrases in order to
eliminate word reordering when annotating sentences like “Mary undoubtedly
spoke up”. To summarize the approach from (Kim & Schubert, 2017),
sentence-level operators (e.g. .adv-e
, .adv-s
, etc.) located in the middle
of the sentence, e.g. (|Mary| (undoubtedly.adv-s (past speak_up.v)))
,
can be automatically lifted to sentence-level since the semantic type makes
its necessary position clear. The example just given would lift undoubtedly.adv-s
to sentence level resulting in the formula
(undoubtedly.adv-s (|Mary| (past speak_up.v)))
. (The same would be done for past
when fully processing the sentence).
There are a few refinements need to be made for the approach described by (Kim & Schubert, 2017).
- We need to add restrictions of lifting the operators to the nearest distinct predications such as within embedded sentences and type-shifters.
- We need to introduce a mechanism for sentence-level operators scoped over non-sentence contexts.
- A similar lifting operation is necessary for verb modifiers that can occur in constituent, rather than premodifying position.
I’ll discuss these in order.
Refinement 1: Restrictions of lifting the operators to the nearest distinct predication
Notice that in the following sentences
(1) I know that he didn’t go home,
(2) I saw the boy that didn’t take the ice cream, and
(3) I like to not stay up late
the negations are all restricted to their respective clauses and shouldn’t be
lifted to modify the top-level sentence. That is, (1) is equivalent to saying
I know that it is not the case that he went home. If we were to lift the
negation all the way to the top we get a meaning that we definitely don’t want:
*It is not the case that I know that he went home. (1) and (2) are cases
where the negation is restricted to an embedded sentence. (3) however restricts
it to a verb phrase. This seems to happen due to the reification of the verb
phrase via the ka
operator. Notice this holds for I like to bake cakes
regularly. The liking is happening regularly, it’s the baking that is regular.
Therefore, during the lifting phase, the lifting will only happen to the
nearest sentence or type-shifter. Here we list the raw ULF interpretations for
each of the sentences just discussed and the transformed versions after
lifting. You may notice that there is still some discrepancy in the annotation
of sentence-level operators against (Kim & Schubert, 2017). This will be
cleared up in the discussion of the other refinedments.
(1) I know that he didn’t go home
raw ULF
(i.pro ((pres know.v)
(that (he.pro ((past do.aux-s) not
(go.v (adv-a ({to}.p (k home.n)))))))))
post-lifted ULF
(i.pro ((pres know.v)
(that (not (he.pro ((past do.aux-s)
(go.v (adv-a ({to}.p (k home.n))))))))))
(2) I saw the boy that didn’t take the ice cream
raw ULF
(i.pro ((past see.v)
(the.d (n+preds boy.n
(that.rel ((past do.aux-s) not
(take.v (the.d (ice.n cream.n)))))))))
post-lifted ULF
(i.pro ((past see.v)
(the.d (n+preds boy.n
(not (that.rel ((past do.aux-s)
(take.v (the.d (ice.n cream.n))))))))))
(3) I like to not stay up late
raw ULF
(i.pro ((pres like.v) (to (not (stay_up.v late.adv-e)))))
post-lifted ULF
(i.pro ((pres like.v) (to (not (late.adv-e stay_up.v)))))
(4) I like to bake cakes regularly
raw ULF
(i.pro ((pres like.v) (to (bake.v (k (plur cake.n)) regularly.adv-f))))
post-lifted ULF
(i.pro ((pres like.v) (to (regularly.adv-f (bake.v (k (plur cake.n)))))))
The type compositions don’t work out for the kind-of-action restriction of the
sentence-level operator, as in (to (regularly.adv-f (bake.v (k (plur
cake.n)))))
since regularly.adv-f
is a sentence modifier
(\((\mathcal{S} \rightarrow \mathcal{2}) \rightarrow (\mathcal{S} \rightarrow \mathcal{2})\))
whereas (bake.v (k (plur cake.n)))
is a monadic verbal predicate
(\(\mathcal{N}_{V}\) or
\((\mathcal{D} \rightarrow \mathcal{S} \rightarrow \mathcal{2})_{V}\)).
How this is handled will be clarified when we discuss the next refinement. We
need to generate an appropriate lambda expression to capture this.
The sentence-level operator will be restricted by the following contexts:
- Reification operators (e.g. examples (3) and (4))
- The predicate-argument boundary (e.g. not in The railing helps me not fall over evaluates over fall over, not the whole verb phrase)
- Type shifters (e.g. surprisingly in The surprisingly happy man walked in evaluates over the scope of happy, not the main verb)
What all this reduces to is that a sentence-level operator lifts up the most restrictive complete predication to act over. Reification results in a completely separate predication between the predication in the reification context and the predication resulting from the main verb of the sentence. Similarly, when a predicate is an argument of the main verb, the main verb causes some modification to or comments on the predication resulting from its argument, but the main verb overall makes a separate predication. Consider the example above, The railing helps me not fall over. help operates over me and not fall over, in that the subject of help assists me to realize the predicate not fall over, but the actual predication of help (described by the complete sentence) is distinct from the predication resulting from the argument: me not falling over. In a sense 1) is a special case of 2). We know that once we reify something, the predicate within can’t be forming the main verb, so the reified result must be used as an argument somewhere.
Refinement 2: Mechanism for sentence-level operators scoped over non-sentence contexts
The lifting restrictions from refinement 1 leads to the problem that sentence
level operators now scope over non-sentence objects, e.g. (ka (not
fall_over.v))
. This is problematic to the idea of composition through
semantic types which ULF holds at its core. We assume an implicit expansion to
the necessary type with additional unspecified constituents. Within ULF these
constituents are fully unspecified, but would be fully resolved upon deindexing
the specific predication. Then an implicit lambda expression wraps around the
sentence-level operator with these unspecified arguments as the variables. This
preserves the type of the predicate. For example, (ka (not (fall_over.v)))
has
the implicit lambda expression (ka (lambda x (not (x fall_over.v))))
. Below
are a few examples of this.
(3) I like to not stay up late
post-lifted ULF
(i.pro ((pres like.v) (to (not (late.adv-e stay_up.v)))))
showing implicit lambdas
(i.pro ((pres like.v) (to (lambda x (not (late.adv-e (x stay_up.v)))))))
(4) I like to bake cakes regularly
post-lifted ULF
(i.pro ((pres like.v) (to (regularly.adv-f (bake.v (k (plur cake.n)))))))
showing implicit lambda
(i.pro ((pres like.v)
(to (lambda x (regularly.adv-f (x (bake.v (k (plur cake.n)))))))))
(5) The railing helps me not fall over
post-lifted ULF
((the.d railing.n) ((pres help.v) me.pro (not fall_over.v)))
showing implicit lambdas
((the.d railing.n) ((pres help.v) me.pro (lambda x (not (x fall_over.v)))))
(6) The surprisingly happy man walked in
post-lifted ULF
((the.d ((surprisingly.adv-s happy.a) man.n)) ((past walk.v) in.adv-a))
showing implicit lambdas
((the.d ((lambda x (surprisingly.adv-s (x happy.a)))
man.n))
((past walk.v) in.adv-a))
Refinement 3: Lifting functionality for verb modifiers
Although at first we expected to be able to handle verb modifier placement by simply allowing arbitrary order, this isn’t sufficient for ditransitive verbs since the modifier can be interleaved between the arguments, e.g. Sally gave a book quickly to John. Therefore, what we’ve settled on is that all non-subject arguments and modifiers of a verb are supplied as constituents at the same level. The modifiers can then be lifted to the expected prefix position in post-processing and arguments are supplied to the verb in the provided order. Consider the annotation of the following sentence.
(7)Alice delivered the artifact carefully to the curator today
(|Alice| ((past deliver.v) (the.d artifact.n)
carefully.adv-a
(to.p-arg (the.d curator.n))
today.adv-e))
Notice that we can combine the relaxed context of verbal and sentence modifiers. This flat form of supplying arguments and modifiers allows us to mostly preserve word order and simplify the bracketing structures. After lifting the modifiers, carefully.adv-a and today.adv-e, we get
(today.adv-e (|Alice| (carefully.adv-a
((past deliver.v) (the.d artifact.n)
(to.p-arg (the.d curator.n))))))
Here is the same thing for the other example given above
(8) Sally gave a book quickly to John
(|Sally| ((past give.v) (a.d book.n)
quickly.adv-a
(to.p-arg |John|)))
After lifting
(|Sally| (quickly.adv-a ((past give.v) (a.d book.n)
(to.p-arg |John|))))
Just as with sentence-level operators, these verb modifiers can also be supplied in a manner that doesn’t require lifting. That is, scoped over the whole verb phrase. For example,
(9) Jenn quickly wrote the report
(|Jenn| (quickly.adv-a ((past write.v) (the.d report.n))))
(10) Jim declined the request politely
(|Jim| (((past decline.v) (the.d request.n)) politely.adv-a))
For the motivating examples (7) and (8), this would require changing the word order. Since the verb modifiers are interleaved with the direct objects and indirect objects, they cannot scope around the full verb phrase in the given positions. For reference, the flattened versions of those ULFs would be
(9’) (|Jenn| (quickly.adv-a (past write.v) (the.d report.n)))
(10’) (|Jim| ((past decline.v) (the.d request.n) politely.adv-a))
Note that the order of constituents in these flattened phrases are important.
Although the modifiers are lifted out of the given position and moved to the
verb phrase, the first verb when scanned left to right is considered the acting
verb and the following arguments are interpreted in the English word order.
So for example, (quickly.adv-a (the.d report.n) (past write.v))
is not valid
since after lifting we get (quickly.adv-a ((the.d report.n) (past write.v)))
which looks like we’re trying to apply a verb modifier to a sentence. (Left
supplied verb arguments are assumed to be the subject).
Summary
- Intensional predicate modification is done through functions from monadic predicates to monadic predicates,
\(\mathcal{N} \rightarrow \mathcal{N}\), which have suffix types
.mod-a
,.mod-n
, and.adv-a
for adjective, noun, and VP modification, respectively. - Predicate modifiers can be formed via type-shifters from monadic predicates (
mod-a
,mod-n
,adv-a
) or individuals (nnp
). mod-a
andmod-n
type-shifters can be omitted if their first argument is not a verb and the resulting modifier is premodifying the other noun (e.g.(happy.a dog.n)
omitsmod-n
, but((mod-n (carefully.adv-a (pasv write.v))) notice.n)
cannot omit themod-n
).- When the types are explicit in ULF, the operator position can be either prefixed or infixed.
- Intersective modification such as noun post-modification is handled through macros that map to equivalent lambda expressions.
- Sentence-level operators are lifted to the nearest predication.
- Verb modifiers can be interleaved with non-subject arguments and automatically lift to prefix position.
References
- Hwang, C. H., & Schubert, L. K. (1994). Interpreting Tense, Aspect and Time Adverbials: A Compositional, Unified Approach. Proceedings of the First International Conference on Temporal Logic, 238–264.
- Kim, G., & Schubert, L. (2017). Intension, Attitude, and Tense Annotation in a High-Fidelity Semantic Representation. Proceedings of the Workshop Computational Semantics Beyond Events and Roles, 10–15.