Gramps 5.1 Wiki Manual - Filters/sk
Predchádzajúca | Index | Nasledujúca |
Languages: |
English • Deutsch • suomi • français • עברית • македонски • Nederlands • русский • shqip • slovenčina |
Zoznamy všetkých pravidiel filtrovania aktuálne definovaných v programe Gramps. Každé z týchto pravidiel je k dispozícii na použitie pri vytváraní vlastných filtrov.
Pravidlá sú uvedené podľa ich kategórie.
Contents
Filter vs. vyhľadávanie
V programe Gramps môžete údaje vyhľadávať dvoma spôsobmi: Vyhľadávanie a Filter. Vyhľadávanie používa Search Bar nad zobrazením zoznamu (napríklad Ľudia, Rodiny atď.). Filter sa môže používať v kombinácii s funkciou Vyhľadávanie alebo samostatne v bočnom/spodnom paneli Gramplets. Search Bar sa zobrazí len vtedy, keď je celý bočný panel zatvorený. Lišty Grampletu môžete zobraziť alebo skryť zmenou výberu v ponukách Zobraziť ➡ ☑Bočný panel alebo Zobraziť ➡ ☑Bottombar.
Chovanie filtrovania podľa mena sa zmenilo pre Gramps 5.1 V predchádzajúcich verziách Gramps sa časť Filtrovanie podľa mena v Gramplete pokúšala o zhodu na ľubovoľnom jednom poli mena (meno, priezvisko, predlaktie atď.) všetkých mien (primárnych a alternatívnych), ale iba na poli na meno — nebolo možné porovnať pole meno a pole priezvisko v tom istom mene. Mohli ste priradiť priezvisko, ale súčasné priradenie priezviska a given v tom istom dotaze nebolo možné. Ak ste napríklad filtrovali na "John", získali by ste zhody osôb s menom "John", ale aj osôb s priezviskom "Johnson". Zložitejšie vyhľadávanie si vyžadovalo použitie možností porovnávania vzorov regulárnych výrazov alebo vlastných filtrov. |
Vyhľadávanie a filter fungujú úplne odlišne a je užitočné tieto rozdiely pochopiť:
- Vyhľadávanie' - Search Bar prehľadáva databázu tak, ako sa zobrazuje v riadkoch a stĺpcoch na obrazovke. Funkciu Vyhľadávanie budete pravdepodobne chcieť používať najčastejšie, pretože je rýchla a najjednoduchšia. Rýchlosť a jednoduchosť si však vyžaduje určité obmedzenia (pozri nižšie).
- Napríklad, ak máte v Nastaveniach nastavené Zobrazenie mena na zobrazenie "Priezvisko, Dané", potom môžete priradiť mená ako "Smith, J" a všetky správne riadky budú zodpovedať. Ak zmeníte spôsob zobrazovania mien (v Nastaveniach), potom môžete porovnať tento formát (napríklad "John Smith").
- Filter' - Filtre používajú prepracovanejší systém. Neobmedzuje sa na to, čo vidíte na obrazovke, ale skúma skutočné údaje vo všetkých menných poliach, a nie len to, čo sa zobrazuje v zobrazení. Zadaním viacerých slov sa vykoná porovnávanie fráz pre väčšinu textových polí. Riadok filtru Názov je však oveľa výkonnejší. S každým slovom vo vyhľadávaní v poli Názov sa pracuje samostatne, ako keby išlo o čiastkové vyhľadávanie v záznamoch nájdených pomocou predchádzajúceho vyhľadávaného slova. A súčasne sa vyhľadáva all v poliach Názov.
- napr. vyhľadávanie mena "geo r." v databáze príkladový strom nájde 5 osôb: s rôznym "Jr." a "Sr." ako príponou a "George's" ako krstným a stredným menom. Alebo vyhľadávanie "garn ski ph" nájde Phoebe Emily, ktorá má rodné priezvisko Zieliński a náhradné manželské priezvisko Garner.
Filtre je možné vytvárať a ovládať z ponuky {Upraviť ➡ Filter Editor alebo zo špeciálneho bočného panela/spodného panela Gramplet. Gramplety filtrov umožňujú niektoré rýchle filtre, ktoré sú podobné Vyhľadávací panel, ale všetky Filtre sa riadia tu uvedeným rozlišovaním.
Niektoré ďalšie body:
- Filter vyhľadáva aj alternatívne a viacnásobné mená; Search Bar hľadá len v primárnom mene... v tom, ktoré sa zobrazuje v zobrazení Ľudia. Preto sa pri filtrovaní na "Smith" môžu zobraziť ľudia, ktorí sa na prvý pohľad nezdajú byť zhodní. Ale ak sa vnoríte do podrobností o tejto osobe pomocou Upravovač_mená, môžete vidieť, že majú alternatívne meno obsahujúce "smith".
- Filter umožňuje "regulárne výrazy". Takže môžete nájsť všetky mená, ktoré začínajú na "B" a končia na "ship": "B.*loď". Toto nemôžete urobiť pomocou Search Bar.
- Vyhľadávanie bude zodpovedať len tomu, čo je viditeľné. Ak je názov alebo text príliš veľký na to, aby bol viditeľný vo výpise pod Vyhľadávací panel, potom ho nenájdete. Na to treba pamätať pri vyhľadávaní v Poznámkach. Najlepšie je používať Filter pre poznámky a iné dlhé textové polia.
- Všetky Filtre predvolene používajú porovnávanie bez rozlišovania veľkých a malých písmen; "Ship" bude zodpovedať "ship", "SHIP" alebo "ShIp".
Pozri tiež
- Filter - definícia
- [[Gramps_Template:Príručka k verzii_Wiki_Manuál_-_Filtre|Uvod k filtrom]] v príručke Gramps
- [[Gramps_5.1_Wiki_Manuál_-_Filtre#Ktoré_filtre_v_ktorej_kategórii.3F|Ktoré filtre v ktorej kategórii?]
- Filter
- Príklady filtrov - Viacstupňové filtre
- Pravidlá - definícia
- Soznam addonov - pravidlá
- Rozšírenie súboru pravidiel filtrov o doplnky
- Kategória: Filtre
- Migrácia na vlastné filtre - Zálohovanie programu Gramps nezálohuje vaše filtre.
Regulárne výrazy
Regulárne výrazy(známe tiež ako regex, regexp alebo niekedy racionálny výraz) sú rýchlym a výkonným spôsobom, ako popísať text, ktorý zodpovedá vzoru. Program Gramps používa RegEx ako možnosť porovnávania vo filtroch.
Porovnávanie vzorov RegEx je pokročilá funkcia, ktorá je v predvolenom nastavení vypnutá. V prípade vlastných filtrov má každé jednotlivé pravidlo v dialógovom okne Upraviť pravidlo zaškrtávacie políčko Template:Zaškrtávacie políčko{značka človeka|Použiť regulárne výrazy}}. Gramplety filtrov majú tiež začiarkavacie políčka Template:Začiarkavacie políčko{značka človeka|Použiť regulárne výrazy}}, ktoré umožňujú, aby sa regexpové výrazy používali priamo na porovnávanie reťazcov v ich textových poliach.
Ak by ste napríklad hľadali priezvisko, ktoré sa začína na "B" a končí na "ship", potom by ste mohli na opis tohto vzoru použiť regulárne výrazy. Bolo by to ^B.*ship
:
- <kód>^B</kód> označuje text, ktorý sa začína písmenom B
- <kód>.</kód> označuje akýkoľvek jednotlivý znak (písmeno, číslo alebo čokoľvek iné)
- <kód>*</kód> označuje nula alebo viac predchádzajúcich znakov (v tomto prípade akýkoľvek jeden znak)
- Znak
ship
zodpovedá presne písmenám s, h, i, p v tomto poradí.
Regulárne výrazy sú pomerne silné a existuje veľa možností. My používame systém regulárnych výrazov Python, ktorý tu budeme dokumentovať. Okrem toho môžete použiť ľubovoľný zdroj regulárnych výrazov Python.
Biele miesta - Termín "biele miesta" sa ďalej používa na označenie jedného alebo viacerých znakov, ktoré nevidíte. Medzi biele znaky patria napríklad tabulátory, medzery a nové riadky.
Existujú niektoré znaky, ktoré majú pri regulárnych výrazoch špeciálny význam. Sú to:
- '<kód>. ^ $ * + ? { } [ ] \ | ( )
Môžu sa používať podľa opisu:
- '
.
' zodpovedá akémukoľvek znaku (písmenu, číslu alebo inému) - "
^
" zodpovedá začiatku textu - "
$
" zodpovedá koncu textu - "
*
" zodpovedá nule alebo viacerým predchádzajúcim položkám - "
+
" zodpovedá jednej alebo viacerým predchádzajúcim položkám - "
?
" zodpovedá nule alebo jednej z predchádzajúcich položiek (je nepovinný) - '
{
' - definuje počet zhody - '
}
' - ukončí počet zhody - '
[
' - začiatok množiny - '
]
' - end of set - '
\
' - next character is special sequence - '
|
' - or - '
(
' - beginning of a group - '
)
' - ending of a group
Some of the special sequences beginning with '\
' represent predefined sets of characters that are often useful, such as the set of digits, the set of letters, or the set of anything that isn't whitespace. The following predefined special sequences are a subset of those available.
\d
Matches any decimal digit; this is equivalent to the class[0-9]
.\D
Matches any non-digit character; this is equivalent to the class[^0-9]
.\s
Matches any whitespace character; this is equivalent to the class[ \t\n\r\f\v]
.\S
Matches any non-whitespace character; this is equivalent to the class[^ \t\n\r\f\v]
.\w
Matches any alphanumeric character; this is equivalent to the class[a-zA-Z0-9_]
.\W
Matches any non-alphanumeric character; this is equivalent to the class[^a-zA-Z0-9_]
.
The most complicated repeated qualifier is {m,n}
, where m
and n
are decimal integers. This qualifier means there must be at least m
repetitions, and at most n
.
Find all defined values or blanks
To find all values, (.|\s)*
will match: any character or any whitespace character; and zero or more repetitions of those.
To find empty (blank or null) strings, ^.{0}$
looks from the start of the match ^
for any character (except newline) .
occurring precisely zero times {0}
before the end of the match $
Groups and Sets
Groups are marked by the '('
, ')
' metacharacters. '(
' and ')
' have much the same meaning as they do in mathematical expressions; they group together the expressions contained inside them, and you can repeat the contents of a group with a repeating qualifier, such as *, +, ?, or {m,n}
. For example, (ab)*
will match zero or more repetitions of ab
.
Sets are marked by the '[
' and ']
' metacharacters.
Skupiny si môžete predstaviť ako zoznam alternatív oddelených metaznakom '|
', kde každá alternatíva pozostáva z jedného, niekoľkých alebo nula znakov, a množiny ako zoznam alternatív, kde každá alternatíva predstavuje jeden znak.
Examples
^B.*ship$
- matches all text that starts with a 'B
', followed by anything, ending with 'ship
'.- matches:
Blankenship
,Blueship
,Beeship
- does not match:
Blankenships
- matches:
^B.*ship
- matches all text that starts with a 'B
', followed by anything, followed by 'ship
' (could be followed by more).- matches:
Blankenship
,Blankenships
,Blueship
,Blueshipman
,Beeship
,Beeshipness
- does not match:
Blankenschips
- matches:
Common variations of a surname
- Example 1
- Using the expression
Eri(ch|ck|k|c)(ss|s)on
the following are matched:
Erikson Eriksson Ericson Ericsson Erickson Ericksson Erichson Erichsson
Explanation: Because of the following
Eri
= Eri(ch|ck|k|c)
= group matchingch
,ck
,k
orc
. It tries to make the longest match first(ss|s)
= group matchingss
ors
. It tries to make the longest match firston
= on
- Example 2
- Using the expression
Ba(in|yn|m|n)bri(dge|cke|g(g|e|))
the following are matched:
Bainbricke Bainbridge Bainbrig Bainbrigg Bambridge Banbrig Banbrige Baynbrige
Vysvetlenie: Z dôvodu
- <kód>Ba</kód> = Ba
(in|yn|m|n)
= skupina zodpovedajúca in, yn, m alebo n. Najskôr sa pokúsi o najdlhšiu zhodu.bri
= bri(dge|cke|g(g|e|))
= skupina zodpovedajúca dge, cke alebo (g s g, g s e alebo g s ničím)
- Príklad 3
- Pomocou výrazu
n(es|oua|oai|o[iya]|a[iy])r(r|)(on|((e|)au(x|t|d|lt|)))
sa porovnávajú nasledujúce výrazy:
nairaud nairault naireaud nayrault nesrau nesrault nesreau nesreaud noirau noiraud noirauld noirault noiraut noiraux noireau noireaud noireault noireaut noirraux noirreau noirreaud nouarault noyraud noyrault
Vysvetlenie: Z nasledujúcich dôvodov
- <kód>n</kód> = n
(es|oua|oai|set1|set2)
= skupina zodpovedajúca es, oua, oai, set1 alebo set2set1
jeo[iya]
= množina zodpovedajúca o AND i, y alebo a. Inými slovami oi, oy alebo oaset2
jea[iy]
= množina zodpovedajúca a AND i alebo y. Inými slovami ai alebo ayr
= r(r|)
= skupina zodpovedajúca r alebo nič(on|(subgroup1)
= skupina zodpovedajúca on alebo subgroup1.- subgroup1 je skupinová zhoda ('subgroup2 au subgroup3)
- podskupina2 je (e|) = skupina zodpovedajúca e alebo nič
au
= au- subgroup3 je (x|t|d|lt) = skupina, ktorá sa zhoduje s x, t, d alebo lt
Testovanie regulárnych výrazov
Tester regulárnych výrazov možno nájsť online prostredníctvom služby Google. https://www.regexr.com/ je jednoduchý a pohodlný
Pozorovaný a opravený 'dialekt' regulárneho výrazu V programe Gramps 5.1 filter bočného panela nevhodne vyhodnocoval parametre obsahujúce medzery... a pokúšal sa preinterpretovať jeden regulárny výraz ako postupnosť samostatných výrazov. V programe Gramps 5.1.1 je chyba 0011321 riešená doslovnejšie. |