Syntax for custom rules
Custom claim/document rules overview
ClaimMaster provides a straightforward syntax for specifying claim and document rules. The process of building a rule involves three simple steps:
- set the condition that the claim or the document must meet for the message to be generated
- set the message that will be shown in the reports browser when the condition is satisfied
- specify whether you want to associate the message with a claim number and highlight any text in the document when the error message in the reports browser is clicked.
All of the above steps are performed via the rule editor interface. For more information, please take a look at the sample rules provided with ClaimMaster
Setting a rule condition
A rule condition is a text string that specifies the condition that the claim or the document must meet for the specified message to be generated. Claim rules are applied to each claim in the parsed set of claims. Document rules are applied for the entire patent document. You can think of a rule as a condition in the <if… then> statement:
IF (“condition” = True) THEN generate “message”, where you can specify both the “condition” and the “message.”
ClaimMaster rules engine allows you to operate on three objects – claim, parent, and document. When constructing a rule, you need to reference both the object and its attribute separated by a dot – for example, claim.number. The “claim” object has attributes that specify various information about the claim, such as its number, text, type, etc. The “parent” object provides similar information for the claim's parent(s), if the claim is dependent claim. The “document” object provides information about the type and text of the entire patent document. To specify a condition, you can use various well-known logical operators shown below to compare the attributes of the three described objects. For example, a condition such as claim.number == parent.number, will evaluate to True if the claim has the same number as its parent, which means that it has a looping dependency. To search for a specific text within the claim/document, you can use the “includes” statement, which allows you to use Regular Expression. The use of RegEx for sophisticated pattern searching makes ClaimMaster rule interface a powerful tool for extracting context out of claim language.
For more information and examples about the available operators and object attributes, please take a look at the tables below.
Operators |
Meaning |
Example |
< , > |
less, greater |
claim.number > 5; claim.number < parent.number |
== |
equal |
claim.number == 5 |
<> |
not equal |
claim.number <> 5 |
And; Or |
logical AND, logical OR |
(claim.number > 5) and (parent.number < 3) |
Not |
logical NOT |
Not (claim.number < 5) |
|
|
|
Object |
Attribute |
Possible Values |
Explanation |
Examples |
claim; parent |
|
|
The ‘claim’ object refers to the current claim. The ‘parent’ object refers to all parents of that claim (the claim will have multiple parents if it has multiple dependencies.” An independent claim will not have a parent at all. |
claim.number < parent.number – checks whether the claim has a lower number than its parent. |
|
class |
|
Specifies the type of the claim’s statutory class, as well as some other special types of claims (e.g., Jepson). If the class for the claim cannot be determined, such as for the cancelled claims, the class is set to ‘invalid’ class. |
claim.class == “means” - checks whether the claim is a ‘means for’ claim. claim.class <> parent.class - checks whether claim and its parent have different classes |
|
number |
|
Specifies the claim number |
claim.number == parent.number - checks whether there is a looping dependency, such as when the claim depends from itself |
|
edits |
|
Specifies whether the claim is edited (i.e., has underline, strikethrough, brackets, etc) inside its body or not. |
(claim.edits == “edited”) and (claim.class == “invalid”) – checks whether a possibly cancelled claim has edits inside its body |
|
|
|
|
|
|
indicator |
|
Specifies the claim’s status indicator. Status indicators are used primarily during the prosecution of the patent application. |
(claim.indicator.indicator <> “amended”) and (claim.edits == “edited”) - checks whether the claim is edited, but its status indicator does not reflect this. |
|
dependency |
|
Specifies the type of claim dependency. If the claim is dependent, then it can either depend of a single parent (single dependency) or multiple claims (multiple dependency). |
(claim.dependency == “multiple”) and (parent.dependency == “multiple”) – checks whether a multiple dependent claim depends from at least one other multiple dependent claim. |
|
text |
|
Provides access to the entire text of the claim. |
claim.text includes “system.syn” (checks whether the claim includes the word “system” and its synonyms) |
|
preamble |
|
Provides access to the text of claim’s preamble. |
claim.preamble includes “consists” (checks whether the claim’s preamble includes the word “consists”) |
|
text_pos |
|
Provides access to the text of the claim, where each word is annotated with a Part Of Speech tag according to the University of Pennsylvania (Penn) Treebank Tag-set – see e.g., http://www.comp.leeds.ac.uk/amalgam/tagsets/upenn.html for more info. |
claim.text_pos includes "(\w+(?=(/JJS|/RBS)))" - uses RegEx to determine whether the claim text includes any superlative expressions. |
document |
|
|
The document object refers to the current patent document. |
|
|
type |
|
Specifies the type of the document, such as appeal brief. |
(document.type == “response to OA”) checks whether this document it a response to an Office Action. |
|
text |
|
Provides access to the text of the document |
(document.text includes “invention”) – checks whether the word ‘invention’ appears anywhere in the document |
Setting the message
If the specified rule evaluates to true, the message you specify will be shown in the reports browser. Of course, it helps if the message you choose is informative about the specific error.
Setting additional message parameters
You have control of how the message is shown in Reports Browser. The reports browser will first group messages by their type. You can choose a specific type for your rule. For example, rules that catch serious problems (i.e., claim numbering, etc) should be classified as “Errors,” while less problematic or optional rules can be classified as “Warnings.” You can create as many types as you want.
In addition, you can specify whether you want to include a claim number in your message. If you choose to include the claim number (recommended), then you will be able to browse the messages in the reports browser by claim numbers.
Finally, you can specify whether a specific portion of the document/claim text is highlighted when you click on the message in the reports browser. This allows you to highlight the exact words/conditions in the claim or the document that triggered the error. The table below summarizes various sections available to you for highlighting.
Object |
Property |
Explanation |
claim; parent |
|
|
|
number |
Highlights the text section which includes the claim number. |
|
edits |
Highlights the text section which includes edited text within the claim. |
|
indicator |
Highlights the text section which includes the claim’s status indicator. |
|
dependency |
Highlights the text section which includes the claim’s parent number. |
|
search_result |
Highlights the claim text section which matches the result (such as the one found using RegEx) of includes condition. |
document |
|
|
|
search_result |
Highlights the document text section which matches the result (such as the one found using RegEx) of includes condition. |