# Introduction to Able Rule Language (ARL)

These pages define the syntax of the Able Rule Language (ARL), and explain how to assemble rule language statements into a valid ruleset that can be compiled and saved as a serialized Java object. Serialized ruleset objects can be used as-is within any Java environment but are particularly useful within the ABLE environment, where they can be wired to other AbleBeans in meaningful ways.

You may use any text editor to create rulesets containing source rule language statements, but the Able RuleSet Editor provides syntactic and semantic checking of rules as well as a helpful test and debug environment.

Please select a topic below.

### Able Rule Language (ARL) Documentation

- ARL Overview

- ARL Coding Conventions

- Comments
- White space
- Keywords
- Identifiers
- Boolean Literals
- Numbers
- Lists
- Strings

- Collecting ARL Statements in a Source RuleSet

- Naming a RuleSet
- Processing Options Statements

- InferenceMethod
- CorrelationMethod
- DefuzzifyMethod
- AlphaCut
- Import
- UserTypes

- Variable Declaration Statements

- Boolean
- Categorical
- Continuous
- Discrete
- Fuzzy

- Defining fuzzy sets over Fuzzy variables

- List
- Numeric
- Object
- String
- <userType>

- GoalVariable Statement (for backward chaining)
- Input and Output Statements
- User-Defined Functions
- Rule Block Statements

- About Rule Blocks
- Rule Block Statement Syntax

- Rule Statements

- About Rules
- General Rule Syntax
- Rule Types

- Assertion Rules
- If-Then Rules
- When-Do Rules
- Predicate Rules

- Clauses: Rule Building Blocks

- Assignment Clauses
- Comparison Clauses
- Pattern Match Clauses
- Predicate Clauses

- Hedges for Fuzzy Clauses

- Miscellaneous

- Built-in Variables
- Functions

- Built-in Functions
- Function Libraries
- Externally Attached Functions

- Debugging a RuleSet
- Working with a RuleSet Programmatically
- Tips for Writing Rules

Last modified: Tue Oct 16 12:39:22 Central Daylight Time 2001