-
Notifications
You must be signed in to change notification settings - Fork 0
/
BaseOntology.txt
172 lines (161 loc) · 7.59 KB
/
BaseOntology.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
===
Comment: Base Ontology.
The base vocabulary includes: order, order item, bill-of-material, material, part, assembly, container, person, worker, employee, organization, roles, measure, metric, money, cost, price, account, resource, resource-pool, inventory, and more.
Q: Should the base-ontology include nouns related to agents? (Dispatcher, Bookkeeper, Dialog, Scribe)
A: Perhaps those vocabularies belong in a separate (boot-strap) ontology.
===
Dictionary: Data types. (These are all primitive types in Hum. The description here is informational.)
. Data-type categories include measure, string, text, date, date-time, time-stamp, identifier, entity, attribute, category.
. (In real-world, all numbers are measures.)
. (See Measure vocabulary below.)
. (Text is formatted using some markup notation. Hum markup may be assumed.)
. Text is a string.
. Text attributes include markup.
. String attributes include character-list.
. Character attributes include id (code), glyph.
. Two-digit-string subtypes include mm, dd, hour, minute, second. (two digits with a leading zero)
. Date attributes include mm, dd, year, day-of-week, month. (Julian calendar)
. Month subtypes include January, February, March, April, May, June, July, August, September, October, November, December.
. Month attributes include name, mm, abbreviation, quarter.
. Day-of-week subtypes include Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday.
. Day-of-week attributes include name, abbreviation, day-types.
. Day-type categories include weekday, weekend, holiday.
. Date-time attributes include date, time-of-day.
. Time-of-day attributes include hour, minute, second.
. Time-stamp attributes include date-time, event.
. Event attributes include event-id.
. Identifier is a string. (Identifiers are generated by a process that assures they are unique within a world-base)
. Entity attributes include name, attributes.
. Attribute attributes include name, data-type.
. Category attributes include name, category-values.
. Category-value is a string. (Is the value a noun or adjective or what?)
===
Dictionary: Party vocabulary.
. Party attributes include name, postal-address, contact-channels, representative.
. Person is a party.
. Person attributes include first-name, last-name, family-name.
. Worker is a person.
. Employee is a worker.
. Organization is a party.
. Representative is a person.
===
Dictionary: Role vocabulary.
. Role attributes include name, process.
. Assignment attributes include role, party. (Party assigned to role)
===
Dictionary: Order vocabulary.
. Order attributes include order-date, buyer, buyer-account, provider, delivery-address, order-items, grand-total.
. Grand-total is a money.
. Order-item attributes include product, quantity-measure, unit-price, subtotal.
===
Dictionary: Measures and Metrics.
. Measure attributes include quantity, metric, precision.
. Metric categories include meter, liter, milliliter, pound, gram, kilogram, millimeter, centimeter, ounce, fluid-ounce, cubic-centimeter.
. cc is abbreviation for cubic-centimeter.
. ml is abbreviation for milliliter.
. oz is abbreviation for ounce.
. lb is abbreviation for pound.
. kg is abbreviation for kilogram.
. cm is abbreviation for centimeter.
. (We cannot use mm because it is an attribute of date.)
. Quantity is a number.
. Precision is a number.
. Observation attributes include name, date-time, location, observed-item, measures.
. Money is a measure.
. Money attributes include currency.
. Money subtypes include cost, price.
. Currency categories include US-dollar, Canadian-dollar, British-pound, Euro.
===
Dictionary: Basic Accounting.
. Account attributes include account-type, name, metric.
. Account-type categories include expense, revenue, asset, liability, resource.
. (I forget. Is an account associated with a specific journal?)
. Account subtypes include expense-account, revenue-account, asset-account, liability-account.
. Account subtypes include credit-account, debit-account. (Temp fix to make noun matching work.)
. Money subtypes include expense, revenue, asset, liability.
. Journal-entry attributes include journal-name, measure, credit-account-name, debit-account-name.
. Ledger-entry attributes include ledger-name, measure, ledger-account-name, ledger-account-name.
. Journal attributes include journal-name.
. Ledger attributes include ledger-name.
===
Dictionary: Resources.
. Resource-pool attributes include name, resource-type, location, resources.
. Resource-type categories include skill, material, product.
. Inventory is a resource-pool.
. Inventory attributes include resource-pools. (one or more sub-inventory)
===
Dictionary: Product, Service, Part.
. Product attributes include name, metric.
. Product subtypes include part, material, service.
. Part attributes include name, description, standard-cost, standard-price.
. Assembly is a part.
. Assembly attributes include bill-of-material-table, method. (bill-of-material and method probably overlap)
. Material attributes include name, description, unit-of-measure.
. Product-package attributes include product, package-unit-of-measure.
. Bill-of-material-table attributes include bill-of-material-lines.
. Bill-of-material-line attributes include part, quantity.
===
Dictionary: Method, Procedure.
. Method attributes include principle-deliverable, description, inputs, step-list, advice.
. Input attributes include input-type, name, measure.
. Input-type categories include consumable, rentable.
. Consumable categories include material-consumable, energy, part-consumable.
. Rentable categories include skill, equipment, work-space.
. (A well-defined method has a single deliverable. There may be side-products or side-effects, but just one deliverable.)
. Method subtypes include recipe, procedure.
. Deliverable is a product. (See product subtypes above.)
. Step attributes include step-number, description, step-procedure (RECURSIVE), sub-product.
===
Role: Bookkeeper.
Action: Create account-type named name with initial value measure.
. (How will the blackboard and/or world-base know this is a new instance of account?)
. (Normally new instances are created via DialogAgent invoked by {New entity-type}.)
. (The assumption is that the user-interface platform will provide the needed create/update logic.)
Action: Add measure to account.
Action: Subtract measure from account.
Action: Credit credit-account debit debit-account with measure.
. Add measure to credit-account.
. Subtract measure from debit-account.
Action: Credit credit-account debit debit-account with measure in journal-name.
. (How does this transaction get associated with a business event?)
. (TODO: Rewrite Bookkeeper so that transactions are associated with business events.)
. Credit credit-account debit debit-account with measure.
===
Context: Ledger setup.
U: Create new account.
S: Ok.
. New account.
. Ask Account-Spec.
===
View: Account-Spec.
!!! Create a new account.
Account Type: [account-type]
Account Metric: [metric]
===
Role: DialogAgent.
Action: Ask view.
. (A view is identified by its name.)
Action: Show view.
. (Show the view in read-only mode.)
Action: New entity.
. (Create a new instance of given entity-type.)
Action: Push context context-name.
. (Push context-name onto the context stack.)
===
Dictionary: Dialog vocabulary.
. Context attributes include context-name, vignettes.
. Vignette attributes include patterns, response-lines.
===
Dictionary: View vocabulary.
. View attributes include view-name, associated-entity.
===
Context: Bookkeeping operations.
U: Credit [credit-account] debit [debit-account] with [measure] in [journal-name].
S: Ok.
. Bookkeeper: Credit credit-account debit debit-account with measure in journal-name.
===