Skip to content

Commit

Permalink
Annad (#290)
Browse files Browse the repository at this point in the history
* renamed project to annad

* removed legacy spec

* updated vendor deps

* updated glide files
  • Loading branch information
xh3b4sd committed Nov 22, 2016
1 parent 4f6a8a7 commit 868620c
Show file tree
Hide file tree
Showing 103 changed files with 517 additions and 744 deletions.
6 changes: 3 additions & 3 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ done via the Github web interface when merging a PR.
### docs
Pull requests are only accepted and merged when there is proper documentation.

- Conceptual documentation needs to be provided here: https://github.com/xh3b4sd/anna/tree/master/doc/concept.
- Process documentation needs to be provided here: https://github.com/xh3b4sd/anna/tree/master/doc/diary.
- Conceptual documentation needs to be provided here: https://github.com/the-anna-project/annad/tree/master/doc/concept.
- Process documentation needs to be provided here: https://github.com/the-anna-project/annad/tree/master/doc/diary.
- Code documentation needs to be provided within the code: http://blog.golang.org/godoc-documenting-go-code.

### tests
Expand All @@ -34,6 +34,6 @@ tests.

### branches
When collaborating and creating branches within the core repository
https://github.com/xh3b4sd/anna branches should be deleted ones they are merged.
https://github.com/the-anna-project/annad branches should be deleted ones they are merged.
This prevents loosing the overview and keeps the repository in a clean state
branch wise.
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/blog/1506-closing-issues-via-pull-requests for more
information.

### checklist
- [ ] Make sure you read and understood the [CONTRIBUTING.md](https://github.com/xh3b4sd/anna/blob/master/.github/CONTRIBUTING.md).
- [ ] Make sure you read and understood the [CONTRIBUTING.md](https://github.com/the-anna-project/annad/blob/master/.github/CONTRIBUTING.md).
- [ ] Make sure you applied sufficient labels, milestone and assignee.
- [ ] Make sure all TODOs are addressed.
- [ ] Make sure there is sufficient documentation.
Expand Down
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[![maturity](https://img.shields.io/badge/status-alpha-red.svg)](https://github.com/xh3b4sd/anna) [![build status](https://travis-ci.org/xh3b4sd/anna.svg?branch=master)](https://travis-ci.org/xh3b4sd/anna) [![code coverage](https://codecov.io/github/xh3b4sd/anna/coverage.svg?branch=master)](https://codecov.io/github/xh3b4sd/anna?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/xh3b4sd/anna)](https://goreportcard.com/report/github.com/xh3b4sd/anna) [![motivation](https://img.shields.io/badge/made%20with-%E2%99%A1-ff69b4.svg)](https://github.com/xh3b4sd/anna) [![GoDoc](https://godoc.org/github.com/xh3b4sd/anna?status.svg)](http://godoc.org/github.com/xh3b4sd/anna)
[![maturity](https://img.shields.io/badge/status-alpha-red.svg)](https://github.com/the-anna-project/annad) [![build status](https://travis-ci.org/the-anna-project/annad.svg?branch=master)](https://travis-ci.org/the-anna-project/annad) [![code coverage](https://codecov.io/gh/the-anna-project/annad/coverage.svg?branch=master)](https://codecov.io/gh/the-anna-project/annad?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/the-anna-project/annad)](https://goreportcard.com/report/github.com/the-anna-project/annad) [![motivation](https://img.shields.io/badge/made%20with-%E2%99%A1-ff69b4.svg)](https://github.com/the-anna-project/annad) [![GoDoc](https://godoc.org/github.com/the-anna-project/annad?status.svg)](http://godoc.org/github.com/the-anna-project/annad)

# anna
Anna, Artificial Neural Network Aspiration, aims to be self-learning and
self-improving software.
# annad
The annad package implements a command line tool to run the neural network of
the anna project. Anna, Artificial Neural Network Aspiration, aims to be
self-learning and self-improving software.

# abstract
> AI is the last invention humanity will ever need to make.
Expand Down Expand Up @@ -33,7 +34,7 @@ way.
# documentation
All documentation is done using markdown file within the [doc/](doc) directory.
Code documentation can also be found at
[godoc](https://godoc.org/github.com/xh3b4sd/anna).
[godoc](https://godoc.org/github.com/the-anna-project/annad).

- [api](doc/api)
- [concept](doc/concept)
Expand Down
2 changes: 1 addition & 1 deletion command/boot/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (

"github.com/spf13/cobra"

"github.com/the-anna-project/annad/object/config"
servicespec "github.com/the-anna-project/spec/service"
"github.com/xh3b4sd/anna/object/config"
)

// New creates a new boot command.
Expand Down
24 changes: 12 additions & 12 deletions command/boot/service_collection.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ import (
"github.com/cenk/backoff"
kitlog "github.com/go-kit/kit/log"

"github.com/the-anna-project/annad/service/activator"
"github.com/the-anna-project/annad/service/connection"
"github.com/the-anna-project/annad/service/endpoint"
"github.com/the-anna-project/annad/service/endpoint/metric"
"github.com/the-anna-project/annad/service/endpoint/text"
"github.com/the-anna-project/annad/service/feature"
"github.com/the-anna-project/annad/service/forwarder"
"github.com/the-anna-project/annad/service/network"
"github.com/the-anna-project/annad/service/storage"
memorystorage "github.com/the-anna-project/annad/service/storage/memory"
"github.com/the-anna-project/annad/service/storage/redis"
"github.com/the-anna-project/annad/service/tracker"
"github.com/the-anna-project/collection"
memoryfs "github.com/the-anna-project/fs/memory"
"github.com/the-anna-project/id"
Expand All @@ -19,18 +31,6 @@ import (
"github.com/the-anna-project/random"
objectspec "github.com/the-anna-project/spec/object"
servicespec "github.com/the-anna-project/spec/service"
"github.com/xh3b4sd/anna/service/activator"
"github.com/xh3b4sd/anna/service/connection"
"github.com/xh3b4sd/anna/service/endpoint"
"github.com/xh3b4sd/anna/service/endpoint/metric"
"github.com/xh3b4sd/anna/service/endpoint/text"
"github.com/xh3b4sd/anna/service/feature"
"github.com/xh3b4sd/anna/service/forwarder"
"github.com/xh3b4sd/anna/service/network"
"github.com/xh3b4sd/anna/service/storage"
memorystorage "github.com/xh3b4sd/anna/service/storage/memory"
"github.com/xh3b4sd/anna/service/storage/redis"
"github.com/xh3b4sd/anna/service/tracker"
)

func (c *Command) newServiceCollection() servicespec.ServiceCollection {
Expand Down
4 changes: 2 additions & 2 deletions command/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package command
import (
"github.com/spf13/cobra"

"github.com/xh3b4sd/anna/command/boot"
"github.com/xh3b4sd/anna/command/version"
"github.com/the-anna-project/annad/command/boot"
"github.com/the-anna-project/annad/command/version"
)

// New creates a new annad command.
Expand Down
2 changes: 1 addition & 1 deletion doc/concept/clg.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ implementing some functionality.

Random fact: currently Anna is capable of more than 130 CLG implementations.
This number is expected to be raised even further. For now manually, later on
automatically. See https://godoc.org/github.com/xh3b4sd/anna/spec#CLGIndex.
automatically. See https://godoc.org/github.com/the-anna-project/annad/spec#CLGIndex.

### BI, basic information
BI, Basic Information, represent fundamental information that must be known to
Expand Down
6 changes: 3 additions & 3 deletions doc/concept/client.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# client
Documentation about the client described here refers the go [client
package](https://godoc.org/github.com/xh3b4sd/anna/client). This package
package](https://godoc.org/github.com/the-anna-project/annad/client). This package
provides a client implementation of Anna's API in [golang](https://golang.org),
used to communicate with the [server](server.md). See also the godoc of [the
server package](https://godoc.org/github.com/xh3b4sd/anna/server). The client
server package](https://godoc.org/github.com/the-anna-project/annad/server). The client
described here is used for instance in the
[annactl package](https://godoc.org/github.com/xh3b4sd/anna/annactl). For more
[annactl package](https://godoc.org/github.com/the-anna-project/annad/annactl). For more
information on this one see [the annactl documentation](annactl.md). The
current implementation of the client and the server makes use of
https://github.com/go-kit/kit.
2 changes: 1 addition & 1 deletion doc/concept/connection.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ within the connection space.

1. *Bias* is some manually provided hint, intended to guide some CLG tree into a
certain direction. Read more on this in this issue:
https://github.com/xh3b4sd/anna/issues/44.
https://github.com/the-anna-project/annad/issues/44.

2. *Intuition* is some sort of vague feeling that points into a certain
direction. Drawing distantly related connections across multiple levels can
Expand Down
6 changes: 3 additions & 3 deletions doc/concept/data_flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ very left is described in which layer the shown data flow actually happens.

- Entrypoint here is [annactl](annactl.md), the command line client.
[input](input.md) is received from the user and transformed into a
[TextRequest](https://godoc.org/github.com/xh3b4sd/anna/object/networkresponse#TextRequest).
[TextRequest](https://godoc.org/github.com/the-anna-project/annad/object/networkresponse#TextRequest).
This request object is provided to the [client](client.md).
- The client is asked to execute some business logic with respect to the given
TextRequest, which is transformed into a
[StreamTextRequest](https://godoc.org/github.com/xh3b4sd/anna/object/networkresponse#StreamTextRequest)
[StreamTextRequest](https://godoc.org/github.com/the-anna-project/annad/object/networkresponse#StreamTextRequest)
and send to the [server](server.md).
- The server receives the StreamTextRequest and transforms it back into a
TextRequest. This is then forwarded to the [network](network.md).
- The network takes the TextRequest, transforms it to a
[NetworkPayload](https://godoc.org/github.com/xh3b4sd/anna/spec#NetworkPayload).
[NetworkPayload](https://godoc.org/github.com/the-anna-project/annad/spec#NetworkPayload).
[CLGs](clg.md) take over with by processing and dispatching further network
payloads through the neural network. At some point the neural network decides
to stop processing and returns the output as shown below until data is flown
Expand Down
2 changes: 1 addition & 1 deletion doc/concept/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
A distribution is a calculation object that describes the distribution of
vectors within space. This vectors can be of arbitrary dimensions. That way
characteristics of features and their location in space can be represented and
alanysed. See https://godoc.org/github.com/xh3b4sd/anna/spec#Distribution for
alanysed. See https://godoc.org/github.com/the-anna-project/annad/spec#Distribution for
implementation details.

### balance system
Expand Down
2 changes: 1 addition & 1 deletion doc/concept/instrumentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Anna project we oriented on the [prometheus project](https://prometheus.io).
Within the project's code we make use of the [prometheus client
library](https://godoc.org/github.com/prometheus/client_golang/prometheus).
This client is abstracted by the [instrumentation
package](https://godoc.org/github.com/xh3b4sd/anna/instrumentation), which can
package](https://godoc.org/github.com/the-anna-project/annad/instrumentation), which can
be used to emit metrics to your likes. Note there is a memory implementation
that does basically nothing. To actually emit metrics there need to be the
configured prometheus implementation used. For graph visualization
Expand Down
2 changes: 1 addition & 1 deletion doc/concept/logging.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# logging
Logging is one important aspect to comprehend what is going on within a
process. Check the code documentation for technical details on the logging
implementation: https://godoc.org/github.com/xh3b4sd/anna/log. Further logging
implementation: https://godoc.org/github.com/the-anna-project/annad/log. Further logging
behaviour can be configured at runtime using [log control](control.md#log).
4 changes: 2 additions & 2 deletions doc/concept/permutation_factory.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,5 @@ This is how the Nth factory permutation looks like.

See the following code documentation for more information.

- https://godoc.org/github.com/xh3b4sd/anna/service/permutation
- https://godoc.org/github.com/xh3b4sd/anna/spec#PermutationFactory
- https://godoc.org/github.com/the-anna-project/annad/service/permutation
- https://godoc.org/github.com/the-anna-project/annad/spec#PermutationFactory
2 changes: 1 addition & 1 deletion doc/concept/server.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# server
Documentation about the server described here refers to the [server
package](https://godoc.org/github.com/xh3b4sd/anna/server) written in
package](https://godoc.org/github.com/the-anna-project/annad/server) written in
[golang](https://golang.org). The server provides Anna's API to execute her
business logic from remote. The [client](client.md) may communicate with the
server to ask for any kind of operation of Anna's [interface](interface.md) or
Expand Down
2 changes: 1 addition & 1 deletion doc/development/cheat_sheet.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ $ go list -json ./service/random | jq .Imports
"fmt",
"github.com/cenk/backoff",
"github.com/juju/errgo",
"github.com/xh3b4sd/anna/service/spec",
"github.com/the-anna-project/annad/service/spec",
"io",
"math/big",
"time"
Expand Down
2 changes: 1 addition & 1 deletion doc/development/guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ place. It is hard to come up with decent integration tests. Here we need to
find ways to create integration tests that do not hurt, that are beautiful and
in best case even fast. The last point is in most cases contradictionary.
Anyway [make gotest](makefile.md#gotest) is your friend. Further code coverage
is tracked at https://codecov.io/github/xh3b4sd/anna.
is tracked at https://codecov.io/gh/the-anna-project/annad.

### data format
Data formats depend on the use case. E.g. for simplicity of some network API,
Expand Down
2 changes: 1 addition & 1 deletion doc/development/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export GOPATH=~/gopath

The Anna project is then located here.
```
~/gopath/src/github.com/xh3b4sd/anna
~/gopath/src/github.com/the-anna-project/annad
```

### prerequisites
Expand Down
2 changes: 1 addition & 1 deletion doc/diary/2016_01_11.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ I am quite familiar with it. It is a very nice language providing decent
concurrency patterns. Thus the project setup was rather a pain since the
concept of golangs workspaces is, lets say, suboptimal. A Makefile is required
to ease development. Initial documentation was written. See
[doc](https://github.com/xh3b4sd/anna/tree/78948e3d0da0077444c5434df59fe56d2014a606/doc).
[doc](https://github.com/the-anna-project/annad/tree/78948e3d0da0077444c5434df59fe56d2014a606/doc).

xh3b4sd
2 changes: 1 addition & 1 deletion doc/diary/2016_01_18.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ gateways. Gateways? Read on!

Interfaces were defined yesterday, but as always, the first shot is simply the
first shot. See the [core concept
documentation](https://github.com/xh3b4sd/anna/blob/b16ed18e115219a030a0e0b689ad75a71e54498f/doc/concept/core.md).
documentation](https://github.com/the-anna-project/annad/blob/b16ed18e115219a030a0e0b689ad75a71e54498f/doc/concept/core.md).

xh3b4sd
6 changes: 3 additions & 3 deletions doc/diary/2016_01_24.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ it is super cool and can be used to decouple components.

Meanwhile I was sick of the project structure. One weird thing was the strange
URL for the public godoc. Because the source code was within the folder
`github.com/xh3b4sd/anna`, the URL of the godoc was
`https://godoc.org/github.com/xh3b4sd/anna/src/github.com/xh3b4sd/anna`. This
`github.com/the-anna-project/annad`, the URL of the godoc was
`https://godoc.org/github.com/the-anna-project/annad/src/github.com/the-anna-project/annad`. This
sucked. Now, with some more magic within the `Makefile`, the source code is
right in the project root directory as it should be, and the godoc URL is
`https://godoc.org/github.com/xh3b4sd/anna` as expected.
`https://godoc.org/github.com/the-anna-project/annad` as expected.

xh3b4sd
2 changes: 1 addition & 1 deletion doc/diary/2016_01_27.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ behaviours.

Once some restructuring was done logging was able to be provided for all
objects. Simple print statements are replaced by the injected logger. Check
https://godoc.org/github.com/xh3b4sd/anna/log for more implementational
https://godoc.org/github.com/the-anna-project/annad/log for more implementational
details.

xh3b4sd
4 changes: 2 additions & 2 deletions doc/diary/2016_02_01.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ in all cases and the program had some unpredictable side effects. Something
else was needed. The factory concept was cool though and I wanted to keep it. I
realized there is already something that abstracts communication and decouples
dependencies, the
[gateway](https://github.com/xh3b4sd/anna/blob/43ecdc8c9ce05bb41c3f66bff4dde90a0552dc59/doc/concept/gateway.md)!
[gateway](https://github.com/the-anna-project/annad/blob/43ecdc8c9ce05bb41c3f66bff4dde90a0552dc59/doc/concept/gateway.md)!
So I removed the multi state concept. Made the code cleaner. Made the state
concept work.

Expand All @@ -34,7 +34,7 @@ unmarshaled because interfaces describe functionality, not a structure. Go
cannot know what structure to use when there is just a hint of a interface
type. As soon as there is a real implementation of some interface, go can
lookup the underlying structure and unmarshal bytes into it. To check how it
works, see https://godoc.org/github.com/xh3b4sd/anna/state.
works, see https://godoc.org/github.com/the-anna-project/annad/state.

Finally backup and restore functionality was implemented. When Anna is doing
things it creates state. On shutdown she dumps her state to the file system.
Expand Down
2 changes: 1 addition & 1 deletion doc/diary/2016_02_10.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use the logger.
How does it now look like? The following shows the usage of a new logger. When
logging messages the call to the logger takes log tags that are used to
determine if the log messages should be printed under current log
configurations. See https://godoc.org/github.com/xh3b4sd/anna/spec#Tags for
configurations. See https://godoc.org/github.com/the-anna-project/annad/spec#Tags for
explanations of the tags usage. So I opted for this.

```go
Expand Down
6 changes: 3 additions & 3 deletions doc/diary/2016_03_07.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ looks like.

There was the idea of the job network. I discarded it, thought again about it,
and so on. Back and forth. Now there is a
[scheduler](https://godoc.org/github.com/xh3b4sd/anna/scheduler) managing jobs.
[scheduler](https://godoc.org/github.com/the-anna-project/annad/scheduler) managing jobs.
This is used in the server middlewares, resulting in cleaner code there. Now
when receiving input a job is configured and sends a signal to the core network
over the text gateway. It is possible to provide the expected output along with
Expand All @@ -21,12 +21,12 @@ tests. Got the thing right. Great. There is a memory implementation. With this
we can test the neural networks and everything will be good and shiny.

I added the
[goreportcard](https://goreportcard.com/report/github.com/xh3b4sd/anna) badge.
[goreportcard](https://goreportcard.com/report/github.com/the-anna-project/annad) badge.
There some things were visible that I just fixed. Lots of documentation stuff,
misspelling, code cleanup.

Testing is a big thing since the
[codecov](https://codecov.io/github/xh3b4sd/anna) support and the [chrome
[codecov](https://codecov.io/gh/the-anna-project/annad) support and the [chrome
browser
extension](https://chrome.google.com/webstore/detail/codecov-extension/keefkhehidemnokodkdkejapdgfjmijf).
This is really fun. The numbers call to be optimized. Coverage is at about 80%.
Expand Down
2 changes: 1 addition & 1 deletion doc/diary/2016_03_14.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,6 @@ concepts differ, but the base lines are the same.
Anyway, I thought about crazy things. Artificial minds. See the evaluation
documents as follows.

https://github.com/xh3b4sd/anna/pull/108/files#diff-4bbf5a7fa82a94b1b5acd521f6a108c4
https://github.com/the-anna-project/annad/pull/108/files#diff-4bbf5a7fa82a94b1b5acd521f6a108c4

xh3b4sd
2 changes: 1 addition & 1 deletion doc/diary/2016_03_22.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ channel, some output is received on the other channels.

This idea was now partially implemented as distribution object and instead of
dealing with impulses a distribution represents a population of vectors. See
https://godoc.org/github.com/xh3b4sd/anna/net/pat#NewDistribution. I started
https://godoc.org/github.com/the-anna-project/annad/net/pat#NewDistribution. I started
with this because the goal behind this is to have some feature detection for
sequence analysis. More is yet to come.

Expand Down
2 changes: 1 addition & 1 deletion doc/diary/2016_05_16.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This is the 25th diary entry. One step closer to CLG profile creation.
I managed to implement the CLG profile creation in the first iteration. This
involved the setup of an environment in which Anna can be integrated. For now
there is a local environment in this repository:
https://github.com/xh3b4sd/anna.local. The name is quite cool because the
https://github.com/the-anna-project/annad.local. The name is quite cool because the
domain for the Anna project is https://anna.earth. The domain for the local
environment is http://anna.local. The `anna.local` environment boots up a
[Vagrant]() box using [Virtualbox]() provider and sets up necessary components
Expand Down
Loading

0 comments on commit 868620c

Please sign in to comment.