JAPE là một thành phần quan trọng nhất trong GATE nó đóng vai trò chính giúp công cụ này xử lý ngôn ngữ tự nhiên. Bộ luật Jape là thành phần cơ bản trong khung làm việc của Gate cho phép ta xây dựng các tập luật bằng các cách viết biểu thức chính quy trên nhãn (annotation) và tạo ra các nhãn mới trong văn bản.
Một bộ luật JAPE bao gồm một tập các đoạn (phases), mỗi đoạn lại bao gồm một tập các luật. Mỗi tập luật lại gồm hai thành phần là vế trái (Left-hand-side - LHS) và vế phải (Right-hand-side - RHS), hai vế đƣợc phân biệt bởi ký hiệu “-->”. Có cú pháp nhƣ sau:
LHS (left-hand-side) --> RHS (right-hand-side)
Khi một luật JAPE thực thi thì các luật nhỏ bên trong của nó đƣợc thực hành một cách tuần tự từ trên xuống nhƣ cùng Priority và nó thi hành các luật từ thấp đến cao (mặc định là -1 nếu không khai báo Priority).
Trong luật JAPE gồm hai thành phần chính là mệnh đề trái (LHS) và mệnh đề phải(RHS). Trong khi mệnh đề phải (RHS) thể hiện hành động cần đƣợc thực thì khi mệnh đề trái (LHS) đƣợc thỏa mãn so khớp.
-Mệnh đề trái LHS (patterns): Là một biểu thức của các mẫu annotation pattern và các toán tử ( *, ?, +.|).
Các toán tử sử dụng trong mệnh đề trái nhƣ: “|” : phép hoặc
“*” : phép lặp (không hoặc nhiều lần ) “?” : phép không lặp hoặc lặp một lần “+” : phép lặp một lần hoặc lặp nhiều lần
Các mẫu đƣợc gán trong mệnh đề trái sẽ đƣợc sử dụng trong mệnh đề phải -Mệnh đề phải RHS : Sử dụng các mẫu đƣợc cung cấp bởi mệnh đề trái để thực thi một lệnh nào đó và thông thƣờng là tạo ra các nhãn annotation mới. Các annotation thỏa mãn yêu cầu ngƣời dùng.
28
Để thuận tiện và tránh lặp đi lặp lại các thành phần JAPE đƣa ra khái niệm thay thế Macro. Macro biểu diễn một biểu thức chính quy sau đó đƣợc dùng thƣờng xuyên trong vế trái của luật.
Một số lựa chọn khi viết luật:
Thành phần đầu tiên của mỗi luật JAPE ta phải thiết lập là một thuộc tính là “Control”. Có 5 giá trị cho Control là: “all”, “once”, “brill”, “first” và “appelt” . Kiểu này phải đƣợc xác định khi bắt đầu mỗi văn phạm chứa các luật đề điều khiển so khớp mẫu.
Cú pháp:
Options: control=<kiểu điều khiển>
- Kiểu “Brill”: Khi có nhiều hơn một luật đƣợc thỏa mãn trên một văn bản, thì tất cả các luật đó đều đƣợc thực thi. Sau quá trình so khớp diễn ra ở tất cả các luật thì điểm bắt đầu quá trình so khớp tiếp theo sẽ là điểm kết thúc của luật đƣợc so khớp dài nhất của quá trình trƣớc.
- Kiểu “all” cũng giống nhƣ “brill” nó cho phép tất cả các luật đƣợc so khớp trên cùng một đoạn văn bản tuy nhiên nó có điểm khác biệt với “brill” là điểm bắt đầu quá trình so khớp tiếp theo là điểm bắt đầu của nhãn gần nhất sau nó. Có thể nói kiểu “all” so khớp rộng hơn “Brill”
- Kiểu “once” Chỉ có luật đầu tiên thỏa mãn quá trình so khớp đƣợc thực hiện.
- Kiểu “First”: Luật đƣợc thực hiện ngay khi quá trình so khớp đầu tiên đƣợc thỏa mãn. Cho nên khi chọn giá trị này thì chỉ có luật nào thỏa mãn đầu tiên sẽ đƣợc biểu diễn ra. Bởi vậy nó không thich hợp cho các luật sử dụng “+”, “*”, “?”.
- Kiểu “Appelt”: Chỉ có một luật thỏa mãn quá trình so khớp có độ thực thi cao nhất đƣợc biểu diễn ra nhƣng theo một thứ tự ƣu tiên sau:
+ Trong một đoạn văn bản nếu có nhiều luật thỏa mãn so khớp từ vị trí X, nhƣng luật nào thỏa mãn trên vùng dài nhất sẽ đƣợc thực thi.
+ Nếu qua bƣớc 1 vẫn còn có nhiều hơn một luật so khớp cùng một đoạn trong văn bản thì luật nào có độ ƣu tiên cao hơn sẽ đƣợc thực thi.
29
+ Nếu qua bƣớc 2 vẫn còn có nhiều hơn một luật so khớp cùng đoạn trong văn bản và có độ ƣu tiên nhƣ nhau thì luật nào đƣợc định nghĩa sau cùng trong văn phạm JAPE sẽ đƣợc thực thi.
Trong đó các priority là các số nguyên dƣơng, theo thứ tự số lớn hơn thì priority có độ ƣu tiên lớn hơn. Nếu không khai báo trong luật thì priority có giá trị mặc định priority là -1 (priority thấp nhất).
Ví dụ về khai báo control Phase: Entity
Input: Lookup, tooken Options: control= appelt
Ví dụ về JAPE Grammar dùng để gán nhãn cho thực thể: Rule: NewCity
({Lookup.minnorType == city}): loc
-> :loc.Location = {kind = "city", rule=”NewCity”}
Ở ví dụ này thì “loc” là nhãn. Vế phải của luật là phần theo sau mũi tên. Nhãn “loc” đƣợc chuyển tới vế phải của luật và chú giải có kiểu Location đƣợc thêm vào mẫu, với hai đặc trƣng tùy chọn là kind và rule các giá trị lần lƣợt tƣơng ƣng là “city” và “NewCity”