Compare commits
28 Commits
Author | SHA1 | Date | |
---|---|---|---|
d86b1e7dbd | |||
b9e8ca4157 | |||
fd696a87d4 | |||
c0e93e5e27 | |||
56f9cf6e31 | |||
bac041dd60 | |||
2671e92b01 | |||
f91930c41d | |||
df31fda99c | |||
819bcebce0 | |||
edc0e2a39f | |||
7f49c1c065 | |||
20c9a0c1a5 | |||
42d1ac9bb7 | |||
9869d369c4 | |||
5d8b7af28d | |||
efc00f3473 | |||
578c350b7b | |||
f85f8a4637 | |||
7d57800046 | |||
bdc69ceea7 | |||
5f9af90e80 | |||
4d7ecf8258 | |||
04902214b7 | |||
0bfd93150f | |||
96a5f25e02 | |||
d4c4d3fe75 | |||
33808b4906 |
10
.dockerignore
Normal file
10
.dockerignore
Normal file
@ -0,0 +1,10 @@
|
||||
README.md
|
||||
LICENSE
|
||||
.pre-commit-config.yaml
|
||||
.gitignore
|
||||
.clang-format
|
||||
examples
|
||||
Dockerfile
|
||||
build
|
||||
builddir
|
||||
out
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -4,3 +4,6 @@ builddir
|
||||
*.kb
|
||||
*.obk
|
||||
!examples/*.obk
|
||||
sqlite/*.c
|
||||
sqlite/*.h
|
||||
out
|
||||
|
26
Dockerfile
Normal file
26
Dockerfile
Normal file
@ -0,0 +1,26 @@
|
||||
FROM ubuntu:22.04 AS build-prep
|
||||
RUN apt update && apt upgrade -y
|
||||
RUN apt install -y llvm clangd meson ninja-build pkg-config libsqlite3-dev doxygen graphviz wget unzip
|
||||
WORKDIR /obelisk
|
||||
COPY . .
|
||||
RUN ./sqlite.sh
|
||||
|
||||
FROM build-prep AS build-machine
|
||||
RUN meson --prefix=/usr build
|
||||
RUN cd build && ninja -v
|
||||
|
||||
FROM build-machine AS build-machine-intermediate
|
||||
RUN cd /obelisk/build/src/lib && rm -rf *.h *.p models
|
||||
|
||||
FROM scratch AS obelisk
|
||||
COPY --from=build-machine-intermediate /obelisk/build/src /bin/
|
||||
COPY --from=build-machine-intermediate /obelisk/build/src/lib /lib/
|
||||
COPY --from=build-machine-intermediate /obelisk/build/doc/man /man/
|
||||
COPY --from=build-machine-intermediate /obelisk/build/doc/html /doc/
|
||||
ENTRYPOINT [ "/bin/obelisk" ]
|
||||
|
||||
FROM scratch AS binaries
|
||||
COPY --from=obelisk /bin/obelisk /bin/
|
||||
COPY --from=obelisk /lib /lib/
|
||||
COPY --from=obelisk /man /man/
|
||||
COPY --from=obelisk /doc /doc/
|
52
README.md
Normal file
52
README.md
Normal file
@ -0,0 +1,52 @@
|
||||
# Obelisk
|
||||
|
||||
The Obelisk project is a declarative language designed to help with the implementation of Artificial Intelligence using an easy to use logical programming language.
|
||||
|
||||
## Build requirements
|
||||
|
||||
- Meson
|
||||
- Ninja
|
||||
- LLVM 14
|
||||
- sqlite 3 library and headers(in debian libsqlite3-dev)
|
||||
- C++ 17
|
||||
- C 17
|
||||
|
||||
## Build
|
||||
|
||||
### Normal build
|
||||
|
||||
```
|
||||
./sqlite.sh
|
||||
meson builddir
|
||||
cd buildir
|
||||
ninja
|
||||
```
|
||||
|
||||
This process will generate the binary "obelisk", a shared library "libobelisk.so", and a static library "libobelisk.a".
|
||||
|
||||
The binary is used to compile and create obelisk knowledge bases and the the libraries can be linked against to consult the Obelisk knowledge base from any software that can link with the libraries.
|
||||
|
||||
### Build in docker image
|
||||
|
||||
```
|
||||
docker build ./ --output=out
|
||||
```
|
||||
|
||||
This will create a directory called out which will contain the binaries, libraries, and generated documentation.
|
||||
|
||||
## Install
|
||||
|
||||
```
|
||||
ninja install
|
||||
```
|
||||
|
||||
This will install the Obelisk cli and the Obelisk library globally. You can also copy the resulting shared and/or static library to a project to link against and use an Obelisk knowledge base.
|
||||
|
||||
## License
|
||||
|
||||
Obelisk is licensed under the [The 3-Clause BSD License](LICENSE).
|
||||
|
||||
## Authors
|
||||
|
||||
- Christopher Cromer
|
||||
- Martín Araneda
|
@ -1,7 +1,7 @@
|
||||
project('obelisk',
|
||||
'c',
|
||||
'cpp',
|
||||
version : '1.0.1',
|
||||
version : '1.0.4',
|
||||
license : 'BSD-3-Clause',
|
||||
default_options : [
|
||||
'warning_level=3',
|
||||
|
11
sqlite.sh
Executable file
11
sqlite.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
VERSION=sqlite-amalgamation-3410000
|
||||
|
||||
pushd sqlite
|
||||
wget https://sqlite.org/2023/${VERSION}.zip
|
||||
unzip ${VERSION}.zip
|
||||
cp ${VERSION}/sqlite3.c .
|
||||
cp ${VERSION}/sqlite3.h .
|
||||
rm -rf ${VERSION} ${VERSION}.zip
|
||||
popd
|
245165
sqlite/sqlite3.c
245165
sqlite/sqlite3.c
File diff suppressed because it is too large
Load Diff
12970
sqlite/sqlite3.h
12970
sqlite/sqlite3.h
File diff suppressed because it is too large
Load Diff
@ -250,6 +250,7 @@ void obelisk::KnowledgeBase::checkRule(obelisk::Fact& fact)
|
||||
auto updateFact = rule.getFact();
|
||||
updateFact.setIsTrue(1.0);
|
||||
updateFact.updateIsTrue(dbConnection_);
|
||||
checkRule(updateFact);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ namespace obelisk
|
||||
*
|
||||
*/
|
||||
std::string usageMessage = R"(Usage: obelisk [OPTION]... [FILE]...
|
||||
Compile the obelisk source FILE(s) into knoweldge base and library.
|
||||
Compile the obelisk source FILE(s) into knowledge base and library.
|
||||
|
||||
Options:
|
||||
-h, --help shows this help/usage message
|
||||
|
Loading…
Reference in New Issue
Block a user