Coder Social home page Coder Social logo

Expressing frequency about amr-guidelines HOT 8 CLOSED

amrisi avatar amrisi commented on July 4, 2024
Expressing frequency

from amr-guidelines.

Comments (8)

uhermjakob avatar uhermjakob commented on July 4, 2024

I agree that frequencies will benefit from a more systematic approach. It's a bit tricky because there is a range of frequency types. I'm afraid we can't easily decompose all these cases using existing roles and concepts. So I think we might benefit from a dedicated frame such as the following (specific role names are only a first quick take, maybe we should use :ARG1, :ARG2 ...):

frequency-entity
    :quant
    :per-quant
    :every-interval
    :every-entity

Here are a number of examples how the arguments would be used:

$42,000 per year [salary, which might paid on a monthly schedule]

(f / frequency-entity
    :quant (m / monetary-quantity :quant 42000 :unit (d / dollar))
    :per-quant (t / temporal-quantity :quant 1 :unit (y / year)))

every 3000 miles [oil change]

(f / frequency-entity
    :every-interval (d / distance-quantity :quant 3000 :unit (m / mile)))

every Wednesday afternoon

(f / frequency-entity
    :every-entity (d / date-entity :weekday (w / wednesday) :dayperiod (a / afternoon)))

every other Wednesday

(f / frequency-entity
    :every-interval (t / temporal-quantity :quant 2 :unit (w / week))
    :every-entity (d / date-entity :weekday (w2 / wednesday)))

twice a year [e.g. Thanksgiving and Christmas]

(f / frequency-entity
    :quant 2
    :per-quant (t / temporal-quantity :quant 1 :unit (y / year)))

several times per month

(f / frequency-entity
    :quant (s / several)
    :per-quant (t / temporal-quantity :quant 1 :unit (m / month)))

every day

(f / frequency-entity
    :every-interval (t / temporal-quantity :quant 1 :unit (d / day)))

every day at 8am and 5pm

(f / frequency-entity
    :every-interval (t / temporal-quantity :quant 1 :unit (d / day))
    :every-entity (a / and :op1 (d2 / date-entity :time "8:00")
                           :op2 (d3 / date-entity :time "17:00")))

every once in a while

(f / frequency-entity
    :every-interval (w / while))

from amr-guidelines.

uhermjakob avatar uhermjakob commented on July 4, 2024

We discussed the proposal above at our AMR meeting on June 11, 2013. Participants generally like the idea but most have not had the chance to look at it before and would like some time to think about it. Ulf was asked to provide a few full-sentence examples. Here they are, along with date-entity analogies.

Frequency-entities are typically used with role :frequency, just as date-entities are typically used with :time.
Frequency-entities are used for certain expressions of somewhat regular frequency, often involving "every" or "per",
just as date-entities are used for certain expressions including an absolute time component such as "December" or "4pm".
Frequency-entities are not used for some simple expressions such as sometimes or very often, just as date-entities are not used for some time expressions such as yesterday or next year.

We meet every Tuesday morning.

(m / meet-03
  :ARG0 (w / we)
  :frequency (f / frequency-entity
               :every-entity (d / date-entity :weekday (t / tuesday) 
                                              :dayperiod (m2 / morning))))

We meet often.

(m / meet-03
  :ARG0 (w / we)
  :frequency (o / often))

We met on Tuesday morning.

(m / meet-03
  :ARG0 (w / we)
  :time (d / date-entity
          :weekday (t / tuesday)
          :dayperiod (m2 / morning)))

We met yesterday.

(m / meet-03
  :ARG0 (w / we)
  :time (y / yesterday))

from amr-guidelines.

nschneid avatar nschneid commented on July 4, 2024

2 thumbs up for standardizing our approach to frequencies!

I'm not sure I understand the semantic distinction between :per-quant and :every-interval. Syntactically, per and similar constructions require a :quant, whereas every and each do not:

  • We talk every/each/_per/_a day. (no :quant)
  • We talk once every/each/per/a day. (:quant 1)
  • We talk a few times every/each/per/a day. (:quant a-few)

But this strikes me as a syntactic, not semantic, restriction. Can we simply use :interval for all of these?

A possible objection might be that per admits a wider range of things than just time intervals: e.g., 20 students per teacher. Are these frequencies? Superficially it is not so different than every 3000 miles, but miles can be understood metonymically as implying a temporal interval in a recurring event.

I am definitely in favor of dropping times (as in several times per month) from the AMR.

from amr-guidelines.

uhermjakob avatar uhermjakob commented on July 4, 2024

Nathan raises a good point with his 20 students per teacher example.

So we might want to generalize frequency-entity to something like rate-entity for which frequencies (with role :frequency) would be a common specific case. A rate-entity would accommodate a wider range of expressions, including

  • $4 a gallon
  • $10,000 per capita
  • $10,000 a student per year

We meet every Tuesday morning.

(m / meet-03
  :ARG0 (w / we)
  :frequency (f / rate-entity
               :every-entity (d / date-entity :weekday (t / tuesday) 
                                              :dayperiod (m2 / morning))))

The city spends $10,000 a student per year on education.

(s / spend-01
  :ARG0 (c / city)
  :ARG1 (e / educate-01)
  :ARG3 (r / rate-entity
        :quant (m / monetary-quantity :quant 10000 :unit (d / dollar))
        :per-quant (s2 / student)
        :per-quant (t / temporal-quantity :quant 1 :unit (y / year))))

Gas costs $4 per gallon.

(c / cost-01
  :ARG1 (g / gas)
  :ARG2 (r / rate-entity
        :quant (m / monetary-quantity :quant 4 :unit (d / dollar))
        :per-quant (v / volume-quantity :quant 1 :unit (g2 / gallon))))

Nathan eats two bagels a day.

(e / eat-01
  :ARG0 (p / person :name (n / name :op1 "Nathan"))
  :ARG1 (r / rate-entity
        :quant (b / bagel :quant 2)
        :per-quant (t / temporal-quantity :quant 1 :unit (d / day))))

Mexico has a GDP of $10,000 per capita.

(r / rate-entity
  :quant (m / monetary-quantity :quant 10000 :unit (d / dollar))
  :per-quant (p / person)
  :domain (p2 / product
        :mod (g / gross)
        :mod (d2 / domestic)
        :poss (c / country :name (n / name :op1 "Mexico"))))

:every-interval is more specific than :per-quant.

  • I have to renew my car insurance every six months. (a special case of twice a year, at regular intervals, on June 27 and on December 27)
  • John and Mary go Christmas caroling twice a year. (always in December, not every six months)

from amr-guidelines.

nschneid avatar nschneid commented on July 4, 2024

Ah OK, I guess the difference is 'in every' (:per-quant) vs. 'regularly at a fixed interval of' (:every-interval) vs. 'regularly at a recurring point in time of' (:every-entity).

In meet every Tuesday morning, I feel like every is just a normal quantifier, so it is equivalent to all Tuesday mornings. (The interpretation of this as a once-a-day meeting is an inference.) So this would motivate

(m / meet-03
  :time (d / date-entity :weekday (t / tuesday) 
           :dayperiod (m2 / morning)
           :quant (e / every)))

In once per day or one time during each day, we could just quantify the event:

(m / meet-03
  :quant 1 
  :time (t / temporal-quantity :quant 1 :unit (d / day) :quant (e / every)))

(There may be a scalar implicature that this means "once and only once," but it seems unnecessary to encode this.)

If the recurrence is expressed in terms of the interval, such as once every five minutes, this would call for an explicit :frequency:

(m / meet-03
  :frequency (r / rate-entity 
      :quant 1 
      :interval (t / temporal-quantity :quant 5 :unit (m2 / minute))))

Combining the time-locator and the interval, as in every other Tuesday:

(m / meet-03
  :time (d / date-entity :weekday (t / tuesday)))
  :frequency (r / rate-entity 
      :interval (t / temporal-quantity :quant 2 :unit (w / week))))

I did not modify the date-entity with every because that would imply the meeting takes place every Tuesday, which is false. However, the entailments are that (a) the meeting takes place on Tuesdays, and (b) the meeting recurs at an interval of 2 weeks.

from amr-guidelines.

uhermjakob avatar uhermjakob commented on July 4, 2024

"to meet (once) every a day"

(m / meet-03
  :quant 1 
  :time (t / temporal-quantity :quant 1 :unit (d / day) :quant (e / every)))

AMRs such as the above strike me as somewhat syntactic. These type of frequency expressions are tricky in that one can not just semantically decompose "once every day" into "once" and "every day". The AMR above suggests a single meeting whereas in fact there are many. The temporal-quantity has two :quant's: both "1" and "every". What is that supposed to mean semantically?

from amr-guidelines.

nschneid avatar nschneid commented on July 4, 2024

I agree it's not as deep. But it strikes me as consistent with the sort of compromise between syntax and semantics that AMR typically makes.

In general, AMR does not guarantee that removing modifiers will produce a valid inference. "We met once on Tuesday" would presumably be meet-03 :quant 1 :time [Tuesday], yet that sentence does not imply "We met (only) once", either.

from amr-guidelines.

nschneid avatar nschneid commented on July 4, 2024

The double quant thing was a mistake. It should have read:

In once per day or one time during each day, we could just quantify the event:

(m / meet-03
  :quant 1 
  :time (t / temporal-quantity :unit (d / day) :quant (e / every)))

from amr-guidelines.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.