Skip to content

Commit

Permalink
Update landing page and started guide
Browse files Browse the repository at this point in the history
  • Loading branch information
THinnerichs committed Sep 5, 2023
1 parent 646da48 commit 6c95256
Show file tree
Hide file tree
Showing 12 changed files with 139 additions and 20 deletions.
19 changes: 12 additions & 7 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,19 @@ makedocs(;
sitename="Herb.jl",
repo="https://github.com/Herb-AI/Herb.jl",
pages = [
"Home" => "index.md",
"Basics" => [
"index.md",
"install.md",
"get_started.md",
"concepts.md"
],
"Sub-Modules" => [
"HerbGrammar.jl" => "HerbGrammar.md",
"HerbSearch.jl" => "HerbSearch.md",
"HerbConstraints.jl" => "HerbConstraints.md",
"HerbCore.jl" => "HerbData.md",
"HerbEvaluation.jl" => "HerbEvaluation.md",
"HerbData.jl" => "HerbData.md",
"HerbGrammar.jl" => "HerbGrammar/index.md",
"HerbSearch.jl" => "HerbSearch/index.md",
"HerbConstraints.jl" => "HerbConstraints/index.md",
"HerbCore.jl" => "HerbData/index.md",
"HerbEvaluation.jl" => "HerbEvaluation/index.md",
"HerbData.jl" => "HerbData/index.md",
],
],
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# HerbConstraints.jl Documentation
# [HerbConstraints.jl Documentation](@id HerbConstraints_docs)

```@meta
CurrentModule=HerbConstraints
Expand Down
6 changes: 3 additions & 3 deletions docs/src/HerbCore.md → docs/src/HerbCore/index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# HerbConstraints.jl Documentation
# [HerbCore.jl Documentation](@id HerbCore_docs)

```@meta
CurrentModule=HerbConstraints
CurrentModule=HerbCore
```

```@autodocs
Modules = [HerbConstraints]
Modules = [HerbCore]
Order = [:type, :const, :macro, :function]
```

Expand Down
6 changes: 3 additions & 3 deletions docs/src/HerbData.md → docs/src/HerbData/index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# HerbConstraints.jl Documentation
# [HerbData.jl Documentation](@id HerbData_docs)

```@meta
CurrentModule=HerbConstraints
CurrentModule=HerbData
```

```@autodocs
Modules = [HerbConstraints]
Modules = [HerbData]
Order = [:type, :const, :macro, :function]
```

Expand Down
15 changes: 15 additions & 0 deletions docs/src/HerbEvaluation/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# [HerbEvaluation.jl Documentation](@id HerbEvaluation_docs)

```@meta
CurrentModule=HerbEvaluation
```

```@autodocs
Modules = [HerbEvaluation]
Order = [:type, :const, :macro, :function]
```

## Index

```@index
```
2 changes: 1 addition & 1 deletion docs/src/HerbGrammar.md → docs/src/HerbGrammar/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# HerbGrammar.jl Documentation
# [HerbGrammar.jl Documentation](@id HerbGrammar_docs)

```@meta
CurrentModule=HerbGrammar
Expand Down
Empty file removed docs/src/HerbSearch.md
Empty file.
6 changes: 3 additions & 3 deletions docs/src/HerbEvaluation.md → docs/src/HerbSearch/index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# HerbConstraints.jl Documentation
# [HerbSearch.jl Documentation](@id HerbSearch_docs)

```@meta
CurrentModule=HerbConstraints
CurrentModule=HerbSearch
```

```@autodocs
Modules = [HerbConstraints]
Modules = [HerbSearch]
Order = [:type, :const, :macro, :function]
```

Expand Down
2 changes: 2 additions & 0 deletions docs/src/concepts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Architecture and core concepts

22 changes: 22 additions & 0 deletions docs/src/get_started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Getting Started

You can either paste this code into the Julia REPL or into a seperate file, e.g. `get_started.jl`.

```julia
using HerbSearch, HerbData, HerbInterpret

# define our very simple context-free grammar
# Can add and multiply an input variable x or the integers 1,2.
g = @cfgrammar begin
Number = |(1:2)
Number = x
Number = Number + Number
Number = Number * Number
end

problem = Problem([IOExample(Dict(:x => x), 2x+1) for x 1:5])
solution = search(g₁, problem, :Number, max_depth=3)

test_with_input(SymbolTable(g₁), solution, Dict(:x => 6))
```

45 changes: 43 additions & 2 deletions docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,50 @@
CurrentModule=Herb
```

# Herb.jl Documentation
# [Herb.jl](https://github.com/Herb-AI/Herb.jl)
*A library for defining and efficiently solving program synthesis tasks in Julia.*

## Why Herb.jl?

When writing research software we almost always investigate highly specific properties or algorithms of our domain, leading to us building the tools from scratch over and over again. The very same holds for the field of program synthesis: Tools are hard to run, benchmarks are hard to get and prepare, and its hard to adapt our existing code to a novel idea.

Herb.jl will take care of this for you and helps you defining, solving and extending your program synthesis problems.

Herb.jl provides...
- a unified and universal framework for program synthesis
- `Herb.jl` allows you to describe all sorts of program synthesis problems using context-free grammars
- a number of state-of-the-art benchmarks and solvers already implemented and usable out-of-the-box

Herb.jl's sub-packages provide fast and easily extendable implementations of
- various static and dynamic search strategies,
- learning search strategies, sampling techniques and more,
- constraint formulation and propagation,
- easy grammar formulation and usage,
- wide-range of usable program interpreters and languages + the possibility to use your own, and
- efficient data formulation.

## Why Julia?


## Sub-Modules

Herb's functionality is distributed among several sub-packages:
- [HerbCore.jl](@ref HerbCore_docs): The core of Herb.jl defining core concepts to avoid circular dependencies.
- [HerbGrammar.jl](@ref HerbGrammar_docs):
- [HerbData.jl](@ref HerbData_docs):
- [HerbEvaluation.jl](@ref HerbEvaluation_docs):
- [HerbSearch.jl](@ref HerbSearch_docs):
- [HerbConstraints.jl](@ref HerbConstraints_docs):


## Basics:

```@contents
Pages = [ "def_pomdp.md", "interfaces.md"]
Depth = 3
```


This is a test.

```@contents
```
Expand Down
34 changes: 34 additions & 0 deletions docs/src/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Installation Guide

Before installing Herb.jl, ensure that you have a running Julia distribution installed (Julia version 1.7 and above were tested).

Thanks to Julia's package management, installing Herb.jl is very straighforward.
Activate the default Julia REPL using

```shell
julia
```

or from within one of your projects using

```shell
julia --project=.
```

From the Julia REPL run
```julia
]
add Herb
```

or instead running

```julia
import Pkg
Pkg.add("Herb")
```

which will both install all dependencies automatically.

And just like this you are done! Welcome to Herb.jl!

0 comments on commit 6c95256

Please sign in to comment.