2020-04-24 20:16:50 +03:00
|
|
|
# Catala english token proposals
|
|
|
|
|
|
|
|
## FIELD
|
|
|
|
|
|
|
|
Current proposal: "application field".
|
|
|
|
|
|
|
|
The logical context in which the text of the law will apply. Examples are
|
|
|
|
"computation of family benefits", "determination of child credit eligibility".
|
|
|
|
|
|
|
|
```
|
|
|
|
application field FamilyBenefitsComputation:
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
|
|
## DATA
|
|
|
|
|
|
|
|
Current proposal: "data".
|
|
|
|
|
|
|
|
When declaring a data structure, introduces a data field :
|
|
|
|
|
|
|
|
```
|
|
|
|
structure Foo:
|
|
|
|
data bar ...
|
|
|
|
```
|
|
|
|
|
|
|
|
## CONTENT
|
|
|
|
|
|
|
|
Current proposal: "content".
|
|
|
|
|
|
|
|
Introduces type annotation for data.
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
data bar content boolean
|
|
|
|
```
|
|
|
|
|
|
|
|
## DEPENDS
|
|
|
|
|
|
|
|
Current proposal : "depends"
|
|
|
|
|
|
|
|
Introduces a dependency on a parameter for a piece of data when declaring
|
|
|
|
a structure.
|
|
|
|
|
|
|
|
```
|
|
|
|
data bar depends on Foo
|
|
|
|
```
|
|
|
|
|
|
|
|
## DECLARATION
|
|
|
|
|
|
|
|
Current proposal : "declaration"
|
|
|
|
|
|
|
|
Declares a structure or a enumeration in the metadata section.
|
|
|
|
|
|
|
|
## INCLUDES
|
|
|
|
|
|
|
|
Current proposal "includes"
|
|
|
|
|
|
|
|
A FIELD can include another FIELD, building up code modularity which is also
|
|
|
|
present in statutes.
|
|
|
|
|
|
|
|
```
|
|
|
|
declaration application field FamilyBenefitsComputation:
|
|
|
|
...
|
|
|
|
includes application field HouseholdIncomeComputation
|
|
|
|
```
|
|
|
|
|
|
|
|
## CONTEXT
|
|
|
|
|
|
|
|
Current proposal : "context"
|
|
|
|
|
|
|
|
A FIELD has several parameters, which are the data in the logical context of the
|
|
|
|
FIELD. CONTEXT introduces these data.
|
|
|
|
|
|
|
|
```
|
|
|
|
declaration application field FamilyBenefitsComputation:
|
|
|
|
context foo content FOO
|
|
|
|
```
|
|
|
|
|
|
|
|
Also introduces context matching when including another field:
|
|
|
|
|
|
|
|
```
|
|
|
|
...
|
|
|
|
includes application field HouseholdIncomeComputation:
|
|
|
|
HouseholdIncomeComputation.household = FamilyBenefitsComputation.household
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
|
|
## VARIES_WITH DECREASING INCREASING
|
|
|
|
|
|
|
|
Current proposal : "varies with" "decreasing" "increasing"
|
|
|
|
|
|
|
|
Way in which a numeric function can vary.
|
|
|
|
|
|
|
|
```
|
|
|
|
foo varies with bar decreasing
|
|
|
|
```
|
|
|
|
|
|
|
|
## OF
|
|
|
|
|
|
|
|
Current proposal: "of"
|
|
|
|
|
|
|
|
Used as function application token with a single parameter (foo of bar)
|
|
|
|
|
|
|
|
```
|
|
|
|
income of household
|
|
|
|
```
|
|
|
|
|
|
|
|
## COLLECTION
|
|
|
|
|
|
|
|
Current proposal: "collection"
|
|
|
|
|
|
|
|
Annotation for data that are collection of other data.
|
|
|
|
|
|
|
|
```
|
|
|
|
data children content collection Child
|
|
|
|
```
|
|
|
|
|
|
|
|
## ENUM
|
|
|
|
|
|
|
|
Current proposal : "enumeration".
|
|
|
|
|
|
|
|
An enumeration is a sum type modelling an alternative.
|
|
|
|
|
|
|
|
```
|
|
|
|
declaration enumeration Foo:
|
|
|
|
-- ChoiceA
|
|
|
|
-- ChoiceB content Bar
|
|
|
|
```
|
|
|
|
|
|
|
|
## STRUCT
|
|
|
|
|
|
|
|
Current proposal: "structure".
|
|
|
|
|
|
|
|
Introduces a structure data type (product type).
|
|
|
|
|
|
|
|
```
|
|
|
|
declaration structure Foo:
|
|
|
|
fieldA content integer
|
|
|
|
fieldB content boolean
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
|
|
## INTEGER
|
|
|
|
|
|
|
|
Current proposal : "integer".
|
|
|
|
|
|
|
|
The base integer data type.
|
|
|
|
|
|
|
|
```
|
|
|
|
data foo content integer
|
|
|
|
```
|
|
|
|
|
|
|
|
## MONEY
|
|
|
|
|
|
|
|
Current proposal : "amount".
|
|
|
|
|
|
|
|
The base data type for representing amounts of money.
|
|
|
|
|
|
|
|
```
|
2020-12-10 11:27:51 +03:00
|
|
|
data foo content money
|
2020-04-24 20:16:50 +03:00
|
|
|
```
|
|
|
|
|
|
|
|
## TEXT
|
|
|
|
|
|
|
|
Current proposal : "text".
|
|
|
|
|
|
|
|
The base data type for representing strings.
|
|
|
|
|
|
|
|
```
|
|
|
|
data foo content text
|
|
|
|
```
|
|
|
|
|
|
|
|
## DECIMAL
|
|
|
|
|
|
|
|
Current proposal : "decimal".
|
|
|
|
|
|
|
|
The base data type for representing fixed- or floating-point numbers.
|
|
|
|
|
|
|
|
```
|
|
|
|
data foo content decimal
|
|
|
|
```
|
|
|
|
|
|
|
|
## DATE
|
|
|
|
|
|
|
|
Current proposal : "date".
|
|
|
|
|
|
|
|
The base data type for representing dates.
|
|
|
|
|
|
|
|
```
|
|
|
|
data foo content date
|
|
|
|
```
|
|
|
|
|
|
|
|
## BOOLEAN
|
|
|
|
|
|
|
|
Current proposal : "boolean".
|
|
|
|
|
|
|
|
The base data type for representing booleans. Apparently lawyers don't know what
|
|
|
|
it is but I haven't found a better word.
|
|
|
|
|
|
|
|
```
|
|
|
|
data foo content boolean
|
|
|
|
```
|
|
|
|
|
|
|
|
## SUM
|
|
|
|
|
|
|
|
Current proposal: "sum".
|
|
|
|
|
|
|
|
Function for doing the sum of a quantity over a collection of data.
|
|
|
|
|
|
|
|
```
|
|
|
|
sum for child in children of child.income
|
|
|
|
```
|
|
|
|
|
|
|
|
## CARDINAL
|
|
|
|
|
|
|
|
Current proposal: "number".
|
|
|
|
|
|
|
|
Function for counting the number of data in a collection that satisfy a predicate.
|
|
|
|
|
|
|
|
```
|
|
|
|
number for child in children of child.age > 15 year
|
|
|
|
```
|
|
|
|
|
|
|
|
## CONDITION
|
|
|
|
|
|
|
|
Current proposal: "condition"
|
|
|
|
|
|
|
|
A condition is a special kind of DATA used to represent logical and juridical
|
|
|
|
conditions. In default logic, it is a boolean whose default value is false.
|
|
|
|
|
|
|
|
```
|
|
|
|
structure ArticleFoo:
|
|
|
|
condition eligible_for_credit
|
|
|
|
```
|
|
|
|
|
|
|
|
## FILLED
|
|
|
|
|
|
|
|
Current proposal: "fulfilled"
|
|
|
|
|
|
|
|
Action TOKEN to declare a CONDITION valid in a rule.
|
|
|
|
|
|
|
|
```
|
|
|
|
eligible_for_credit fulfilled
|
|
|
|
```
|
|
|
|
|
|
|
|
## RULE
|
|
|
|
|
|
|
|
Current proposal: "rule"
|
|
|
|
|
|
|
|
Inside a FIELD, introduces a rules that sets a CONDITION to FILLED or not FILLED
|
|
|
|
|
|
|
|
```
|
|
|
|
application field FamilyBenefitsComputation:
|
|
|
|
rule under condition
|
|
|
|
number of household.children > 2
|
|
|
|
consequence eligible filled
|
|
|
|
```
|
|
|
|
|
|
|
|
## DEFINITION
|
|
|
|
|
|
|
|
Current proposal: "definition".
|
|
|
|
|
|
|
|
Same thing as RULE but for data that is not a condition.
|
|
|
|
|
|
|
|
```
|
|
|
|
application field FamilyBenefitsComputation:
|
|
|
|
definition income defined as
|
|
|
|
sum for child in household.children of child.income
|
|
|
|
```
|
|
|
|
|
|
|
|
## DEFINED_AS
|
|
|
|
|
|
|
|
Current proposal: "defined as".
|
|
|
|
|
|
|
|
Introduces the expression of a data in a DEFINITION.
|
|
|
|
|
|
|
|
See above for example.
|
|
|
|
|
|
|
|
## MATCH
|
|
|
|
|
|
|
|
Current proposal: "match".
|
|
|
|
|
|
|
|
Allows to case on an enumeration.
|
|
|
|
|
|
|
|
```
|
|
|
|
match matrimonial_status with pattern
|
|
|
|
-- Married
|
|
|
|
-- Single
|
|
|
|
```
|
|
|
|
|
|
|
|
## WITH
|
|
|
|
|
|
|
|
Current proposal: "with pattern".
|
|
|
|
|
|
|
|
Complement of MATCH. See above.
|
|
|
|
|
|
|
|
## UNDER_CONDITION
|
|
|
|
|
|
|
|
Current proposa: "under condition".
|
|
|
|
|
|
|
|
Soft if-then-else for default logic.
|
|
|
|
|
|
|
|
```
|
|
|
|
definition credit
|
|
|
|
under condition eligible_for_credit
|
|
|
|
consequence defined as $10
|
|
|
|
```
|
|
|
|
|
|
|
|
## CONSEQUENCE
|
|
|
|
|
|
|
|
Current proposal: "consequence"
|
|
|
|
|
|
|
|
Counterpart of UNDER_CONDITION. See above.
|
|
|
|
|
|
|
|
## IF THEN ELSE
|
|
|
|
|
|
|
|
Current proposal: "if" "then" "else"
|
|
|
|
|
|
|
|
The hard if/then/else of traditional programming.
|
|
|
|
|
|
|
|
```
|
|
|
|
if child.age > 15 then Eligible else NotEligible
|
|
|
|
```
|
|
|
|
|
|
|
|
## OPTIONAL
|
|
|
|
|
|
|
|
Current proposal: "optional".
|
|
|
|
|
|
|
|
Syntax shorthand for a Absent/Present enumeration.
|
|
|
|
|
|
|
|
```
|
|
|
|
data husband optional
|
|
|
|
```
|
|
|
|
|
|
|
|
## ASSERTION
|
|
|
|
|
|
|
|
Current proposal: "assertion".
|
|
|
|
|
|
|
|
Introduces inside a FIELD a thing that should always be true.
|
|
|
|
|
|
|
|
```
|
|
|
|
assertion for each child in children we have child.age >= 0
|
|
|
|
```
|
|
|
|
|
|
|
|
## FOR ALL WE_HAVE
|
|
|
|
|
|
|
|
Current proposal: "for" "all" "we have"
|
|
|
|
|
|
|
|
Introduces a forall predicate or aggregation over a collection of data.
|
|
|
|
|
|
|
|
See above.
|
|
|
|
|
|
|
|
### EXISTS IN SUCH THAT
|
|
|
|
|
|
|
|
Current proposal: "exists" "in" "such" "that"
|
|
|
|
|
|
|
|
Introduces an existential predicate over a collection of data.
|
|
|
|
|
|
|
|
```
|
|
|
|
exists child in children such that child.age > 20 year
|
|
|
|
```
|
|
|
|
|
|
|
|
## FIXED BY
|
|
|
|
|
|
|
|
Current proposal: "fixed" "by"
|
|
|
|
|
|
|
|
Asserts that a particular variable is defined in a particular category of
|
|
|
|
legislative text.
|
|
|
|
|
|
|
|
```
|
|
|
|
assertion foo.bar fixed by executive order
|
|
|
|
```
|
|
|
|
|
|
|
|
## NOW
|
|
|
|
|
|
|
|
Current proposal "now".
|
|
|
|
|
|
|
|
Builtin function returning the date of today when executing the code.
|
|
|
|
|
|
|
|
## AND OR NOT
|
|
|
|
|
|
|
|
Current proposal: "and" "or" "not".
|
|
|
|
|
|
|
|
Logical connectives.
|
|
|
|
|
|
|
|
```
|
|
|
|
(age > 15) and (eligible or special_thing)
|
|
|
|
```
|
|
|
|
|
|
|
|
### YEAR MONTH DAY
|
|
|
|
|
|
|
|
Current proposal: "year" "month" "day"
|
|
|
|
|
|
|
|
Units of time for duration specification.
|
|
|
|
|
|
|
|
```
|
|
|
|
15 months + 1 year
|
|
|
|
```
|