| category = "zdanie" | [type = nt:zdanie] | |
| category != "zdanie" | [type != nt:zdanie] | |
| orth = /.*ąc/ | [orth = ".*ąc"] | |
| category = "zdanie" | "wypowiedzenie" | /p.*/ | [type = "nt:(zda|wypowiedze)nie|p.*"] | Operatory (quasi)-logiczne są dozwolone tylko wewnątrz znakowych wyrażeń regularnych |
| base = /.*ć/ & /b.*/ | [base = ".*ć" && base = "b.*"] | & nie jest operatorem wyrażeń regularnych, więc musi być zastąpione przez operator logiczny && |
| category = ((!"zdanie") & (!"wypowiedzenie")) | [type != nt:zdanie && type != nt:wypowiedzenie] | |
| category = (!("zdanie" | "wypowiedzenie")) | [type != "(zda|wypowiedze)nie"] | Uwaga: type to akurat ma każdy węzeł, więc dam jeszcze inny przykład: |
| [pos != adj] | Zwraca węzły, które mają pos różne od adj lub w ogóle go nie mają (plan na przyszłość: ograniczyć się do dozwolonych klas węzłów, np. seg i synw, ale nie nt:zdanie) | |
| [pos = ".*" && pos != adj] | A tak można wymusić, żeby pos jednak istniało | |
| category = "zdanie" & sel & !(aspekt = "nd") | [type = nt:zdanie && sel && !(aspekt = nd)] | |
| base = #podstawowa: /.*ć/ & orth = #podstawowa | [$P:=base = ".*ć" && orth = $P] | Prawie to, o co chodzi, ale się nie otypuje, bo base jest amblistą (patrz opis języka). Ale da się obejść: |
| [msd=[$P:=base = ".*ć"] && orth = $P] | Jawne wykorzystanie amblist, bez lukrów składniowych | |
| [base = $P:=".*ć"] | Aktualnie zabronione (".*ć" jest wzorcem, a nie wartością) |
| [type=nt:zdanie && children~[rule=ze3 && edges[1].target==[type=nt:fl]]] | zdanie z (być może niewybraną) wiązanką dzieci, w której pierwsze jest fl; operator ~ ma tu takie samo znaczenie, jak dla wieloznacznych interpretacji w starym Poliqarpie |
|
| [type=nt:zdanie && children~[rule=ze3 && edges.target={| [type=nt:fl] [type=nt:ff] [type=nt:fw] |}]] | zdanie z (być może niewybraną) wiązanką dzieci, zawierającą dokładnie fl ff fw (i to w tej kolejności) | |
| [type=nt:zdanie && children~[rule=ze3 && edges.target={| [type=nt:fl] []{,2} [type=nt:fw] |}]] | wewnątrz nawiasów {| ... |} można używać wyrażeń regularnych | |
| [zdanie, children~[rule=ze3, edges.target={| [fl] []{,2} [fw] |}]] | planowany sposób uproszczenia tego zapytania (wymaga rozszerzeń w parserze) |
| A > B | A > B | |
| A > B > C | A > B && B > C | Łańcuszki zamierzamy kiedyś dodać do parsera |
| A >* B | A >+ B | Aktualnie niestety można tym zabić wykonawcę, lepiej ograniczyć przez {,N} |
| A >* B | A ten wariant oznacza, że A może być równe B | |
| A >R B | A >[type=R] B | Pierwszy wariant składni też mamy w planach |
| A >d B | A >{d} B | gdzie d może być postaci N lub M,N - a w Poliqarpie również ,N lub M, |
| A . B | A B | precedencja wg porządku segmentowego; domyślnie tylko dla segmentów! to jest wyrażenie regularne konwertujące się do booleana, a więc tu łańcuszkować można już teraz |
| (... A B ...)/rha | wersja ogólna osiągalna poprzez flagę - domyślnie wyłączamy, żeby nie zabić wykonawcy pochopnym zapytaniem | |
| [].sons = {| []* A B []* |} | tak w NKJP można opisać precedencję wg porządku krawędziowego, ale w Składnicy to chyba nie bardzo ma sens? | |
| [].children~[edges.target={| []* $A $B []* |}] | rozsądny Składnicowy odpowiednik? (uwaga, aktualnie jakiś bug powoduje, że to się długo parsuje) |
|
| A .d B | A []{d} B | znaczenie d analogiczne jak dla dominacji; może też być * lub + |
| A >@l B | A >*[1] B && B.sons.empty | skrajny lewy liść wg porządku krawędziowego - dla uczciwych drzew bez przeplotów semantyka zachowana; choć zapewne trzeba będzie .sons.empty zastąpić nowym atrybutem .terminal, bo obecne kryterium w zasadzie wykrywa podsegmenty |
| A >@r B | A >*[-1] B && B.sons.empty | analogicznie z prawej strony |
| A >@c B | A >*[head] B && B.sons.empty | analogicznie dla ścieżki głównej |
| A $ B | $P > A && $P > B | działa, ale naiwnie - musimy zoptymalizować |
| A $.* B | $P > A && $P > B && A []* B | wersja ogólniejsza |
| $P > (A []* B)/rha | wersja prostsza - równoważna dla uczciwych drzew | |
| root(A) | [type=s] > A | |
| same_tree(A, B) | ? | muszę najpierw zrozumieć, o co tak naprawdę tu chodzi (o bycie w tym samym zdaniu, czy o coś jeszcze?) |