TGrep(by Richard Pito )は、ツリーの中のノードやノード間の関係をパターンとして表現するのに適したツールです。
TGrep を使って文字列や正規表現によるノードの検索を行うことができます(section 1 )。
ノードの表現と、ノード間の関係の表現を組み合わせて、複雑な検索が可能になります(section 2 )。
ノード間の関係として、どのようなものが指定できるのかについては、section 3 を参照してください。
TGrep-lite の文法に従った検索式を下のボックスに入力すると、
インターフェースはそれを解釈して検索を行います。
検索式が文法的に正しくても該当する例がない場合には、[Submit] ボタンを押しても何も表示されません。
検索式が文法的に正しくない場合には、“Not a valid TGrep-lite expression.” というメッセージが現れます。
検索結果ページでは [reveal] をチェックしてもう一度 [Submit] ボタンを押すと、XPath による同じ意味をもつ検索式が表示されます。
XPath の検索式を見ながら、自分の作った TGrep-lite の検索式が本当に意図したものだったかを確認することができます。
このインターフェースで使われている TGrep-lite はほかの TGrep に比べると簡素ですが、オンラインでコーパスを検索するのに適した充分な力を備えています。
ただし、その機能にはいくつかの制限があります。
ノード間の関係の制限については section 3 を参照してください。
TGrep-lite は TGrep2 や
Tregex と比較すると、選言を表すことができないといった弱点がありますし、
終端ノードや終端よりひとつ前のノードの指定の仕方も違います(section 1 を参照)。
TGrep-lite は、TGrep 言語で書かれたクエリを XPath クエリに書き換えてから、XML ツリーを検索します。
XPath クエリへの書き換えの際には、3種類のノードを区別する必要があります。
終端(語)ノード
終端よりひとつ前の(語に関する情報(例えばゼロ要素であるか等)を供給するノード)ノード
その他(品詞レベル・句レベル)のノード
ワイルドカードは(__ )どのノードにも一致するため、例外的にノードの種類を考慮することなく使うことができます。
abc といった単純な文字列は、abc という文字列のみから成る終端(語)ノードにマッチします。
どのノードに対しても、区切り記号に挟まれた正規表現を使うことができますが、区切り記号がノード毎に異なることに注意してください。
文字列や区切り記号で囲まれた正規表現の前に ! を置くと、検索結果が逆になります。つまり、一致するものは一致しなくなり、一致しないものは一致するようになります。例えば、!abc は abc でないすべての語に、![^NP] はすべての品詞レベル・区レベルのノードで、NP で始まらないものに一致します。
正規表現をスラッシュ(/ )で囲むと(例:/ab/ )、終端(語)ノードを検索します。
正規表現をブレース({ と } )で囲むと(例:{AB} )、終端(語)ノードよりも1つ上のノードを検索します。
正規表現を角括弧([ と ] )で囲むと(例:[AB] )、品詞レベル・句レベルのノードを検索します。
単純な文字列であれ、正規表現であれ、その前に ! を置くと、相補的な検索結果が得られます。つまり、! に続く表現に一致するものではなく、一致しないものが検索されます。例えば、!abc はすべての abc に一致しない語を検索します。また、![^NP] は NP で始まらないすべてのノードを検索します。
正規表現は XPath に順じます。
正規表現として文字列を指定すると、その文字列が含まれるタグを検索します。
例えば、[PP|CP] は、PP と CP-THT 等を検索します。
キャレット(^ )は語頭、ドル記号($ )は語末を表します。
/^NP$/ のように、正規表現の中で ^ と$ を一緒に使うと、NP だけを検索するということになります。
オンラインのインターフェースは、品詞ノードや句レベルのノードの指定の際には大文字と小文字を区別しません
(終端(語)ノードの指定では大文字・小文字を区別します)。
TGrep-lite のパターンは、ノードの後に関係の表現を置くことで作られます。
語形と見出し形の情報は、XML形式では品詞情報と同じノードに格納されるので、もしある語形(または見出し形)とある品詞の組み合わせを指定したいときは、
等号(== )を使う必要があります。
例えば、次の例は「/tuti/」と PHON という品詞タグの組み合わせを検索します:
次の例は、PP を直接の子として持ち、かつ 、IP を直接・間接の子として持つ IP にマッチします。
([IP] < [PP]) << [IP]
ふたつめの << [IP] という関係は、最初の IP とのもので、PP とのものではないことに注意してください。
[IP] < ([PP] << [IP])
は、IP が PP を直接の子として持ち、その PP が IP を直接・間接の子として持つ場合にマッチします。
パターン中の最初のノード、あるいは左向き括弧に続く最初のノードは、「マスターノード」となり、右に置かれた関係の表現と関係づけられていきます。
つまり、TGrep-lite のパターンは、マスターノードに、他のノードとの関係が続いてゆくことで作られます。
また、マスターノードでないものも、括弧で囲むことによってマスターになることができます。
例えば、上の最初の例では、最初の [IP] のみがマスターノードですが、ふたつめの例では、[IP] と [PP] がそれぞれマスターノードです。
次のような方法で、マスターノードと他のノードの様々な関係を指定することができます。
順行・逆行の完全な対があるため、マスターノードの選択はかなり柔軟に行われます:
A << B A は B を支配する/A は B の先祖である
A >> B A は B によって支配される/A は B の子孫である
A < B A は B の直接の先祖(親)である
A > B A は B の直接の子孫(子)である
A .. B A は B に先行する
A ,, B A は B に後行する
A . B A は B の直前に置かれる
A , B A は B の直後に置かれる
A $ B A は B の姉妹である
A $.. B A は B の姉妹であり、かつ、B に先行する
A $,, B A は B の姉妹であり、かつ、B に後行する
A $. B A は B の姉妹であり、かつ、B の直前に置かれる
A $, B A は B の姉妹であり、かつ、B の直後に置かれる
A == B A と B は同じノードである
A <<, B B は A の左端の子孫である
A <<- B B は A の右端の子孫である
A >>, B A は B の左端の子孫である
A >>- B B は A の左端の子孫である
A <1 B B は A の最初の子である
A >1 B A は B の最初の子である
A <-1 B B は A の最後の子である
A >-1 B A は B の最後の子である
A <, B B は A の最初の子である (synonymous with A <1 B)
A >, B A は B の最初の子である (synonymous with A >1 B)
A <- B B は A の最後の子である (also synonymous with A <-1 B)
A >- B A は B の最後の子である (also synonymous with A >-1 B)
A <: B B は A の唯一の子である
A >: B A は B の唯一の子である
A <<: B 切れ目のない unary branch (length > 0) を通して、A は B を支配している
A >>: B 切れ目のない unary branch (length > 0) を通して、A は B を支配されている
以下に、上記の関係のいくつかを図示します。
C << __ (C は __ の先祖である)
__ >> C (__ は C の子孫である)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
E >> __ (E は __ の子孫である)
__ << E (__ は E の先祖である)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
C > __ (C は __ の親である)
__ < C (__ は C の子である)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
I .. __ (I は __ に先行する)
__ ,, I (__ は I に後行する)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
I ,, __ (I は __ に後行する)
__ .. I (__ は I に先行する)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
I . __ (I は __ の直前に置かれる)
__ , I (__ は I の直後に置かれる)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
I , __ (I は __ の直後に置かれる)
__ . I (__ は I の直前に置かれる)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
F $ __ (F は __ の姉妹である)
__ $ F (__ は F の姉妹である)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
E $.. __ (E は __ の姉妹であり、かつ、__ に先行する)
__ $,, E (__ は E の姉妹であり、あつ、E に後行する)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
E $. __ (E は __ の姉妹であり、かつ __ の直前に置かれる)
__ $, E (__ は E の姉妹であり、かつ、E の直後に置かれる)
gr
n1
A
n2
B
n1--n2
n13
M
n1--n13
n19
S
n1--n19
n3
C
n2--n3
n9
I
n2--n9
n4
D
n3--n4
n8
H
n3--n8
n5
E
n4--n5
n6
F
n4--n6
n7
G
n4--n7
t5
w0
n5--t5
t6
w1
n6--t6
t7
w2
n7--t7
t8
w3
n8--t8
n10
J
n9--n10
n11
K
n9--n11
t10
w4
n10--t10
n12
L
n11--n12
t12
w5
n12--t12
n14
N
n13--n14
n15
O
n13--n15
t14
w6
n14--t14
n16
P
n15--n16
n17
Q
n15--n17
t16
w7
n16--t16
n18
R
n17--n18
t18
w8
n18--t18
t19
w9
n19--t19
感嘆符(! )は否定を表す。 つまり、A !.. B は、A に B が後続しない場合を表す。
TGrep-lite は、検索パターンの最も左側の要素の一致を返す。次のパターンは、IP の親である IP を親とする [PP] と一致する。
[PP] > ([IP] < [IP])
検索結果は25件ずつ表示されます。
クエリでフォーカスとして指定された要素がハイライトされます。
文末のエントリ番号をクリックすると解析結果のツリーを表示します。
次の25件を見るには、下の矢印 “↓” をクリックします。
前の25件を見るには上の矢印 “↑” をクリックします。
テキストボックスのクエリを編集して、検索をやり直すこともできます。
2000個以下の検索結果なら、ダウンロードするには、画面下部の [Download all results] ボタンをクリックしてください。
basic text format(テキスト形式)、bracket format(括弧(タグ付き)形式)、Alpino XML format(Alpino XML 形式)の3つの形式が選択できます。
どの形式でも、原文には ID 番号が付いています。
Bracket format と Alpino XML format はどちらもデータの持つすべての統語情報が含まれます。
basic text format のファイルでは、各行頭に番号がついています。
最後の行頭番号が検索結果の総数になります。