temporal relation

  • Oliv

    I tried to compare different dates, but i never get answers.

    I performed this type of requests :

      (#$MonthFn #$December
        (#$YearFn 2007))
      (#$YearFn 2008))

    Is opencyc able to provide answers to this type of comparisons?

    More generally, Is Opencyc  able to compare numbers?

    Thanks for your help,


    • RobertMugabe

      [Initial rant...]
      I am new to Cyc and am spending a *vast* amount of time getting to grips with it.  The documentation is obscure and (it seems to me) willfully obstructive at times.  For example, I stumble across PresidentFn with the comment: "This function takes an organization to the individual who is the president of that organization...".  What does 'takes an organization to the individual' mean?  Could they mean PresidentFn associates an individual with an organization?  No!  Because PresidentFn has only the organization as its argument.  It simply means (so far as I can tell) that this particular organization is headed by an individual denoted as president (such as the executive branch of the US).  (Why can't they just say something like that?).  And examples of Cyc use are far too thin on the ground...
      [...end of rant]

      Anyway, #$after has as its arguments (after LATER EARLIER), which are TimePoints.  TimePoints do not have any duration (such as a Year or Hour).  If you look at TimePoint, you can see it's disjoint with CalendarYear, CalendarDay etc.  Of course, #$after could have been better defined so as to trap for 'gotchas' like this.

      From my reading, #$after is to be used mostly with *events* where the time duration is somewhat irrelevant, for example: (after DeathOfSalesman BirthOfSalesman).

      Anyway, to compare your dates use #$greaterThan, #$greaterThanOrEqualTo etc.  These are NumericComparisonPredicate predicates and you can find others with (isa ?NCP NumericComparisonPredicate).