Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Witness notes #1481

Draft
wants to merge 125 commits into
base: master
Choose a base branch
from
Draft

Witness notes #1481

wants to merge 125 commits into from

Conversation

canonici
Copy link
Contributor

Support for witness notes in geneweb

@canonici canonici force-pushed the integration-master-gnt branch 4 times, most recently from ef60dbf to 4dfc601 Compare May 12, 2023 14:04
@a2line
Copy link
Collaborator

a2line commented May 14, 2023

as make distrib still lacks from Github CI here is what I have for this branch on Windows

ocaml ./configure.ml --sosa-legacy --gwdb-legacy --release

$ make distrib
cat dune-workspace.in | sed  -e "s/%%%DUNE_PROFILE%%%/release/g" > dune-workspace
Last commit is 4dfc601d2 (2023-05-12).
Generating hd/etc/version.txt… Done.
Generating lib/dune… Done.
Generating lib/gwdb/dune… Done.
Generating lib/core/dune… Done.
Generating lib/util/dune… Done.
Generating lib/system_util/dune… Done.
Generating lib/gwdb-legacy/dune… Done.
Generating lib/gwdb-versioned/dune… Done.
Generating benchmark/dune… Done.
Generating bin/connex/dune… Done.
Generating bin/consang/dune… Done.
Generating bin/fixbase/dune… Done.
Generating bin/ged2gwb/dune… Done.
Generating bin/gwb2ged/dune… Done.
Generating bin/gwc/dune… Done.
Generating bin/gwd/dune… Done.
Generating bin/gwdiff/dune… Done.
Generating bin/gwgc/dune… Done.
Generating bin/gwrepl/dune… Done.
Generating bin/gwu/dune… Done.
Generating bin/setup/dune… Done.
Generating bin/update_nldb/dune… Done.
Generating test/dune… Done.
rm -f -r distribution
dune build -p geneweb --profile release
File "lib/gwdb-legacy/dune", line 19, characters 4-15:
19 |     gwdb_driver
         ^^^^^^^^^^^
Error: The following modules are implementations of virtual modules:
- Gwdb_driver
They cannot have their own interface files.
make: *** [Makefile:128: distrib] Error 1

Is --gwdb-legacy deprecated or broken?

@a2line
Copy link
Collaborator

a2line commented May 14, 2023

Without gwdb-legacy it falls back to gwdb-versionned and seems to ask for syslog (I didn't use --syslog in configure.ml)

A2@D /cygdrive/c/gw
$ ocaml ./configure.ml --release --sosa-legacy

A2@D /cygdrive/c/gw
$ make distrib
cat dune-workspace.in | sed  -e "s/%%%DUNE_PROFILE%%%/release/g" > dune-workspace
Last commit is 4dfc601d2 (2023-05-12).
Generating hd/etc/version.txt… Done.
Generating lib/dune… Done.
Generating lib/gwdb/dune… Done.
Generating lib/core/dune… Done.
Generating lib/util/dune… Done.
Generating lib/system_util/dune… Done.
Generating lib/gwdb-legacy/dune… Done.
Generating lib/gwdb-versioned/dune… Done.
Generating benchmark/dune… Done.
Generating bin/connex/dune… Done.
Generating bin/consang/dune… Done.
Generating bin/fixbase/dune… Done.
Generating bin/ged2gwb/dune… Done.
Generating bin/gwb2ged/dune… Done.
Generating bin/gwc/dune… Done.
Generating bin/gwd/dune… Done.
Generating bin/gwdiff/dune… Done.
Generating bin/gwgc/dune… Done.
Generating bin/gwrepl/dune… Done.
Generating bin/gwu/dune… Done.
Generating bin/setup/dune… Done.
Generating bin/update_nldb/dune… Done.
Generating test/dune… Done.
rm -f -r distribution
dune build -p geneweb --profile release
File "lib/gwdb-versioned/dune", line 9, characters 1-7:
9 |     syslog
     ^^^^^^
Error: Library "syslog" not found.
-> required by library "geneweb.gwdb-versioned" in
   _build/default/lib/gwdb-versioned
-> required by executable ged2gwb in bin/ged2gwb/dune:2
-> required by _build/default/bin/ged2gwb/ged2gwb.exe
-> required by _build/install/default/bin/ged2gwb.exe
-> required by _build/default/geneweb.install
-> required by alias install
(cd _build/default && .ppx/c3461e88ae1503d575d582eb5874e916/ppx.exe -o bin/gwrepl/data.pp.ml --impl bin/gwrepl/data.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
File "data.cppo.ml", line 1, characters 22-24:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 26-28:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 38-40:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 42-44:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 48-50:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
make: *** [Makefile:128: distrib] Error 1

@canonici
Copy link
Contributor Author

as make distrib still lacks from Github CI here is what I have for this branch on Windows

ocaml ./configure.ml --sosa-legacy --gwdb-legacy --release

$ make distrib
cat dune-workspace.in | sed  -e "s/%%%DUNE_PROFILE%%%/release/g" > dune-workspace
Last commit is 4dfc601d2 (2023-05-12).
Generating hd/etc/version.txt… Done.
Generating lib/dune… Done.
Generating lib/gwdb/dune… Done.
Generating lib/core/dune… Done.
Generating lib/util/dune… Done.
Generating lib/system_util/dune… Done.
Generating lib/gwdb-legacy/dune… Done.
Generating lib/gwdb-versioned/dune… Done.
Generating benchmark/dune… Done.
Generating bin/connex/dune… Done.
Generating bin/consang/dune… Done.
Generating bin/fixbase/dune… Done.
Generating bin/ged2gwb/dune… Done.
Generating bin/gwb2ged/dune… Done.
Generating bin/gwc/dune… Done.
Generating bin/gwd/dune… Done.
Generating bin/gwdiff/dune… Done.
Generating bin/gwgc/dune… Done.
Generating bin/gwrepl/dune… Done.
Generating bin/gwu/dune… Done.
Generating bin/setup/dune… Done.
Generating bin/update_nldb/dune… Done.
Generating test/dune… Done.
rm -f -r distribution
dune build -p geneweb --profile release
File "lib/gwdb-legacy/dune", line 19, characters 4-15:
19 |     gwdb_driver
         ^^^^^^^^^^^
Error: The following modules are implementations of virtual modules:
- Gwdb_driver
They cannot have their own interface files.
make: *** [Makefile:128: distrib] Error 1

Is --gwdb-legacy deprecated or broken?

deprecated, it is used in the versioned gwdb, but it has no support for witness notes. We could still offer it with default implementations without support to store the notes, but I don't think it is of any use.

@canonici
Copy link
Contributor Author

Without gwdb-legacy it falls back to gwdb-versionned and seems to ask for syslog (I didn't use --syslog in configure.ml)

A2@D /cygdrive/c/gw
$ ocaml ./configure.ml --release --sosa-legacy

A2@D /cygdrive/c/gw
$ make distrib
cat dune-workspace.in | sed  -e "s/%%%DUNE_PROFILE%%%/release/g" > dune-workspace
Last commit is 4dfc601d2 (2023-05-12).
Generating hd/etc/version.txt… Done.
Generating lib/dune… Done.
Generating lib/gwdb/dune… Done.
Generating lib/core/dune… Done.
Generating lib/util/dune… Done.
Generating lib/system_util/dune… Done.
Generating lib/gwdb-legacy/dune… Done.
Generating lib/gwdb-versioned/dune… Done.
Generating benchmark/dune… Done.
Generating bin/connex/dune… Done.
Generating bin/consang/dune… Done.
Generating bin/fixbase/dune… Done.
Generating bin/ged2gwb/dune… Done.
Generating bin/gwb2ged/dune… Done.
Generating bin/gwc/dune… Done.
Generating bin/gwd/dune… Done.
Generating bin/gwdiff/dune… Done.
Generating bin/gwgc/dune… Done.
Generating bin/gwrepl/dune… Done.
Generating bin/gwu/dune… Done.
Generating bin/setup/dune… Done.
Generating bin/update_nldb/dune… Done.
Generating test/dune… Done.
rm -f -r distribution
dune build -p geneweb --profile release
File "lib/gwdb-versioned/dune", line 9, characters 1-7:
9 |     syslog
     ^^^^^^
Error: Library "syslog" not found.
-> required by library "geneweb.gwdb-versioned" in
   _build/default/lib/gwdb-versioned
-> required by executable ged2gwb in bin/ged2gwb/dune:2
-> required by _build/default/bin/ged2gwb/ged2gwb.exe
-> required by _build/install/default/bin/ged2gwb.exe
-> required by _build/default/geneweb.install
-> required by alias install
(cd _build/default && .ppx/c3461e88ae1503d575d582eb5874e916/ppx.exe -o bin/gwrepl/data.pp.ml --impl bin/gwrepl/data.ml -corrected-suffix .ppx-corrected -diff-cmd - -dump-ast)
File "data.cppo.ml", line 1, characters 22-24:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 26-28:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 38-40:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 42-44:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
File "data.cppo.ml", line 1, characters 48-50:
Warning 14 [illegal-backslash]: illegal backslash escape in string.
make: *** [Makefile:128: distrib] Error 1

my bad, I used it to debug and forgot to remove it afterwards.

@canonici canonici force-pushed the integration-master-gnt branch 2 times, most recently from 2cc8837 to 877229b Compare May 15, 2023 13:53
@lledieu
Copy link
Contributor

lledieu commented May 18, 2023

C'est une très bonne idée de rajouter les notes pour les témoins d'un événements. Cependant, je suis surpris qu'il soit obligatoire de rattacher (ou créer) une personne pour chaque témoin. Ne serait-il pas possible de créer des témoins avec juste une note afin de se donner la possibilité de les lier plus tard à une personne ? Vous allez me dire qu'on peut créer une personne et la fusionner plus tard mais je trouve que ça alourdit inutilement la base avec plein de personnes qu'on ne saura pas fusionner...

Si on se projette un peu plus loin :

  • on pourrait imaginer que cette note soit au format JSON afin de structurer au maximum les données concernant la personne
  • on pourrait imaginer le même type de note (format JSON) pour les personnes liées à une note liée (cas de figure où la note liée est une transcription ou extrait d'un acte)
    Une telle représentation aurait l'avantage de se rapprocher des préconisations du modèle GENTECH (conserver trace de l'origine des informations ainsi que des divergences rencontrées) : https://www.ngsgenealogy.org/wp-content/uploads/NGS-History/Diagram_GENTECH_Data_Model_1.0.pdf

@canonici
Copy link
Contributor Author

C'est une très bonne idée de rajouter les notes pour les témoins d'un événements. Cependant, je suis surpris qu'il soit obligatoire de rattacher (ou créer) une personne pour chaque témoin. Ne serait-il pas possible de créer des témoins avec juste une note afin de se donner la possibilité de les lier plus tard à une personne ? Vous allez me dire qu'on peut créer une personne et la fusionner plus tard mais je trouve que ça alourdit inutilement la base avec plein de personnes qu'on ne saura pas fusionner...

Si on se projette un peu plus loin :

  • on pourrait imaginer que cette note soit au format JSON afin de structurer au maximum les données concernant la personne
  • on pourrait imaginer le même type de note (format JSON) pour les personnes liées à une note liée (cas de figure où la note liée est une transcription ou extrait d'un acte)
    Une telle représentation aurait l'avantage de se rapprocher des préconisations du modèle GENTECH (conserver trace de l'origine des informations ainsi que des divergences rencontrées) : https://www.ngsgenealogy.org/wp-content/uploads/NGS-History/Diagram_GENTECH_Data_Model_1.0.pdf

Si je comprends bien la suggestion, il s'agirait en premier lieu de faire en sorte que les notes puissent avoir leur existence propres indépendamment de tout individu, événement ou famille, puis de permettre de produire des liens vers les dites notes. Quelque chose comme ça ?

Elie Canonici Merle added 2 commits August 3, 2023 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants