Term hierarchy in Narsese
Package Specification
Open-NARS implements the following formal language, Narsese.
<sentence> ::= <judgment>
| <question>
<judgment> ::= <statement> <truth-value>
<question> ::= <statement>
<statement> ::= <<term> <relation> <term>>
| <compound-statement>
| <term>
<term> ::= <word>
| <variable>
| <compound-term>
| <statement>
<relation> ::= --> // Inheritance
| <-> // Similarity
| {-- // Instance
| --] // Property
| {-] // InstanceProperty
| ==> // Implication
| <=> // Equivalence
<compound-statement> ::= (-- <statement>) // Negation
| (|| <statement> <statement>+) // Disjunction
| (&& <statement> <statement>+) // Conjunction
<compound-term> ::= {<term>+} // SetExt
| [<term>+] // SetInt
| (& <term> <term>+) // IntersectionExt
| (| <term> <term>+) // IntersectionInt
| (- <term> <term>) // DifferenceExt
| (~ <term> <term>) // DifferenceInt
| (* <term> <term>+) // Product
| (/ <term>+ _ <term>*) // ImageExt
| (\ <term>+ _ <term>*) // ImageInt
<variable> ::= <independent-var>
| <dependent-var>
| <query-var>
<independent-var> ::= $[<word>]
<dependent-var> ::= #<word>
<query-var> ::= ?[<word>]
<word> : string in an alphabet
<truth-value> : a pair of real numbers in [0, 1] x (0, 1)
Major methods in the Term classes:
- constructors
- get and set
- clone, compare, and unify
- create and access corresponding concept
- structural operation in compound