Członkowie Paranteli: Systematyzacja Identyfikacji
🕵🏻👤👥🫂👫👨👩👧👦.
⚠️🚫⛔ARTYKUŁ PODCZAS PRZYGOTOWYWANIA.⛔🚫⚠️
Krewni Wstępni: Agnaci.
1° (⁻¹P⁝F) 【2⚥】: Ojciec.
2° (⁻²P₂⁝FF) 【4⚥】: Dziadek ojczysty.
2° (⁻²P₂⁝FM) 【5⚥】: Babcia ojczysta.
3° (⁻³P₃⁝FFF) 【8⚥】: Pradziadek ojczysto-ojczysty.
3° (⁻³P₃⁝FFM) 【9⚥】: Prababcia ojczysto-ojczysta.
3° (⁻³P₃⁝FMF) 【10⚥】: Pradziadek macierzysto-ojczysty.
3° (⁻³P₃⁝FMM) 【11⚥】: Prababcia macierzysto-ojczysta.
Krewni Wstępni: Kognaci.
1° (⁻¹P⁝M) 【3⚥】: Matka.
2° (⁻²P₂⁝MF) 【6⚥】: Dziadek macierzysty.
2° (⁻²P₂⁝MM) 【7⚥】: Babcia macierzysta.
3° (⁻³P₃⁝MFF) 【12⚥】: Pradziadek ojczysto-macierzysty.
3° (⁻³P₃⁝MFM) 【13⚥】: Prababcia ojczysto-macierzysta.
3° (⁻³P₃⁝MMF) 【14⚥】: Pradziadek macierzysto-macierzysty.
3° (⁻³P₃⁝MMM) 【15⚥】: Prababcia macierzysto-macierzysta.
Krewni Zstępni.
1° (⁺¹C⁝S) 【1⚥2☍】: Syn.
2° (⁺²C₂⁝SS) 【1⚥4☍】: Wnuk.
2° (⁺²C₂⁝SD) 【1⚥5☍】: Wnuczka.
3° (⁺³C₃⁝SSS) 【1⚥8☍】: Prawnuk.
3° (⁺³C₃⁝SSD) 【1⚥9☍】: Prawnuczka.
3° (⁺³C₃⁝SDS) 【1⚥10☍】: Prawnuk.
3° (⁺³C₃⁝SDD) 【1⚥11☍】: Prawnuczka.
1° (⁺¹C⁝D) 【1⚥3☍】: Córka.
2° (⁺²C₂⁝DS) 【1⚥6☍】: Wnuk.
2° (⁺²C₂⁝DD) 【1⚥7☍】: Wnuczka.
3° (⁺³C₃⁝DSS) 【1⚥12☍】: Prawnuk.
3° (⁺³C₃⁝DSD) 【1⚥13☍】: Prawnuczka.
3° (⁺³C₃⁝DDS) 【1⚥14☍】: Prawnuk.
3° (⁺³C₃⁝DDD) 【1⚥15☍】: Prawnuczka.
Krewni Boczni: Zstępni Po Rodzicach.
【1⚥】
2° (⁼⁰G⁝B) 【1⚥2⚤】: Brat.
3° (⁺¹GC⁝BS) 【1♂4⚤】: Synowiec (Bratanek).
3° (⁺¹GC⁝BS) 【1♀4⚤】: Brataniec (Bratanek).
3° (⁺¹GC⁝BD) 【1♂5⚤】: Synowica.
3° (⁺¹GC⁝BD) 【1♀5⚤】: Bratanica.
4° (⁺²GC⁝BSS) 【1♂8⚤】: Wnuk stryjeczny.
4° (⁺²GC⁝BSS) 【1♀8⚤】: Wnuk cioteczny.
4° (⁺²GC⁝BSD) 【1♂9⚤】: Wnuczka stryjeczna.
4° (⁺²GC⁝BSD) 【1♀9⚤】: Wnuczka cioteczna.
4° (⁺²GC⁝BDS) 【1♂10⚤】: Wnuk stryjeczny.
4° (⁺²GC⁝BDS) 【1♀10⚤】: Wnuk cioteczny.
4° (⁺²GC⁝BDD) 【1♂11⚤】: Wnuczka stryjeczna.
4° (⁺²GC⁝BDD) 【1♀11⚤】: Wnuczka cioteczna.
2° (⁼⁰G⁝Z) 【1⚥3⚤】: Siostra.
3° (⁺¹GC⁝ZS) 【1⚥6⚤】: Siostrzeniec.
3° (⁺¹GC⁝ZD) 【1⚥7⚤】: Siostrzenica.
4° (⁺²GC⁝ZSS) 【1♂12⚤】: Wnuk wujeczny.
4° (⁺²GC⁝ZSS) 【1♀12⚤】: Wnuk siołeczny.
4° (⁺²GC⁝ZSD) 【1♂13⚤】: Wnuczka wujeczna.
4° (⁺²GC⁝ZSD) 【1♀13⚤】: Wnuczka siołeczna.
4° (⁺²GC⁝ZDS) 【1♂14⚤】: Wnuk wujeczny.
4° (⁺²GC⁝ZDS) 【1♀14⚤】: Wnuk siołeczny.
4° (⁺²GC⁝ZDD) 【1♂15⚤】: Wnuczka wujeczna.
4° (⁺²GC⁝ZDD) 【1♀15⚤】: Wnuczka siołeczna.
2° (⁼⁰PC⁝FS) 【1⚥2⚣】: Półbrat ojczysty.
2° (⁼⁰PC⁝MS) 【1⚥2⚢】: Półbrat macierzysty.
3° (⁺¹PC₂⁝FSS) 【1♂4⚣】: Półsynowiec (Półbratanek) ojczysty.
3° (⁺¹PC₂⁝FSS) 【1♀4⚣】: Półbrataniec (Półbratanek) ojczysty.
3° (⁺¹PC₂⁝MSS) 【1♂4⚢】: Półsynowiec (Półbratanek) macierzysty
3° (⁺¹PC₂⁝MSS) 【1♀4⚢】: Półbrataniec (Półbratanek) macierzysty
3° (⁺¹PC₂⁝FSD) 【1♂5⚣】: Półsynowica (Półbratanica) ojczysta.
3° (⁺¹PC₂⁝FSD) 【1♀5⚣】: Półbratanica ojczysta.
3° (⁺¹PC₂⁝MSD) 【1♂5⚢】: Półsynowica (Półbratanica) macierzysta.
3° (⁺¹PC₂⁝MSD) 【1♀5⚢】: Półbratanica macierzysta.
2° (⁼⁰PC⁝FD) 【1⚥3⚣】: Półsiostra ojczysta.
2° (⁼⁰PC⁝MD) 【1⚥3⚢】: Półsiostra macierzysta.
3° (⁺¹PC₂⁝FDS) 【1⚥6⚣】: Półsiostrzeniec ojczysty.
3° (⁺¹PC₂⁝MDS) 【1⚥6⚢】: Półsiostrzeniec macierzysty.
3° (⁺¹PC₂⁝FDD) 【1⚥7⚣】: Półsiostrzenica ojczysta.
3° (⁺¹PC₂⁝MDD) 【1⚥7⚢】: Półsiostrzenica macierzysta.
Krewni Boczni: Zstępni Po Ojczystych Dziadkach.
【2⚥】
3° (⁻¹PG⁝FB) 【2⚥2⚤】: Stryj.
4° (⁼⁰PGC⁝FBS) 【2⚥4⚤】: Brat stryjeczny.
4° (⁼⁰PGC⁝FBD) 【2⚥5⚤】: Siostra stryjeczna.
5° (⁺¹PGC₂⁝FBSS) 【2⚥8⚤】: Nieć.
5° (⁺¹PGC₂⁝FBSD) 【2⚥9⚤】: Nieściora.
5° (⁺¹PGC₂⁝FBDS) 【2⚥10⚤】: Nieć.
5° (⁺¹PGC₂⁝FBDD) 【2⚥11⚤】: Nieściora.
3° (⁻¹PG⁝FZ) 【2⚥3⚤】: Ciotka.
4° (⁼⁰PGC⁝FZS) 【2⚥6⚤】: Brat cioteczny.
4° (⁼⁰PGC⁝FZD) 【2⚥7⚤】: Siostra cioteczna.
5° (⁺¹PGC₂⁝FZSS) 【2⚥12⚤】: Nieć.
5° (⁺¹PGC₂⁝FZSD) 【2⚥13⚤】: Nieściora.
5° (⁺¹PGC₂⁝FZDS) 【2⚥14⚤】: Nieć.
5° (⁺¹PGC₂⁝FZDD) 【2⚥15⚤】: Nieściora.
3° (⁻¹P₂C⁝FFS) 【2⚥2⚣】: Półstryj ojczysty.
3° (⁻¹P₂C⁝FMS) 【2⚥2⚢】: Półstryj macierzysty.
3° (⁻¹P₂C⁝FFD) 【2⚥3⚣】: Półciotka ojczysta.
3° (⁻¹P₂C⁝FMD) 【2⚥3⚢】: Półciotka macierzysta.
Krewni Boczni: Zstępni Po Macierzystych Dziadkach.
【3⚥】
3° (⁻¹PG⁝MB) 【3⚥2⚤】: Wuj.
4° (⁼⁰PGC⁝MBS) 【3⚥4⚤】: Brat wujeczny.
4° (⁼⁰PGC⁝MBD) 【3⚥5⚤】: Siostra wuyjeczna.
5° (⁺¹PGC₂⁝MBSS) 【3⚥8⚤】: Nieć.
5° (⁺¹PGC₂⁝MBSD) 【3⚥9⚤】: Nieściora.
5° (⁺¹PGC₂⁝MBDS) 【3⚥10⚤】: Nieć.
5° (⁺¹PGC₂⁝MBDD) 【3⚥11⚤】: Nieściora.
3° (⁻¹PG⁝MZ) 【3⚥3⚤】: Ciotka.
4° (⁼⁰PGC⁝MZS) 【3⚥6⚤】: Brat siołeczny.
4° (⁼⁰PGC⁝MZD) 【3⚥7⚤】: Siostra siołeczna.
5° (⁺¹PGC₂⁝MZSS) 【3⚥12⚤】: Nieć.
5° (⁺¹PGC₂⁝MZSD) 【3⚥13⚤】: Nieściora.
5° (⁺¹PGC₂⁝MZDS) 【3⚥14⚤】: Nieć.
5° (⁺¹PGC₂⁝MZDD) 【3⚥15⚤】: Nieściora.
3° (⁻¹P₂C⁝MFS) 【3⚥2⚣】: Półwuj ojczysty.
3° (⁻¹P₂C⁝MMS) 【3⚥2⚢】: Półwuj macierzysty.
3° (⁻¹P₂C⁝MFD) 【3⚥3⚣】: Półsioła ojczysta.
3° (⁻¹P₂C⁝MMD) 【3⚥3⚢】: Półsioła macierzysta.
Krewni Boczni: Zstępni Po Ojczystych Pradziadkach.
【3⚥】 & 【4⚥】
4° (⁻²P₂G⁝FFB) 【4⚥2⚤】: Prastryj.
5° (⁻¹P₂GC⁝FFBS) 【4⚥4⚤】: Stryj stryjeczny.
5° (⁻¹P₂GC⁝FFBD) 【4⚥5⚤】: Ciotka stryjeczna.
6° (⁼⁰P₂GC₂⁝FFBSS) 【4⚥8⚤】: Brat przestryjeczny.
6° (⁼⁰P₂GC₂⁝FFBSD) 【4⚥9⚤】: Siostra przestryjeczna.
6° (⁼⁰P₂GC₂⁝FFBDS) 【4⚥10⚤】: Brat przestryjeczny.
6° (⁼⁰P₂GC₂⁝FFBDD) 【4⚥11⚤】: Siostra przestryjeczna.
4° (⁻²P₂G⁝FFZ) 【4⚥3⚤】: Praciotka.
5° (⁻¹P₂GC⁝FFZS) 【4⚥6⚤】: Stryj cioteczny.
5° (⁻¹P₂GC⁝FFZD) 【4⚥7⚤】: Ciotka cioteczna.
6° (⁼⁰P₂GC₂⁝FFZSS) 【4⚥12⚤】: Brat przecioteczny.
6° (⁼⁰P₂GC₂⁝FFZSD) 【4⚥13⚤】: Siostra przecioteczna.
6° (⁼⁰P₂GC₂⁝FFZDS) 【4⚥14⚤】: Brat przecioteczny.
6° (⁼⁰P₂GC₂⁝FFZDD) 【4⚥15⚤】: Siostra przecioteczna.
4° (⁻²P₂G⁝FMB) 【5⚥2⚤】: Prawuj.
5° (⁻¹P₂GC⁝FMBS) 【5⚥4⚤】: Stryj wujeczny.
5° (⁻¹P₂GC⁝FMBD) 【5⚥5⚤】: Ciotka wujeczna.
6° (⁼⁰P₂GC₂⁝FMBSS) 【5⚥8⚤】: Brat przewujeczny.
6° (⁼⁰P₂GC₂⁝FMBSD) 【5⚥9⚤】: Siostra przewujeczna.
6° (⁼⁰P₂GC₂⁝FMBDS) 【5⚥10⚤】: Brat przewujeczny
6° (⁼⁰P₂GC₂⁝FMBDD) 【5⚥11⚤】: Siostra przewujeczna.
4° (⁻²P₂G⁝FMZ) 【5⚥3⚤】: Prasioła.
5° (⁻¹P₂GC⁝FMZS) 【5⚥6⚤】: Stryj siołeczny.
5° (⁻¹P₂GC⁝FMZD) 【5⚥7⚤】: Ciotka siołeczna.
6° (⁼⁰P₂GC₂⁝FMZSS) 【5⚥12⚤】: Brat przesiołeczny.
6° (⁼⁰P₂GC₂⁝FMZSD) 【5⚥13⚤】: Siostra przesiołeczna.
6° (⁼⁰P₂GC₂⁝FMZDS) 【5⚥14⚤】: Brat przesiołeczny.
6° (⁼⁰P₂GC₂⁝FMZDD) 【5⚥15⚤】: Siostra przesiołeczna.
Krewni Boczni: Zstępni Po Macierzystych Pradziadkach.
【5⚥】 & 【6⚥】
4° (⁻²P₂G⁝MFB) 【6⚥2⚤】: Prastryj.
5° (⁻¹P₂GC⁝MFBS) 【6⚥4⚤】: Stryj stryjeczny.
5° (⁻¹P₂GC⁝MFBD) 【6⚥5⚤】: Ciotka stryjeczna.
6° (⁼⁰P₂GC₂⁝MFBSS) 【6⚥8⚤】: Brat przestryjeczny.
6° (⁼⁰P₂GC₂⁝MFBSD) 【6⚥9⚤】: Siostra przestryjeczna.
6° (⁼⁰P₂GC₂⁝MFBDS) 【6⚥10⚤】: Brat przestryjeczny.
6° (⁼⁰P₂GC₂⁝MFBDD) 【6⚥11⚤】: Siostra przestryjeczna.
4° (⁻²P₂G⁝MFZ) 【6⚥3⚤】: Praciotka.
5° (⁻¹P₂GC⁝MFZS) 【6⚥6⚤】: Stryj cioteczny.
5° (⁻¹P₂GC⁝MFZD) 【6⚥7⚤】: Ciotka cioteczna.
6° (⁼⁰P₂GC₂⁝MFZSS) 【6⚥12⚤】: Brat przecioteczny.
6° (⁼⁰P₂GC₂⁝MFZSD) 【6⚥13⚤】: Siostra przecioteczna.
6° (⁼⁰P₂GC₂⁝MFZDS) 【6⚥14⚤】: Brat przecioteczny.
6° (⁼⁰P₂GC₂⁝MFZDD) 【6⚥15⚤】: Siostra przecioteczna.
4° (⁻²P₂G⁝MMB) 【7⚥2⚤】: Prawuj.
5° (⁻¹P₂GC⁝MMBS) 【7⚥4⚤】: Stryj wujeczny.
5° (⁻¹P₂GC⁝MMBD) 【7⚥5⚤】: Ciotka wujeczna.
6° (⁼⁰P₂GC₂⁝MMBSS) 【7⚥8⚤】: Brat przewujeczny.
6° (⁼⁰P₂GC₂⁝MMBSD) 【7⚥9⚤】: Siostra przewujeczna.
6° (⁼⁰P₂GC₂⁝MMBDS) 【7⚥10⚤】: Brat przewujeczny
6° (⁼⁰P₂GC₂⁝MMBDD) 【7⚥11⚤】: Siostra przewujeczna.
4° (⁻²P₂G⁝MMZ) 【7⚥3⚤】: Prasioła.
5° (⁻¹P₂GC⁝MMZS) 【7⚥6⚤】: Stryj siołeczny.
5° (⁻¹P₂GC⁝MMZD) 【7⚥7⚤】: Ciotka siołeczna.
6° (⁼⁰P₂GC₂⁝MMZSS) 【7⚥12⚤】: Brat przesiołeczny.
6° (⁼⁰P₂GC₂⁝MMZSD) 【7⚥13⚤】: Siostra przesiołeczna.
6° (⁼⁰P₂GC₂⁝MMZDS) 【7⚥14⚤】: Brat przesiołeczny.
6° (⁼⁰P₂GC₂⁝MMZDD) 【7⚥15⚤】: Siostra przesiołeczna.
Powinowaci: Partnerzy Wstępnych, wraz z ichże Wstępnymi i Zstępnymi.
1° (⁻¹PE⁝MH) 【3⚥1⚭】: ojczym.
2° (⁻²PEP⁝MHF) 【3⚥2⚭】: dziadek ojczysty przybrany, ojciec ojczyma.
2° (⁻²PEP⁝MHM) 【3⚥3⚭】: babka ojczysta przybrana, matka ojczyma.
2° (⁼⁰PEC⁝MHS) 【3⚥2⚬】: brat przybrany.
2° (⁼⁰PEC⁝MHD) 【3⚥3⚬】: siostra przybrana.
1° (⁻¹PE⁝FW) 【2⚥1⚭】: macocha.
2° (⁻²PEP⁝FWF) 【2⚥2⚭】: dziadek macierzysty przybrany, ojciec macochy.
2° (⁻²PEP⁝FWM) 【2⚥3⚭】: babka macierzysta przybrana, matka macochy.
2° (⁼⁰PEC⁝FWS) 【2⚥2⚬】: brat przybrany.
2° (⁼⁰PEC⁝FWD) 【2⚥3⚬】: siostra przybrana.
2° (⁻²P₂E⁝FMH) 【5⚥1⚭】: dziadek ojczysty przybrany, ojczym ojca.
2° (⁻²PE⁝MMH) 【7⚥1⚭】: dziadek macierzysty przybrany, ojczym matki .
2° (⁻²P₂E⁝FFW) 【4⚥1⚭】: babka ojczysta przybrana, macocha ojca.
2° (⁻²P₂E⁝MFW) 【6⚥1⚭】: babka macierzysta przybrana, macocha matki .
Powinowaci: Partnerzy Probanta Wraz z Wstępnymi.
【1♂】 & 【1♀】
0° (⁼⁰E⁝W) 【1♂1⚭】: Żona.
1° (⁻¹EP⁝WF) 【1♂2⚭】: Teść.
1° (⁻¹EP⁝WM) 【1♂3⚭】: Teściowa.
2° (⁻²EP₂⁝WFF) 【1♂2⚭】: Prateść.
2° (⁻²EP₂⁝WFM) 【1♂3⚭】: Prateściowa.
2° (⁻²EP₂⁝WMF) 【1♂2⚭】: Prateść.
2° (⁻²EP₂⁝WMM) 【1♂3⚭】: Prateściowa.
0° (⁼⁰E⁝H) 【1♀1⚭】: Mąż.
1° (⁻¹EP⁝HF) 【1♀2⚭】: Świekier (Teść).
1° (⁻¹EP⁝HM) 【1♀3⚭】: Świekra (Teściowa).
2° (⁻²EP₂⁝HFF) 【1♀2⚭】: Praświekier.
2° (⁻²EP₂⁝HFM) 【1♀3⚭】: Praświekra.
2° (⁻²EP₂⁝HMF) 【1♀2⚭】: Praświekier.
2° (⁻²EP₂⁝HMM) 【1♀3⚭】: Praświekra.
Powinowaci: Zstępni Partnerów Probanta.
【1♂】 & 【1♀】
1° (⁺¹EC⁝WS) 【1♂2⚬】: Pasierb.
1° (⁺¹EC⁝WD) 【1♂3⚬】: Pasierbica.
2° (⁺²EC₂⁝WSS) 【1♂4⚬】: wnuk żony, wnuk przybrany, syn pasierba.
2° (⁺²EC₂⁝WSD) 【1♂5⚬】: wnuczka żony, wnuczka przybrana, córka pasierba.
2° (⁺²EC₂⁝WDS) 【1♂6⚬】: wnuk żony, wnuk przybrany, syn pasierbicy.
2° (⁺²EC₂⁝WDD) 【1♂7⚬】: wnuczka żony, wnuczka przybrana, córka pasierbicy.
1° (⁺¹EC⁝HS) 【1♀2⚬】: Pasierb.
1° (⁺¹EC⁝HD) 【1♀3⚬】: Pasierbica.
2° (⁺²EC₂⁝HSS) 【1♀4⚬】: wnuk męża, wnuk przybrany, syn pasierba.
2° (⁺²EC₂⁝HSD) 【1♀5⚬】: wnuczka męża, wnuczka przybrana, córka pasierba.
2° (⁺²EC₂⁝HDS) 【1♀6⚬】: wnuk męża, wnuk przybrany, syn pasierbicy.
2° (⁺²EC₂⁝HDD) 【1♀7⚬】: wnuczka męża, wnuczka przybrana, córka pasierbicy.
Powinowaci: Krewni Boczni Partnerów Probanta.
【1♂】 & 【1♀】
2° (⁼⁰EG⁝WB) 【1♂2⚯】: szurzy (brat żony, szwagier).
2° (⁼⁰EG⁝WZ) 【1♂3⚯】: świeść (siostra żony, szwagierka).
3° (⁺¹EGC⁝WBS) 【1♂4⚯】: pociotek (brataniec żony).
3° (⁺¹EGC⁝WBD) 【1♂5⚯】: pociotka (bratanica żony).
3° (⁺¹EGC⁝WZS) 【1♂6⚯】: pociotek (siostrzeniec żony).
3° (⁺¹EGC⁝WZD) 【1♂7⚯】: pociotka (siostrzenica żony).
4° (⁺²EGC₂⁝WBSS) 【1♂8⚯】: prapociotek (wnuk brata żony).
4° (⁺²EGC₂⁝WBSD) 【1♂9⚯】: prapociotka (wnuczka brata żony).
4° (⁺²EGC₂⁝WBDS) 【1♂10⚯】: prapociotek (wnuk brata żony).
4° (⁺²EGC₂⁝WBDD) 【1♂11⚯】: prapociotka (wnuczka brata żony).
4° (⁺²EGC₂⁝WZSS) 【1♂12⚯】: prapociotek (wnuk siostry żony).
4° (⁺²EGC₂⁝WZSD) 【1♂13⚯】: prapociotka (wnuczka siostry żony).
4° (⁺²EGC₂⁝WZDS) 【1♂14⚯】: prapociotek (wnuk siostry żony).
4° (⁺²EGC₂⁝WZDD) 【1♂15⚯】: prapociotka (wnuczka siostry żony).
2° (⁼⁰EG⁝HB) 【1♀2⚯】: dziewierz (brat męża, szwagier).
2° (⁼⁰EG⁝HZ) 【1♀3⚯】: zełwa (siostra męża, szwagierka).
3° (⁺¹EGC⁝HBS) 【1♀4⚯】: pociotek (synowiec męża).
3° (⁺¹EGC⁝HBD) 【1♀5⚯】: pociotka (synowica męża).
3° (⁺¹EGC⁝HZS) 【1♀6⚯】: pociotek (siostrzeniec męża).
3° (⁺¹EGC⁝HZD) 【1♀7⚯】: pociotka (siostrzenica męża).
4° (⁺²EGC₂⁝HBSS) 【1♀8⚯】: prapociotek (wnuk brata męża).
4° (⁺²EGC₂⁝HBSD) 【1♀9⚯】: prapociotka (wnuczka brata męża).
4° (⁺²EGC₂⁝HBDS) 【1♀10⚯】: prapociotek (wnuk brata męża).
4° (⁺²EGC₂⁝HBDD) 【1♀11⚯】: prapociotka (wnuczka brata męża).
4° (⁺²EGC₂⁝HZSS) 【1♀12⚯】: prapociotek (wnuk siostry męża).
4° (⁺²EGC₂⁝HZSD) 【1♀13⚯】: prapociotka (wnuczka siostry męża).
4° (⁺²EGC₂⁝HZDS) 【1♀14⚯】: prapociotek (wnuk siostry męża).
4° (⁺²EGC₂⁝HZDD) 【1♀15⚯】: prapociotka (wnuczka siostry męża).
Prezentowany system, jest rozszerzeniem systemu Aitzing - Sosa - Galton - Kekulé. U podstaw tej XVI wiecznej metody leży matematyka, podobnie też w moim dodatku.
Metoda Sosa: probant niezależnie od płci przyjmuje wartość 1, następne numery: mężczyźni - parzyste, kobiety - nieparzyste, ojciec osoby P przyjmuje wartość P=P*2, a matka - wartość P=1+P*2, dziecko - wartość P=⌊P/2⌋, numer pokolenia to G=1+⌊log2(P)⌋, numer kolejny w pokoleniu: od lewej O.L=1+P-2^(G-1), od prawej O.R=2^(G)-P.
Moje rozszerzenie wprowadza jawny numer linii przodków: ojczystych i macierzystych, oparty o numer Sosa osoby, wartość po pauzie to kolejność przodków z danej linii. Linie posiadają unikatowy numer, linie męskie - parzysty, a linie żeńskie - nieparzysty. [dla przejrzystości przyjmijmy że ($(x)$) oznacza zamianę systemu dziesiętnego na binarny; (‡(x)‡) oznacza odcięcie końcowych zer w liczbie binarnej, następnie konwertowanej na dziesiętną; (†(x)†) oznacza zliczenie końcowych zer w liczbie binarnej; dodatkowo wartość-R to odwrócona wartość-P, w taki sposób że: R=(2^(1+⌊log2(P)⌋)-1)-(P-2^⌊log2(P)⌋)].
Numer linii męskiej: y.a = 1+(‡($( P )$)‡);
Kolejność w linii męskiej: y.b = jeżeli O.L wynosi 1 to G, jeżeli nie to 1+(†($( P-2^⌊log2(P)⌋ )$)†);
Numer linii żeńskiej: x.a = 2+(‡($( R )$)‡);
Kolejność w linii żeńskiej: x.b = jeżeli O.R wynosi 1 to G, jeżeli nie to 1+(†($( 2^(1+⌊log2(P)⌋)-P-1 )$)†);
TypeScript:📜Skrypt przeliczający nr-Sosa 📖👁️🗨️
W celu zapewnienia lepszej czytelności należy zaznaczyć kod i skopiować do swojego edytora tekstu.
enum TypeGender {
MaleOrFemale = "⚥",
Male = "♂",
Female = "♀",
MaleAndFemale = "⚤"
}
interface TypeDecBin {
Dec:number;
Bin:string;
};
interface TypeNorRev {
Nor:TypeDecBin;
Rev:TypeDecBin;
};
interface TypeSexNorRev extends TypeNorRev{
Sex:TypeGender;
};
interface TypePersonId {
Sosa:{
Ego:TypeSexNorRev;
Dad:TypeSexNorRev;
Mom:TypeSexNorRev;
Kid:TypeSexNorRev;
};
Gene:{
Tier:TypeDecBin;
Sosa:{
Min:TypeDecBin;
Max:TypeDecBin;
};
Sort:[TypeNorRev,TypeNorRev];
};
Line:{
Dad:{
Gene:TypeDecBin;
Tier:TypeDecBin;
Name:TypeDecBin;
Sort:TypeDecBin;
};
Mom:{
Gene:TypeDecBin;
Tier:TypeDecBin;
Name:TypeDecBin;
Sort:TypeDecBin;
};
};
}
function createIdInfoForPerson(sosa:number):TypePersonId{
const SosaEgoGender = sosa<2 ? TypeGender.MaleOrFemale : (sosa)%2==0 ? TypeGender.Male : TypeGender.Female;
const SosaEgoNormal = Base2AndBase10(sosa);
const GeneTier = Base2AndBase10(Math.floor(Math.log2(sosa))+1);
const GeneSosaMin = Base2AndBase10(Math.pow(2,Math.floor(Math.log2(sosa))));
const GeneSosaMax = Base2AndBase10(Math.pow(2,Math.floor(Math.log2(sosa))+1)-1);
const SortNormal1 = Base2AndBase10(sosa+1-GeneSosaMin.Dec);
const SortNormal0 = Base2AndBase10(SortNormal1.Dec-1);
const SortRevers1 = Base2AndBase10(GeneSosaMax.Dec+1-sosa);
const SortRevers0 = Base2AndBase10(SortRevers1.Dec-1);
const SosaEgoRevers = Base2AndBase10(GeneSosaMax.Dec-SortNormal0.Dec);
const LineDadSort = Base2AndBase10(SortNormal1.Dec==1?GeneTier.Dec:Base2EndZerosCount(SortNormal0.Bin)+1);
const LineMomSort = Base2AndBase10(SortRevers1.Dec==1?GeneTier.Dec:Base2EndZerosCount(SortRevers0.Bin)+1);
const LineDadTier = Base2AndBase10(Base2EndZerosClear(SosaEgoNormal.Bin));
const LineMomTier = Base2AndBase10(Base2EndZerosClear(SosaEgoRevers.Bin));
const LineDadName = Base2AndBase10(LineDadTier.Dec+1);
const LineMomName = Base2AndBase10(LineMomTier.Dec+2);
const LineDadGene = Base2AndBase10(LineDadTier.Bin.length);
const LineMomGene = Base2AndBase10(LineMomTier.Bin.length);
const SosaDadGender = TypeGender.Male;
const SosaDadNormal = Base2AndBase10(SosaEgoNormal.Dec*2);
const SosaDadRevers = Base2AndBase10(SosaEgoRevers.Dec*2+1);
const SosaMomGender = TypeGender.Female;
const SosaMomNormal = Base2AndBase10(SosaEgoNormal.Dec*2+1);
const SosaMomRevers = Base2AndBase10(SosaEgoRevers.Dec*2);
const SosaKidGender = Math.floor(sosa/2)<2 ? TypeGender.MaleOrFemale : Math.floor(sosa/2)%2==0 ? TypeGender.Male : TypeGender.Female;
const SosaKidNormal = Base2AndBase10(Math.floor(SosaEgoNormal.Dec/2));
const SosaKidRevers = Base2AndBase10(Math.floor(SosaEgoRevers.Dec/2));
function Base2AndBase10(a:number):TypeDecBin {
return { Dec: a, Bin: Number(a).toString(2) };
}
function Base2EndZerosCount(a:string):number{
let r = 0;
let t = true;
const e = Array.from(a);
let l = e.length;
while (l>0 && t) {
if (e[l-1]=="0") {
r++
} else {
t = false;
}
l--;
}
return r;
}
function Base2EndZerosClear(a:string):number{
const c = a.replace(/[0]+$/,"");
const r = parseInt(c,2);
return r;
}
return {
Sosa:{
Ego:{Sex: SosaEgoGender, Nor: SosaEgoNormal, Rev: SosaEgoRevers},
Dad:{Sex: SosaDadGender, Nor: SosaDadNormal, Rev: SosaDadRevers},
Mom:{Sex: SosaMomGender, Nor: SosaMomNormal, Rev: SosaMomRevers},
Kid:{Sex: SosaKidGender, Nor: SosaKidNormal, Rev: SosaKidRevers}
},
Gene:{
Tier:GeneTier,
Sosa:{
Min:GeneSosaMin,
Max:GeneSosaMax
},
Sort:[{Nor:SortNormal0,Rev:SortRevers0},{Nor:SortNormal1,Rev:SortRevers1}]
},
Line:{
Dad:{
Gene:LineDadGene,
Tier:LineDadTier,
Name:LineDadName,
Sort:LineDadSort
},
Mom:{
Gene:LineMomGene,
Tier:LineMomTier,
Name:LineMomName,
Sort:LineMomSort
}
}
};
}
class SosaPlusDb{
IdDb:Map<number,TypePersonId> = new Map;
constructor(){}
setFromGivenSosa(sosa:number){
if(Number.isInteger(sosa) && sosa>0){
this.IdDb.set(sosa,createIdInfoForPerson(sosa));
}
}
setFromArraySosa(sosaArr:number[]){
for (const sosa of sosaArr) {
if(Number.isInteger(sosa) && sosa>0){
this.IdDb.set(sosa,createIdInfoForPerson(sosa));
}
}
}
setFromRangeSosa(sosaFirst:number,sosaLast:number){
for (let sosa = sosaFirst; sosa < sosaLast+1; sosa++) {
if(Number.isInteger(sosa) && sosa>0){
this.IdDb.set(sosa,createIdInfoForPerson(sosa));
}
}
}
get getData():Map<number,TypePersonId>{
return this.IdDb;
}
getOutFullAsJson():void{
const iterator = this.IdDb[Symbol.iterator]();
let Arr: TypePersonId[] = [];
for (const x of iterator) {
Arr.push(x[1]);
}
let Str = JSON.stringify(Arr);
console.log(Str);
}
getOutFullAsCsv():void{
const Col = ():string=>{
return `"Gene.Tier.Dec", "Gene.Tier.Bin", `
+`"Gene.Sosa.Min.Dec", "Gene.Sosa.Min.Bin", "Gene.Sosa.Max.Dec", "Gene.Sosa.Max.Bin", `
+`"Gene.Sort.0.Nor.Dec", "Gene.Sort.0.Nor.Bin", "Gene.Sort.0.Rev.Dec", "Gene.Sort.0.Rev.Bin", `
+`"Gene.Sort.1.Nor.Dec", "Gene.Sort.1.Nor.Bin", "Gene.Sort.1.Rev.Dec", "Gene.Sort.1.Rev.Bin", `
+`"Sosa.Ego.Sex", "Sosa.Ego.Nor.Dec", "Sosa.Ego.Nor.Bin", "Sosa.Ego.Rev.Dec", "Sosa.Ego.Rev.Bin", `
+`"Sosa.Dad.Sex", "Sosa.Dad.Nor.Dec", "Sosa.Dad.Nor.Bin", "Sosa.Dad.Rev.Dec", "Sosa.Dad.Rev.Bin", `
+`"Sosa.Mom.Sex", "Sosa.Mom.Nor.Dec", "Sosa.Mom.Nor.Bin", "Sosa.Mom.Rev.Dec", "Sosa.Mom.Rev.Bin", `
+`"Sosa.Kid.Sex", "Sosa.Kid.Nor.Dec", "Sosa.Kid.Nor.Bin", "Sosa.Kid.Rev.Dec", "Sosa.Kid.Rev.Bin", `
+`"Line.Dad.Gene.Dec", "Line.Dad.Gene.Bin", "Line.Dad.Tier.Dec", "Line.Dad.Tier.Bin", `
+`"Line.Dad.Name.Dec", "Line.Dad.Name.Bin", "Line.Dad.Sort.Dec", "Line.Dad.Sort.Bin", `
+`"Line.Mom.Gene.Dec", "Line.Mom.Gene.Bin", "Line.Mom.Tier.Dec", "Line.Mom.Tier.Bin", `
+`"Line.Mom.Name.Dec", "Line.Mom.Name.Bin", "Line.Mom.Sort.Dec", "Line.Mom.Sort.Bin" `
+"\n";
};
const Row = (x:TypePersonId):string =>{
return `"${x.Gene.Tier.Dec}", "${x.Gene.Tier.Bin}", `
+`"${x.Gene.Sosa.Min.Dec}", "${x.Gene.Sosa.Min.Bin}", "${x.Gene.Sosa.Max.Dec}", "${x.Gene.Sosa.Max.Bin}", `
+`"${x.Gene.Sort[0].Nor.Dec}", "${x.Gene.Sort[0].Nor.Bin}", "${x.Gene.Sort[0].Rev.Dec}", "${x.Gene.Sort[0].Rev.Bin}", `
+`"${x.Gene.Sort[1].Nor.Dec}", "${x.Gene.Sort[1].Nor.Bin}", "${x.Gene.Sort[1].Rev.Dec}", "${x.Gene.Sort[1].Rev.Bin}", `
+`"${x.Sosa.Ego.Sex}", "${x.Sosa.Ego.Nor.Dec}", "${x.Sosa.Ego.Nor.Bin}", "${x.Sosa.Ego.Rev.Dec}", "${x.Sosa.Ego.Rev.Bin}", `
+`"${x.Sosa.Dad.Sex}", "${x.Sosa.Dad.Nor.Dec}", "${x.Sosa.Dad.Nor.Bin}", "${x.Sosa.Dad.Rev.Dec}", "${x.Sosa.Dad.Rev.Bin}", `
+`"${x.Sosa.Mom.Sex}", "${x.Sosa.Mom.Nor.Dec}", "${x.Sosa.Mom.Nor.Bin}", "${x.Sosa.Mom.Rev.Dec}", "${x.Sosa.Mom.Rev.Bin}", `
+`"${x.Sosa.Kid.Sex}", "${x.Sosa.Kid.Nor.Dec}", "${x.Sosa.Kid.Nor.Bin}", "${x.Sosa.Kid.Rev.Dec}", "${x.Sosa.Kid.Rev.Bin}", `
+`"${x.Line.Dad.Gene.Dec}", "${x.Line.Dad.Gene.Bin}", "${x.Line.Dad.Tier.Dec}", "${x.Line.Dad.Tier.Bin}", `
+`"${x.Line.Dad.Name.Dec}", "${x.Line.Dad.Name.Bin}", "${x.Line.Dad.Sort.Dec}", "${x.Line.Dad.Sort.Bin}", `
+`"${x.Line.Mom.Gene.Dec}", "${x.Line.Mom.Gene.Bin}", "${x.Line.Mom.Tier.Dec}", "${x.Line.Mom.Tier.Bin}", `
+`"${x.Line.Mom.Name.Dec}", "${x.Line.Mom.Name.Bin}", "${x.Line.Mom.Sort.Dec}", "${x.Line.Mom.Sort.Bin}" `
+"\n";
}
let CSV:string = Col();
const iterator = this.IdDb[Symbol.iterator]();
for (const x of iterator) {
CSV += Row(x[1]);
}
console.log(CSV);
}
getOutTiny():void{
const iterator = this.IdDb[Symbol.iterator]();
console.log(" ");
console.log(" ╔"+"═".repeat(31)+"╗");
console.log(" ║ INFO WITH FORMAT TINY ║");
console.log("╔═════════╦════╩═══╦═══════════╦═══════════╦═══╩══════╦══════════╦══════════╗");
console.log("║ SEX+GEN ║ SOSA ║ LINE-Y ║ LINE-X ║ SOSA-DAD ║ SOSA-MOM ║ SOSA-KID ║");
for (const x of iterator) {
console.log( `║ ${x[1].Sosa.Ego.Sex} ${x[1].Gene.Tier.Dec} `.padEnd(10," ")
+`║ ${x[1].Sosa.Ego.Nor.Dec} `.padEnd(9," ")
+`║ ${x[1].Line.Dad.Name.Dec} — ${x[1].Line.Dad.Sort.Dec} `.padEnd(12," ")
+`║ ${x[1].Line.Mom.Name.Dec} — ${x[1].Line.Mom.Sort.Dec} `.padEnd(12," ")
+`║ ${x[1].Sosa.Dad.Nor.Dec} `.padEnd(11," ")
+`║ ${x[1].Sosa.Mom.Nor.Dec} `.padEnd(11," ")
+`║ ${x[1].Sosa.Kid.Nor.Dec} `.padEnd(11," ")+"║");
}
console.log("╚"+"═".repeat(9)+"╩"+"═".repeat(8)+"╩"+"═".repeat(11)+"╩"+"═".repeat(11)+"╩" +"═".repeat(10)+"╩"+"═".repeat(10)+"╩"+"═".repeat(10)+"╝");
}
}
// ======example usage =====
const AAA = new SosaPlusDb();
AAA.setFromGivenSosa(44);
AAA.setFromArraySosa([153,1324,9848]);
AAA.setFromArraySosa([153,1324,15432]);
AAA.setFromRangeSosa(1,32);
AAA.getOutTiny();
AAA.getOutFullAsCsv();
AAA.getOutFullAsJson();
// ======example usage =====
Rust:📜Skrypt przeliczający nr-Sosa 📖👁️🗨️
W celu zapewnienia lepszej czytelności należy zaznaczyć kod i skopiować do swojego edytora tekstu.
use std::collections::HashMap;
use std::fmt;
#[derive(Debug)]
struct TypeMain {
sosa: TypeSosa,
gene: TypeGene,
line: TypeLine,
}
#[derive(Debug)]
struct TypeSosa {
ego: TypeSexNorRev,
dad: TypeSexNorRev,
mom: TypeSexNorRev,
kid: TypeSexNorRev,
}
#[derive(Debug)]
struct TypeGene {
tier: TypeDecBin,
sosa: TypeMinMax,
sort: [TypeNorRev; 2],
}
#[derive(Debug)]
struct TypeLine {
dad: TypeLineInner,
mom: TypeLineInner,
}
#[derive(Debug)]
struct TypeLineInner {
gene: TypeDecBin,
tier: TypeDecBin,
name: TypeDecBin,
sort: TypeDecBin,
}
#[derive(Debug)]
struct TypeSexNorRev {
sex: String,
nor: TypeDecBin,
rev: TypeDecBin,
}
#[derive(Debug)]
struct TypeNorRev {
nor: TypeDecBin,
rev: TypeDecBin,
}
#[derive(Debug)]
struct TypeDecBin {
dec: u32,
bin: String,
}
#[derive(Debug)]
struct TypeMinMax {
min: TypeDecBin,
max: TypeDecBin,
}
#[derive(Debug)]
enum TypeGender {
MaleOrFemale,
Male,
Female,
MaleAndFemale,
}
fn create_id_info_for_person(sosa: u32) -> TypeMain {
let sosa_ego_gender = if sosa <