Please do NOT post requests for help here. Use the Help forum for that.
  • Page:
  • 1

TOPIC:

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 1 month 18 minutes ago #1

  • hermann
  • hermann's Avatar Topic Author
  • Away
  • Premium Member
  • Premium Member
  • Posts: 829
@drblam and I had some (off-topic) discussion in another thread about the meaning of "BEF 1 JAN 1900". After that, I started a discussion in the German GEDCOM-L group and finally this was discussed in the official GEDCOM-7 discussion forum #287 .

Whats about?
GEDCOM 5.5.1 defined:

AFT = Event happened after the given date.
BEF = Event happened before the given date.

This is interpreted by most users in the GEDCOM-L group as the given date not be included. This is in line with webtrees, because webtrees allows a user to enter "BEF 1 JAN 1900" by a shortcut "< 1 JAN 1900".

Now GEDCOM 7.0 has modified the definition to:

BEF x = Exact date unknown, but no later than x.

This includes x. The result in the GEDCOM-7 group was that they say that GEDCOM 5.5.1 was not precise and GEDCOM 7 is now more precise. The new definition for AFT and BEF are including the boundaries. They say that existing GEDCOM files in the wild are using it that way. So if there is a source that shows the christening of a person on "1 JAN 1900" and you have no information about the birth event, then you can now write "1 BIRT BEF 1 JAN 1900", because you know that the birth was at a day before that date or maybe on the same day.

So I suggest changing the webtrees shortcuts for BEF and AFT from "<" and ">" to "<=" and ">=". And instead of showing "before" and "after" webtrees should show "before or on" and "after or on".

The translation to German is a bit more complicated because it depends if the date is an exact date, a month or a year:
  • "vor oder am 1. Januar 1900"
  • "vor oder im Januar 1900"
  • "vor oder in 1900"
.
German uses "am/im/in" - sorry.

What do you think? I'm not happy that they changed the semantics of AFT and BEF when introducing GEDCOM 7. In preparation for moving your data to GEDCOM 7 you consequently have to add or subtract one day/month/year in all AFT/BEF lines in your GEDCOM or at least check what a user meant when entering a date there.
Hermann
Designer of the custom module "Extended Family"

webtrees 2.1.16 (all custom modules installed, PHP 8.2, MySQL 5.7) @ ahnen.hartenthaler.eu

Please Log in or Create an account to join the conversation.

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 3 weeks 6 days ago #2

> I'm not happy that they changed the semantics of AFT and BEF when introducing GEDCOM 7.

I agree. It's about language not GEDCOM. AFT clearly shouldn't include the day/month/year itself as it isn't after. The same for BEF.

But if that's what the spec says then yes webtrees will need to change.

> And instead of showing "before" and "after" webtrees should show "before or on" and "after or on".

In English it's better to say "on or before" and "on or after".
webtrees v2.1.12
PHP v8.1.13

Please Log in or Create an account to join the conversation.

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 3 weeks 6 days ago #3

  • norwegian_sardines
  • norwegian_sardines's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 2741
I also disagree with the inclusive tone of the new design and have voiced my concern.

I have always said either: “Before x” or “Before and including x”, but never said “Before x, excluding x”
Ken

Please Log in or Create an account to join the conversation.

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 3 weeks 6 days ago #4

  • norwegian_sardines
  • norwegian_sardines's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 2741
Personally,

If the GEDCOM specification continues to make “BEF” inclusive of the date, when converting to GEDCOM 7.x I would change my GEDCOM to use the DATE.PHRASE statement.

2 DATE BEF 1 JAN 1900
3 PHRASE Before the {event name} occurred, exact date unknown.

This way I have at least documented how I came up with the date.

The webtrees event ordering would have to for all events that have no logical order (i.e. Birth always before Death) would have to rely on some other ordering value rather than the GEDCOM group suggested before includes the date. Because “BEF 1 JAN 1900” was less precise than “ 1 JAN 1900” but now they could be equal, thus an event that really happened before another one now gets the same sort date (rather than -1) could get ordered in reverse.
Ken

Please Log in or Create an account to join the conversation.

Last edit: by norwegian_sardines.

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 3 weeks 6 days ago #5

  • hermann
  • hermann's Avatar Topic Author
  • Away
  • Premium Member
  • Premium Member
  • Posts: 829
Sorting by date is another new topic in GEDCOM 7. They introduced SDATE with a virtual date that is not real but used for sorting.

So if you have a source that says that a married couple bought a farm in 1899 (no exact date known), you can store this as
1 PROP farm bought
2 DATE 1899
2 SDATE 01 JUL 1899

1 MARR
2 DATE BEF 1899
2 SDATE 01 JUN 1899

The marriage has to be before buying the farm, but "BEF 1899" could mean that it was in the same year, so you can specify those virtual sorting dates. In my opinion very dangerous because they could be mixed up by inexperienced users because SDATE and DATE are very similar. I suggest never showing SDATE dates in the user interface of webtrees. What we need is the possibility to sort events as we have it already for sorting names, files in media objects or members in a family. The SDATE should be used behind the scenes maybe using dates some thousand years in the future.
Hermann
Designer of the custom module "Extended Family"

webtrees 2.1.16 (all custom modules installed, PHP 8.2, MySQL 5.7) @ ahnen.hartenthaler.eu

Please Log in or Create an account to join the conversation.

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 3 weeks 6 days ago #6

  • norwegian_sardines
  • norwegian_sardines's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 2741
Herman,

Since SDATE is defined as <DateValue> which includes <dateRange> which includes “BEF”, “AFT” and “BET/AND” we will/could still have a sorting issue!
Ken

Please Log in or Create an account to join the conversation.

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 3 weeks 6 days ago #7

  • fisharebest
  • fisharebest's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 17010
> But if that's what the spec says then yes webtrees will need to change.

I do not agree with this change, and I do not plan to change webtrees...

We only use BEF/AFT when we compare two dates that are the same. e.g.

"AFT 7 MAY 1900" will sort after "7 MAY 1900", (and before "8 MAY 1900)"

Other times, we ignore it.

So, even if they change the definition, our logic will stay the same.

> They introduced SDATE

I already had plans to support this, as Behold (and others) use _SDATE.
github.com/fisharebest/webtrees/issues/4067
Greg Roach - This email address is being protected from spambots. You need JavaScript enabled to view it. - @fisharebest@phpc.social - fisharebest.webtrees.net

Please Log in or Create an account to join the conversation.

Meaning of BEF and AFT with a date in GEDCOM 5.5.1 and GEDCOM 7 1 week 1 day ago #8

  • WGroleau
  • WGroleau's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 2051
I agree with NOT changing the interpretation of AFT and BEF.
For GEDCOM 7 to do so was a very bad decision.
--
Wes Groleau
UniGen.us/

Please Log in or Create an account to join the conversation.

Do you need a web hosting solution for your webtrees site?
If you prefer a host that specialises in webtrees, the following page lists some suppliers able to provide one for you: 
  • Page:
  • 1
Powered by Kunena Forum