Skip to content

Commit

Permalink
Start migrating the downloads section
Browse files Browse the repository at this point in the history
There are a *lot* of download pages, so we'll start with the headers, structure,
and a sort of template we can use for the others.

See #28.
  • Loading branch information
garfieldnate committed Jun 30, 2024
1 parent d7801fb commit c7b82ed
Show file tree
Hide file tree
Showing 15 changed files with 647 additions and 100 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ The site is built using the [MkDocs](https://www.mkdocs.org/), a static site
generator that uses Markdown files to generate a website. The theme is
[Material for MkDocs](https://squidfunk.github.io/mkdocs-material/).

Large files that are not displayed but rather downloaded not be stored here;
instead, put them in the [website downloads repository](https://github.com/SoarGroup/website-downloads).

## Setup/Running

```shell
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
tags:
- agent debugging
- episodic memory
---

# Episodic Memory Size Tool

This tool is a command-line python script to determine the size of episodes in
episodic memory.

## Download Link

[Episodic_Memory_Sizer.zip](https://github.com/SoarGroup/website-downloads/raw/main/AgentDevelopmentTools/Episodic_Memory_Sizer.zip)

## Documentation

None

## Developer

Justin Li

## Soar Versions

Any with episodic memory; version must match the one that produced the DB.

## Language

Python
12 changes: 12 additions & 0 deletions docs/downloads/agent_development_tools/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: agent development tools
---

# Downloads: Agent Development Tools

In this category you'll find tools to help you develop your Soar agents.
This includes IDEs for developing Soar agents, a variety of both real-time and
offline debugging tools and some syntax coloring add-ons for certain text
editors.

* [Episodic Memory Size Tool](./episodic_memory_size_tool.md)
52 changes: 52 additions & 0 deletions docs/downloads/agents/15-puzzle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
tags:
- chunking
- look-ahead search
---

# 15-Puzzle Agent

This agent is a straightforward implementation of the fifteen-puzzle. It uses
look-ahead search to solve the puzzle with a simple evaluation function. This
agent also demonstrates chunking.

The puzzle consists of fifteen sliding tiles, numbered by digits from 1 to 15
arranged in a 4 by 4 array of sixteen cells. One of the cells is always empty,
and any adjacent tile can be moved into the empty cell. The initial state is
some arbitrary arrangement of the tiles. The goal state is the arrangement of
tiles such that they are ordered from lowest to highest value. The problem is to
find a sequence of moves from the initial state to the goal state.

## Soar Capabilities

- Look-ahead subgoaling
- Chunking

## Download Links

- [Fifteen_Puzzle_Agent.zip](https://github.com/SoarGroup/website-downloads/raw/main/Agents/Fifteen_Puzzle_Agent.zip)

## External Environment

None.

## Default Rules

selection.soar

## Associated Publications

None

## Developer

John Laird

## Soar Versions

- Soar 8
- Soar 9

## Project Type

VisualSoar
16 changes: 16 additions & 0 deletions docs/downloads/agents/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: agents
---

# Downloads: Agents

In this category, you'll find a variety of agents developed for a wide range of
different tasks and environments. You will find a full description of the agent,
its capabilities and problem solving approach as well, as a download link. If
the agent requires an environment, a link will be provided. We'd highly
encourage you to submit your own agents for use by the greater Soar community.
To do so, you can send your zipped up submission with a full description (try to
include all of the type of information we include on each download page) to
[John Laird](mailto:laird@umich.edu) with the subject "Soar Agent Submission".

* [15-Puzzle Agent](./15-puzzle.md)
129 changes: 129 additions & 0 deletions docs/downloads/domains/dice.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
---
Tags:
- environments
- liar's dice
- reinforcement learning
---

# Dice

Dice is a java implementation of a game often called *Liar's Dice*.

Here is an abbreviated description of the rules used in our implementation of
this domain:

* Each player gets five six-sided dice and a cup to conceal their dice from
other players.
* To begin each round, all players roll their dice under their cups and look
at their new 'hand' while keeping it concealed from the other players. The first
player begins bidding, picking a quantity of a face number. The quantity states
the player's opinion on how many of the chosen face have been rolled in total on
the table.
* Each player has two choices during his turn: make a higher bid, or challenge
the previous bid as being wrong. Raising the bid means either increasing the
quantity, or the face value, or both, according to the specific bidding rules used.
* The 1s ("aces") are wild and count as two in a bid, for example to outbid a
bid of 2 one's, you must bid at least 5 of a non-wild face.
* If the current player thinks the previous player's bid is wrong, he
challenges it, and then all dice are revealed to determine whether the bid was
valid. If the number of the relevant face revealed is at least as high as the
bid, then the bid is valid, in which case the bidder wins. Otherwise, the
challenger wins.

\* Description of game rules derived from its [Wikipedia page](
https://en.wikipedia.org/wiki/Liar%27s_dice)
and is released under the [Creative Commons license](http://creativecommons.org/licenses/by-sa/3.0/).

## Environment Properties

* Uncertainty
* incomplete knowledge
* multi-player

## Download Links

[Dice.zip](https://github.com/SoarGroup/website-downloads/raw/main/Domains/Dice.zip)

## Associated Agents

A variety of agents is included in the environment download.

## Documentation

* Requires these jars on the classpath:
* sml.jar
* soar-qna-9.3.1.jar
* soar-smljava-9.3.1.jar

* Also needs the environment variables `SOAR_HOME` set and `LD_LIBRARY_PATH` on
Linux (`DYLD_LIBRARY_PATH` on OSX, `PATH` on Windows) set to `$SOAR_HOME/lib`.

* To import into Eclipse, go to File > New > Java Project, un-check "Use Default
Location" and under "Location" select the root directory of the project. All
other default settings should be fine.

* To run, right-click on the SoarMatch?.java file and select Run As > Java Application.

### IO link Specification

#### Code

```plaintext
input-link
dice-probability
id (any) copied from request
probability (float) (0..1)
output-link
compute-dice-probability
id (any) user-data to be copied to input-link to correlate result
number-of-dice (int) (1..)
number-of-faces (int) (1..) usually 3 (normal, ones wild) or 6 (ones or special rules)
count (int) (1..number-of-dice) Target number
predicate (string) (eq ne ge gt le lt)
Predicate shorthand:
eq: equal ==
ne: not equal !=
ge: greater than or equal >=
gt: greater than >
le: less than or equal <=
lt: less than <
```

#### Examples

```text
id: 1, number-of-dice: 3, number-of-faces: 6, count: 2, predicate: eq
yields: id: 1, probability: 0.06944
id: 2.0, number-of-dice: 5, number-of-faces: 3, count: 3, predicate: ge
yields: id: 2.0, probability: 0.20988
id: charlie, number-of-dice: 24, number-of-faces: 6, count: 6, predicate lt
yields: id: charlie, probability: 0.80047
Quick test using add-wme on empty agent:
aw i3 compute-dice-probability *
aw i4 id 1
aw i4 number-of-dice 5
aw i4 number-of-faces 3
aw i4 count 3
aw i4 predicate ge
```

## Associated Publications

Pending

## Developer

Miller Tinkerhess

## Soar Versions

Soar 9

## Language

Java
12 changes: 12 additions & 0 deletions docs/downloads/domains/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: domains
---

# Downloads: Domains

This category contains an extensive list of domains you can develop agents in.
Some are game-like environment simulators while other provide access to an
external knowledge source for your agent to process and manipulate, for example
WordNet or SoarQnA. All of these domains are fully interfaced with Soar already.

* [Dice](./dice.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
tags:
- C++
---

# C++ Command Line Filter Example: FilterC

FilterC demonstrates how to write a client in C++ that intercepts commands to
implement a simple command line.

## Download Links

[Soar_Filter_C_Example.zip](https://github.com/SoarGroup/website-downloads/raw/main/Examples-and-Unsupported/Soar_Filter_C_Example.zip)

## Documentation

While there is no explicit documentation, this example code is commented.

## Developer

Douglas Pearson

## Soar Versions

* Soar 8
* Soar 9

## Language

C++
7 changes: 7 additions & 0 deletions docs/downloads/examples_and_unsupported/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Downloads: Examples and Unsupported

This category contains example code and wrapper functions to help you build your
own environments in a variety of language, namely C++, PHP, Python, Java and C.
This code is unsupported but may still work.

* [C++ Command Line Filter Example](./cpp_command_line_filter_example.md)
Loading

0 comments on commit c7b82ed

Please sign in to comment.