Skip to content

Commit a9c98ea

Browse files
moschmdtgarfieldnate
authored andcommitted
Fix hyphens and whitespaces from conversion
1 parent b62fa9d commit a9c98ea

File tree

5 files changed

+87
-80
lines changed

5 files changed

+87
-80
lines changed

docs/soar_manual/03_SyntaxOfSoarPrograms.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# The Syntax of Soar Programs
55

66
This chapter describes in detail the syntax of elements in working memory,
7-
preference mem- ory, and production memory, and how impasses and I/O are
7+
preference memory, and production memory, and how impasses and I/O are
88
represented in working memory and in productions. Working memory elements and
99
preferences are created as Soar runs, while productions are created by the user
1010
or through chunking. The bulk of this chapter explains the syntax for writing
@@ -115,7 +115,7 @@ to find a specific attribute.
115115
Working memory is a set, so that at any time, there are never duplicate versions
116116
of working memory elements. However, it is possible for several working memory
117117
elements to share the same identifier and attribute but have different values.
118-
Such attributes are called multi- valued attributes or _multi-attributes_. For
118+
Such attributes are called multi-valued attributes or _multi-attributes_. For
119119
example, state `S1`, above, has two attributes that are multi-valued: `thing`
120120
and `ontop`.
121121

@@ -157,7 +157,7 @@ _timetag_.
157157
### Acceptable preferences in working memory
158158

159159
The `acceptable` preferences for operators appear in working memory as
160-
identifier-attribute- value-preference quadruples. No other preferences appear
160+
identifier-attribute-value-preference quadruples. No other preferences appear
161161
in working memory. A template for an `acceptable` preference in working memory
162162
is:
163163

@@ -591,7 +591,7 @@ sp {example*lti*predicates
591591

592592
In this production,`<orig-sti>`, is tested for whether it is linked to some LTI.
593593
It is also compared against `<result-sti>`(a working memory element retrieved
594-
from long-term mem- ory and known to be linked to an LTI) to see if the two
594+
from long-term memory and known to be linked to an LTI) to see if the two
595595
elements point to the same long-term memory. Note the the `@+` in this example
596596
is actually unnecessary, since the `{ @ <orig-sti> <result-sti> }` test will
597597
fail to match if either value tested is not linked to an LTI.
@@ -719,7 +719,7 @@ On the other hand, the condition:
719719
```
720720

721721
would match only if there is no object in working memory that matches all three
722-
attribute- value tests.
722+
attribute-value tests.
723723

724724
##### Example Production
725725

@@ -809,7 +809,7 @@ That is, "not (A and B and C)" becomes "(not A) or (not B) or (not C)".
809809
#### Multi-valued attributes
810810

811811
An object in working memory may have multiple augmentations that specify the
812-
same at- tribute with different values; these are called multi-valued
812+
same attribute with different values; these are called multi-valued
813813
attributes, or multi-attributes for short. To shorten the specification of a
814814
condition, tests for multi-valued attributes can be shortened so that the value
815815
tests are together.
@@ -1394,7 +1394,7 @@ The identifier and value will always be variables, such as
13941394
13951395
The preference notation appears similar to the predicate tests that appear on
13961396
the left-hand side of productions, but has very different meaning. Predicates
1397-
cannot be used on the right- hand side of a production and you cannot restrict
1397+
cannot be used on the right-hand side of a production and you cannot restrict
13981398
the bindings of variables on the right-hand side of a production. (Such
13991399
restrictions can happen only in the conditions.)
14001400
@@ -1476,7 +1476,7 @@ But `(<s> ^operator <o1> <o2> >, <o3>)` would be interpreted as
14761476
14771477
The fourth type of action that can occur in productions is called a _right-hand
14781478
side function_. Right-hand side functions allow productions to create side
1479-
effects other than changing work- ing memory. The RHS functions are described
1479+
effects other than changing working memory. The RHS functions are described
14801480
below, organized by the type of side effect they have.
14811481
14821482
##### Stopping and pausing Soar
@@ -1671,7 +1671,7 @@ expects either an integer constant, symbolic constant, or floating point
16711671
constant. The symbolic constant must be a string which can be interpreted as a
16721672
single floating point number. This function essentially operates as a type
16731673
casting function. For example, if you wanted to print out an integer expression
1674-
as a floating-point num- ber, you could do the following:
1674+
as a floating-point number, you could do the following:
16751675
16761676
```Soar
16771677
sp {
@@ -1747,7 +1747,7 @@ After this rule fires, working memory would look like:
17471747
```
17481748
17491749
**concat** — Given an arbitrary number of symbols, this function concatenates
1750-
them to- gether into a single constant symbol. For example:
1750+
them together into a single constant symbol. For example:
17511751
17521752
```Soar
17531753
sp {example
@@ -1760,7 +1760,7 @@ After this rule fires, the WME `(S1 ^name foobar6)` will be added.
17601760
17611761
**deep-copy** — This function returns a copy of the given symbol along with
17621762
linked copies of all descendant symbols. In other terms, a full copy is made of
1763-
the working mem- ory subgraph that can be reached when starting from the given
1763+
the working memory subgraph that can be reached when starting from the given
17641764
symbol. All copied identifiers are created as new IDs, and all copied values
17651765
remain the same. For example:
17661766

docs/soar_manual/04_ProceduralKnowledgeLearning.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Whenever a rule fires and creates such new superstate knowledge, which are
1414
called **results**, Soar learns a new rule and immediately adds it to production
1515
memory. In future similar situations, the new chunk will fire and create the
1616
appropriate results in a single step, which eliminates the need to spawn another
17-
subgoal to perform similar problem- solving. In other words, rather than
17+
subgoal to perform similar problem-solving. In other words, rather than
1818
contemplating and figuring out what to do, the agent immediately knows what to
1919
do.
2020

@@ -216,7 +216,7 @@ concepts: _identity_.
216216
cannot be generalized and must contain a specific value.** - All elements in
217217
the original rule that reference specific constant values are trivially
218218
assigned the NULL identity. - A variable’s identity can also be _mapped to the
219-
NULL identity_. When this hap- pens, we say the identity has been
219+
NULL identity_. When this happens, we say the identity has been
220220
**literalized**.
221221

222222
EBC traverses an explanation trace of the problem-solving that occurred in the
@@ -300,7 +300,7 @@ on the identity graph.
300300
variablization because they were tested against literal values in some
301301
rules. Note that this component has two distinct mechanisms that occur at
302302
very different times. The first mechanism, identity propagation, occurs
303-
constantly while problem- solving in the substate. The second mechanism,
303+
constantly while problem-solving in the substate. The second mechanism,
304304
identity graph manipulation, occurs during the learning episode.
305305
2. **Relevant operator selection knowledge tracking**
306306
This component also occurs before the learning episode. Whenever an operator
@@ -347,7 +347,7 @@ literal constants, which variables are the same variables, what constraints must
347347
be met on the values of each variable and any relationships between variables.
348348

349349
EBC uses this underlying logic to determine the identities of objects used
350-
during the problem- solving. Identities are not simply IDs. Each identity is a
350+
during the problem-solving. Identities are not simply IDs. Each identity is a
351351
declarative object that describes a set of variables across multiple rule
352352
firings and the various properties they hold.
353353

@@ -551,7 +551,7 @@ Soar’s operationality analysis. In previous versions of chunking, chunking wou
551551
never add two conditions to a chunk that matched the same superstate working
552552
memory element. This made sense because chunking was based on a generalization
553553
of the working memory trace. More than one condition that tested the same WME
554-
would be redundant. Explanation-based chunk- ing, though, learns based on the
554+
would be redundant. Explanation-based chunking, though, learns based on the
555555
reasoning within the original hand-written rules. Since the reasoning behind
556556
each of the two conditions may be different even if they matched the same WME,
557557
EBC must always add both conditions. (Note that there are some exceptions. See
@@ -697,11 +697,11 @@ two conditions without losing generality.
697697

698698
EBC polishes the conditions of the learned rule by pruning unnecessary
699699
constraints on literalized elements and replacing multiple disjunction
700-
constraints with a single simplified dis- junction.
700+
constraints with a single simplified disjunction.
701701

702702
1. Merging disjunctions: If an element in a condition has two disjunction
703703
tests, the constraints will be merged into a single disjunction that
704-
contains only the shared val- ues. `{ << a b c >> << b c d >> <x>}` becomes `{
704+
contains only the shared values. `{ << a b c >> << b c d >> <x>}` becomes `{
705705
<<b c >> <x> }`, because it is impossible fo `<x>` to be either a or b. This
706706
will also eliminate any duplicate disjunctions.
707707
2. Throwing out unnecessary constraints: If an element in a condition has been
@@ -740,7 +740,7 @@ to the fewest number of partial instantiations when the chunk is matched. A
740740
condition that matches an object with a multi-valued attribute will lead to
741741
multiple partial instantiations, so it is generally more efficient to place
742742
these conditions later in the ordering. This is the same process that internally
743-
reorders the conditions in user- defined productions, as mentioned briefly in
743+
reorders the conditions in user-defined productions, as mentioned briefly in
744744
Section 2.3.1.
745745

746746
## Subtleties of EBC
@@ -809,7 +809,7 @@ When a problem has been decomposed into more than one substate, a single result
809809
can produce multiple chunks. This process is called bottom-up chunking. The
810810
first chunk is produced in the substate where the problem-solving that produced
811811
the result occurred. The next chunk is based on the implicit match of the first
812-
chunk in one of the higher level problem- spaces. If that match is lower than
812+
chunk in one of the higher level problem-spaces. If that match is lower than
813813
the state that the result is being returned to, Soar will backtrace through the
814814
chunk match and learn a second chunk (relative to the substate that the chunk
815815
matched in). This process continues until it learns a chunk that only creates
@@ -839,7 +839,7 @@ Chunking is intended to produce the most general rule that is also correct.
839839

840840
Generality is a measure of the space of similar situations that a rule can apply
841841
to. A more general rule can be applied to a larger space of similar situations.
842-
A rule is considered over- general if it can apply to situations in which the
842+
A rule is considered over-general if it can apply to situations in which the
843843
original problem-solving would have never occurred.
844844

845845
Correctness is a requirement that the learned rule produces the exact same
@@ -855,13 +855,13 @@ rules are over-general.
855855
### Over-specialization and Over-generalization
856856

857857
Explanation-based chunking was pursued to address the main limitation of
858-
traditional chunk- ing:over-specialized rules that were very specific and could
858+
traditional chunking: over-specialized rules that were very specific and could
859859
not be applied to many other situations. Specifically, EBC’s identity-based
860860
variablization and constraint tracking/enforcement has eliminated the core
861861
source of this issue.
862862

863863
The nature of EBC’s algorithm does add two new situations in which rules may
864-
become over- specialized. Section 4.6.16 discusses how variables used in certain
864+
become over-specialized. Section 4.6.16 discusses how variables used in certain
865865
RHS functions need to be literalized to maintain correctness, which can cause
866866
overspecialization. Section 4.6.7 discusses how testing or augmenting a previous
867867
result creates non-operational rules that require repair, a process which may
@@ -988,7 +988,7 @@ may consist of exhaustively applying all the operators in the problem space. If
988988
so, then a convenient way to recognize that all operators have applied and
989989
processing is complete is to wait for a state no-change impasse to occur. When
990990
the impasse occurs, a production can test for the resulting substate and create
991-
a result for the original subgoal. This form of state test builds over- general
991+
a result for the original subgoal. This form of state test builds over-general
992992
chunks because no pre-existing structure is relevant to the result that
993993
terminates the subgoal. The result is dependent only on the existence of the
994994
substate within a substate.
@@ -1026,7 +1026,7 @@ create its own distinct result in the superstate. Since this is different
10261026
behavior than the original substate, this rule would be considered incorrect.
10271027

10281028
If it were possible, EBC should learn a disjunctive conjunctive condition, with
1029-
each dis- junction being the superstate conditions tested by each substate rule
1029+
each disjunction being the superstate conditions tested by each substate rule
10301030
that had previously created the substate WME that was repeatedly asserted. This
10311031
is why this potential source of incorrect rules is called disjunctive context
10321032
conflation.
@@ -1230,7 +1230,7 @@ conditions is true:
12301230
from being formed if the problem-solving that led to the result was
12311231
dependent on a condition that tested whether a subgoal WME doesn’t exist.
12321232
Since there is no practical way to determine why a piece of knowledge
1233-
doesn’t exist, testing a local negation can result in an over- general and
1233+
doesn’t exist, testing a local negation can result in an over-general and
12341234
incorrect chunk, cf. [prohibiting known sources for correctness issues](04_ProceduralKnowledgeLearning.md#prohibiting-known-sources-of-correctness-issues)
12351235
for more information. Note that correctness filters have not yet been
12361236
implemented for all the identified potential sources of correctness issues.
@@ -1737,7 +1737,7 @@ transitive constraints were added to a particular chunk.
17371737
### explain identity
17381738
17391739
explain identity will show the mappings from variable identities to identity
1740-
sets. If avail- able, the variable in a chunk that an identity set maps to will
1740+
sets. If available, the variable in a chunk that an identity set maps to will
17411741
also be displayed.
17421742
17431743
By default, only identity sets that appear in the chunk will be displayed in the
@@ -1828,7 +1828,7 @@ The `visualize` command can generate two graphical representations of the
18281828
analysis that chunking performed to learn a rule. While the explainer provides
18291829
more date, these images are the easiest and most effective ways to quickly
18301830
understand how a chunk was formed, especially for particularly complex chunks.
1831-
The visualizer can create two types of chunking- related images:
1831+
The visualizer can create two types of chunking-related images:
18321832
18331833
1. An image that shows the entire instantiation graph at once and how it
18341834
contributed to the learned rule. Use the command visualize ebc analysis to

docs/soar_manual/05_ReinforcementLearning.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ for that operator are only affected by the rewards collected on the `reward-link
345345
for Sand the $Q$-values of subsequent RL operators selected in `S`.
346346
347347
The only exception to this independence is when a selected RL operator forces an
348-
operator- no-change impasse. When this occurs, the number of decision cycles the
348+
operator-no-change impasse. When this occurs, the number of decision cycles the
349349
RL operator at the superstate remains selected is dependent upon the processing
350350
in the impasse state. Consider the operator trace in the following figure:
351351
@@ -442,7 +442,7 @@ determines how operators are selected based on their
442442
numeric-indifferent preferences. Although all the indifferent selection
443443
settings are valid regardless of how the numeric-indifferent preferences were
444444
arrived at, the `epsilon-greedy` and `boltzmann` settings are specifically designed
445-
for use with RL and cor- respond to the two most common exploration strategies.
445+
for use with RL and correspond to the two most common exploration strategies.
446446
In an effort to maintain backwards compatibility, the default exploration
447447
policy is `softmax`. As a result, one should change to `epsilon-greedy` or
448448
`boltzmann` when the reinforcement learning mechanism is enabled.

docs/soar_manual/06_SemanticMemory.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Semantic Memory
55

66
Soar’s semantic memory is a repository for long-term declarative knowledge,
7-
supplement- ing what is contained in short-term working memory (and production
7+
supplementing what is contained in short-term working memory (and production
88
memory). Episodic memory, which contains memories of the agent’s experiences,
99
is described in [Chapter 7](./07_EpisodicMemory.md). The knowledge encoded in
1010
episodic memory is organized temporally, and specific information is embedded
@@ -200,7 +200,7 @@ and querying of knowledge. The semantic store can be maintained in memory or on
200200
disk (per the database and path parameters; see
201201
[`smem` command](../reference/cli/cmd_smem.md)). If the store is located on
202202
disk, users can use any standard SQLite programs/components to access/query its
203-
contents. However, using a disk- based semantic store is very costly
203+
contents. However, using a disk-based semantic store is very costly
204204
(performance is discussed in greater detail in Section
205205
[Performance](#performance)), and running in memory is recommended for most
206206
runs.
@@ -354,7 +354,7 @@ augmentations include other LTIs in smem, they too are instantiated into new
354354
short-term identifiers in working memory.
355355

356356
It is possible that multiple long-term identifiers match the cue equally well.
357-
In this case, se- mantic memory will retrieve the long-term identifier that was
357+
In this case, semantic memory will retrieve the long-term identifier that was
358358
most recently stored/retrieved. (More accurately, it will retrieve the LTI with
359359
the greatest activation value. See below.)
360360

@@ -472,8 +472,8 @@ Spreading activation values are updated each decision cycle only as needed for
472472
specific smem retrievals. For efficiency, two limits exist for the amount of
473473
spread calculated. The `spreading-limit` parameter limits how many LTIs can
474474
receive spread from a given spreading source LTI. By default, this value is
475-
(300). Spread is distributed in a magnitude- first manner to all descendants of
476-
a source. (Without edge-weights, this simplifies to breadth- first.) Once the
475+
(300). Spread is distributed in a magnitude-first manner to all descendants of
476+
a source. (Without edge-weights, this simplifies to breadth-first.) Once the
477477
number of LTIs that have been given spread from a given source reaches the max
478478
value indicated by `spreading-limit`, no more is calculated for that source that
479479
update cycle, and the next spreading source’s contributions are calculated. The
@@ -614,7 +614,7 @@ suggests to SQLite how many pages are available for the cache. Total cache size
614614
is the product of these two parameter settings. The cache memory is not pre-
615615
allocated, so short/small runs will not necessarily make use of this space.
616616
Generally speaking, a greater number of cache pages will benefit query time, as
617-
SQLite can keep necessary meta- data in memory. However, some documented
617+
SQLite can keep necessary meta-data in memory. However, some documented
618618
situations have shown improved performance from decreasing cache pages to
619619
increase memory locality. This is of greater concern when dealing with
620620
file-based databases, versus in-memory. The size of each page, however, may be
@@ -636,7 +636,7 @@ for writes to complete before continuing execution. Second, transaction
636636
journaling is turned off (journalmode pragma), thus groups of modifications to
637637
the semantic store are not atomic (and thus interruptions due to
638638
application/os/hardware failure could lead to inconsistent database state).
639-
Finally, upon initialization, semantic mem- ory maintains a continuous exclusive
639+
Finally, upon initialization, semantic memory maintains a continuous exclusive
640640
lock to the database (locking mode pragma), thus other applications/agents
641641
cannot make simultaneous read/write calls to the database (thereby reducing the
642642
need for potentially expensive system calls to secure/release file locks).

0 commit comments

Comments
 (0)