1

13 アレンの関係のプロローグベースの表現を使用して、イベントの時点を比較できるプロローグ実装があります。各イベントには開始点 (YYYY-MM-DD) と終了点 (YYYY-MM-DD) があり、2 つのイベントが同時に発生したのか、1 つのイベントが別のイベントの前に発生したのかなどを日単位の粒度 (例: 1555-12-03 は 1555-12-04 より前です)。いわゆる AC 日付 (Anno Domini) では問題なく動作しますが、今では紀元前 (紀元前) に起こった多くのイベントがあります。これらの紀元前の出来事を処理し、たとえば、アテネの基礎 (紀元前 1556 年) がコロンブス (1451 年) の誕生よりも前であると言うことができる最善の方法は何でしょうか...どんなアイデアでも大歓迎です。

ありがとう、

私。

4

2 に答える 2

1

彼は、日付がさまざまな述語に格納されているのか、それとも単一の日付述語でのみ指定されているのか、たとえばa_date(12345、 "12-24-2011")で最初のフィールドがIDフィールドであるかどうかを尋ねていると思います。つまり、日付を次のように保存しますか

a_date(event_id、date_value)

date_valueの形式はYYYY-MM-DDですか?

1つの解決策:日付文字列に「AD」または「BC」を要求します。デフォルトは「BC」であり、どちらも存在しない場合は「AD」として扱います。

別の解決策:新しい日付述語を作成し、それを呼び出します

a_date(even_id、date_value、flag)

ここで、フラグはbcまたはadのいずれかです。フラグが広告の場合、計算は通常どおり続行されます。フラグがbcの場合、適切な計算を行う新しいコードに分岐します。a_date(event_id、date_value)形式の既存の日付述語は、a_date(event_id、date_value、 "AD")として解釈されます。

つまり、コードでは

a_date(event_id、date_value):= a_date(event_id、date_value、 "AD")

于 2010-11-25T20:55:50.543 に答える
0

日付をどのように保存していますか?独自の構造体にある場合は、AD または BC を含め、これを一種の負のフラグとして使用します。BC は年を負として扱い、AD は年を正として扱います。

于 2010-11-25T17:04:30.963 に答える