Compare commits

...

28 Commits

Author SHA1 Message Date
d86b1e7dbd
Merge pull request #2 from cromerc/develop
Develop
2023-11-14 13:26:47 -03:00
b9e8ca4157
Merge pull request #1 from cromerc/docker
Docker
2023-11-14 13:26:21 -03:00
fd696a87d4
add docker build and instructions 2023-11-14 13:25:38 -03:00
c0e93e5e27
add out directory to ignore file for git 2023-11-14 13:25:12 -03:00
56f9cf6e31
make it clear that it's the sqlite3 library and not the cli 2023-11-14 11:00:01 -03:00
bac041dd60 Merge pull request 'develop' (#29) from develop into master
Reviewed-on: #29
2023-05-02 23:27:50 -04:00
2671e92b01 Merge branch 'master' into develop 2023-05-02 23:27:19 -04:00
f91930c41d Merge pull request 'feature/remove_sqlite' (#28) from feature/remove_sqlite into develop
Reviewed-on: #28
2023-05-02 23:26:54 -04:00
df31fda99c
Prepare 1.0.4. 2023-05-02 23:26:01 -04:00
819bcebce0
Add script and instructions to download SQLite when building. 2023-05-02 23:24:43 -04:00
edc0e2a39f
Ignore SQLite source and header files. 2023-05-02 23:23:08 -04:00
7f49c1c065
Remove SQLite from repo. 2023-05-02 23:21:56 -04:00
20c9a0c1a5 Merge pull request 'develop' (#27) from develop into master
Reviewed-on: #27
2023-04-17 20:49:03 -04:00
42d1ac9bb7 Merge pull request 'prepare 1.0.3' (#26) from feature/add_readme into develop
Reviewed-on: #26
2023-04-17 20:48:39 -04:00
9869d369c4 Merge branch 'develop' into feature/add_readme 2023-04-17 20:48:32 -04:00
5d8b7af28d
prepare 1.0.3 2023-04-17 20:47:59 -04:00
efc00f3473 Merge pull request 'develop' (#25) from develop into master
Reviewed-on: #25
2023-04-17 20:44:00 -04:00
578c350b7b Merge branch 'master' into develop 2023-04-17 20:43:53 -04:00
f85f8a4637 Merge pull request 'add readme' (#24) from feature/add_readme into develop
Reviewed-on: #24
2023-04-17 20:43:23 -04:00
7d57800046
add readme 2023-04-17 20:42:26 -04:00
bdc69ceea7 Merge pull request 'develop' (#23) from develop into master
Reviewed-on: #23
2023-03-05 23:06:26 -03:00
5f9af90e80 Merge branch 'master' into develop 2023-03-05 23:06:20 -03:00
4d7ecf8258 Merge pull request 'feature/fix_recursive_rules' (#22) from feature/fix_recursive_rules into develop
Reviewed-on: #22
2023-03-05 23:06:02 -03:00
04902214b7
prepare 1.0.2 2023-03-05 23:05:18 -03:00
0bfd93150f
update facts and rules recursively 2023-03-05 23:04:17 -03:00
96a5f25e02 Merge pull request 'develop' (#21) from develop into master
Reviewed-on: #21
2023-03-05 22:20:21 -03:00
d4c4d3fe75 Merge pull request 'typo' (#20) from typo into develop
Reviewed-on: #20
2023-03-05 22:19:56 -03:00
33808b4906
fix typo 2023-03-05 22:18:52 -03:00
10 changed files with 105 additions and 258137 deletions

10
.dockerignore Normal file
View File

@ -0,0 +1,10 @@
README.md
LICENSE
.pre-commit-config.yaml
.gitignore
.clang-format
examples
Dockerfile
build
builddir
out

3
.gitignore vendored
View File

@ -4,3 +4,6 @@ builddir
*.kb
*.obk
!examples/*.obk
sqlite/*.c
sqlite/*.h
out

26
Dockerfile Normal file
View 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
View 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

View File

@ -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
View 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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -250,6 +250,7 @@ void obelisk::KnowledgeBase::checkRule(obelisk::Fact& fact)
auto updateFact = rule.getFact();
updateFact.setIsTrue(1.0);
updateFact.updateIsTrue(dbConnection_);
checkRule(updateFact);
}
}
}

View File

@ -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