fisharebest / webtrees

Online genealogy
https://webtrees.net
GNU General Public License v3.0
463 stars 299 forks source link

Feature Request: Error check based on Gedcom 7 #4942

Open Joppla opened 8 months ago

Joppla commented 8 months ago

For some reasons I checked on GedCom 7 compability. The error check is based on GedCom 5.5.1. This gives a lot of error messages.

Request: Is it possible to do the error check based on GedCom 7 when GedCom 7 is enabled.

See: https://www.webtrees.net/index.php/forum/help-for-release-2-1-x/38669-error-check-database#103439 See: https://www.webtrees.net/index.php/forum/help-for-release-2-1-x/38002-howto-add-time-to-a-birth-or-death-event#99524

HonkXL commented 5 months ago

This would be really helpful. I have large trees and the error check is completely useless for me now. I get a endless table that slows the browser to become freezing. Most of the entries are "bad" time-entries.

Joppla commented 5 months ago

Why is Gedcom 5.5 still the standard in Webtrees? Since 2021 (3 years ago) Gedcom 7.0 is published.

fisharebest commented 5 months ago

Why is Gedcom 5.5 still the standard in Webtrees? Since 2021 (3 years ago) Gedcom 7.0 is published.

Unlike other applications, webtrees uses GEDCOm as its internal storage format - not as an import/export format.

Also, it does not attempt to automatically convert/fix your data. Our users prefer this.

So, switching from 5.5.1 to 7.0 would instantly result in everybody's data suddenly being invalid.

Joppla commented 5 months ago

@fisharebest : Thanks for your explanation.

Otherwise you tell "Our users prefer this." This sound for me strange. I am a user too ...

I didn't prefer to update from 1.7 to 2.1. But I had to. With the update from 1.7 to 2.1 there were a lot of changes and still, after a year, I find some errors in by database by reason of the update. So, that argument for no further development seems me a little bit a sought-after argument.

But I should be great is minimal the error check can be made that 7.0 errors will not be shown, as requested on 17th of January. Is that possible?

Norwegian-Sardines commented 5 months ago

after a year, I find some errors in by database by reason of the update. So, that argument for no further development seems me a little bit a sought-after argument.

I don’t understand this statement! What errors are you finding?

Many users of the webtrees community import GEDCOM files based on old GEDCOM standards! Some/many imports don’t follow any standard! webtrees try’s the keep the GEDCOM as-is so data is not lost, which is unlike all of the applications I’ve tried (I’ve used several). webtrees does tell users that they don’t conform to the GEDCOM v5.5.1 standard an easy thing to do because v5.5.1 has not changed in almost 25 years. webtrees does not require you to fix non-compliant GEDCOM, but I always caution that non-compliant GEDCOM may cause issues in reports and logic.

GEDCOM v7 is still changing and is not 100% set in stone, an error check on v7 is not 100%.

what software are you using that is 100% v7.0.14 compliant?

fisharebest commented 5 months ago

webtrees defines a hierarchy of every possible tag, with a definition for each one. e.g. INDI:BIRT:DATE is a "date object".

https://github.com/fisharebest/webtrees/blob/2.1.20/app/Gedcom.php#L601-L604

As well as a full list of all the standard 5.5.1 tags, we have list of tags created by third-party applications.

GEDCOM 7 introduces some practical difficulties. Most notably, it allows infinite nesting of tags. e.g. you can have

1 NOTE
2 SOUR
3 NOTE
4 SOUR
5 NOTE
6 SOUR
7 NOTE
8 SOUR
9 NOTE
10 SOUR
....

Our current design requires a finite set of tags (because they are all defined at the start), and it is not possible to create a GEDCOM definition that is potentially infinite.

Our definitions are global - they apply to all trees. I can imagine that users would want some GEDCOM 5.5.1 trees and some GEDCOM 7 trees. So that's another complexity to consider.

So, there are some practical difficulties - which prevent this from being a quick/easy change.