diff --git a/grakn/.gitignore b/grakn/.gitignore index 8fce603003c1e5857013afec915ace9fc8bcdb8d..19e018075d5bc195efdc19f58d985cb1a3f54af8 100644 --- a/grakn/.gitignore +++ b/grakn/.gitignore @@ -1 +1 @@ -data/ +db/ diff --git a/grakn/big-bang.sh b/grakn/big-bang.sh new file mode 100755 index 0000000000000000000000000000000000000000..ea51cf0c0a456f75a9135964b217ac7f0c7aed5b --- /dev/null +++ b/grakn/big-bang.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +docker_cmd=docker +# use podman if possible +command -v podman >/dev/null 2>&1 && docker_cmd=podman + +console() { + $docker_cmd exec -i grakn-srv \ + /grakn-core-all-linux/grakn console $* +} + +db() { + console --keyspace sch $* +} + +wipe() { + echo 'keyspace delete sch' | console +} + +### + +wipe +db --file /data/schema.gql +#db --file /data/data.gql diff --git a/grakn/console.sh b/grakn/console.sh index e6788f206b285f59e6a88d29791586c661ca890a..c72c4c7ef021858706cb4d1b8353068f815b782d 100755 --- a/grakn/console.sh +++ b/grakn/console.sh @@ -1,4 +1,8 @@ #!/bin/sh -docker exec -it grakn-srv \ - /grakn-core-all-linux/grakn console +docker_cmd=docker +# use podman if possible +command -v podman >/dev/null 2>&1 && docker_cmd=podman + +$docker_cmd exec -it grakn-srv \ + /grakn-core-all-linux/grakn console $* diff --git a/grakn/data/data.gql b/grakn/data/data.gql new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/grakn/data/schema.gql b/grakn/data/schema.gql new file mode 100644 index 0000000000000000000000000000000000000000..f1aaf396e5ce6375a92e0de89aa56d344ccd7025 --- /dev/null +++ b/grakn/data/schema.gql @@ -0,0 +1,67 @@ +define + +################ +## Attributes ## +################ + label sub attribute, + value string; + + annotation sub attribute, + value string; + + identifier sub label; + name sub label; + nick sub label; + + #fqdn sub label; + #ip sub label; + + operating-system sub annotation, + regex "^(linux|ios|windows)$"; + number sub annotation; + color sub annotation; + cableLabel sub annotation; + +################ +## Entities ## +################ + + abstractInfraItem sub entity, abstract, + key identifier, + has name, + plays container, + plays containee; + + node sub abstractInfraItem, + has nick, + has operating-system; + + port sub abstractInfraItem, + has number; + + # TODO check out https://docs.grakn.ai/docs/schema/concepts#define-a-relation-to-play-a-role + cable sub abstractInfraItem, + has color, + has cableLabel; + +################ +## Realtions ## +################ + + containment sub relation, + relates container, + relates containee; + + hasPort sub containment; + +################ +## Rules ## +################ + +nodes-has-ports sub rule, +when { + $a isa node; + $b isa port; +}, then { + (container: $a, containee: $b) isa hasPort; +}; diff --git a/grakn/docker-compose.yml b/grakn/docker-compose.yml index e3a3c58852ef1bbe553ea0cd7c53b081f7843a85..e9dc5a410649a9b4dad8b3ae2b3e18f68557e3af 100644 --- a/grakn/docker-compose.yml +++ b/grakn/docker-compose.yml @@ -5,7 +5,8 @@ services: container_name: grakn-srv image: graknlabs/grakn:1.8.4 volumes: - - ./data:/grakn-core-all-linux/server/db/ + - ./:/app + - ./data:/data + - ./db:/grakn-core-all-linux/server/db/ ports: - 127.0.0.1:48555:48555 - - 127.0.0.1:1729:1729