概念と用語法
従来(うちわで)使っていた用語法を幾分変える。
情報抽出に使う式を抽出式(extract expression)と呼ぶ。次のBNFでパターンを定義する。
原子パターン ::= セレクター 条件式? 内容? 終端子 パターン ::= 原子パターン | '(' 原子パターン ('|' 原子パターン)* '|'? ')'
従来は、抽出式をパターンと呼んでいたが、パターンをセレクターを持つ式の意味にする。パターン以外にスカラーリテラルや配列、(JSONの意味の)オブジェクトも出てくるが、今は注目しない。
抽出式はパターンに次の情報を加えたものである。
値の形式は:
- *[n] : n番目の単一値
- *[n, m] : n番目からm番目のスライス
- *[n, ] : n番目以降のスライス
- * : すべて
デフォルトは、Descendantコンビネータと*[0]。
ツリーTを固定して、aはコンテキストノードとして、パターンPは eval(a, P) により評価される。抽出式Eは extract(a, E) により評価される。