gnu: cvs-fast-export: Update to 1.56.
[jackhill/guix/guix.git] / gnu / packages / opencog.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (gnu packages opencog)
20 #:use-module (gnu packages)
21 #:use-module (gnu packages boost)
22 #:use-module (gnu packages check)
23 #:use-module (gnu packages databases)
24 #:use-module (gnu packages guile)
25 #:use-module (gnu packages language)
26 #:use-module (gnu packages linux)
27 #:use-module (gnu packages multiprecision)
28 #:use-module (gnu packages pkg-config)
29 #:use-module (gnu packages python)
30 #:use-module ((guix licenses) #:prefix license:)
31 #:use-module (guix packages)
32 #:use-module (guix git-download)
33 #:use-module (guix build-system cmake)
34 #:use-module (guix utils))
35
36 (define-public cogutil
37 ;; The last release was in 2016. Other OpenCog packages require a later
38 ;; version.
39 (let ((commit "b07b41b2eaf01627c78b27f1f28bb09ef7086f8e")
40 (revision "1"))
41 (package
42 (name "cogutil")
43 (version (git-version "2.0.3" revision commit))
44 (source (origin
45 (method git-fetch)
46 (uri (git-reference
47 (url "https://github.com/opencog/cogutil")
48 (commit commit)))
49 (file-name (git-file-name name version))
50 (sha256
51 (base32
52 "1ymmcrinp0prlxsmxmwdjjl4kgaj7wzq39d5b1q2apgg94yfdhqb"))))
53 (build-system cmake-build-system)
54 (arguments
55 `(#:test-target "tests"))
56 (inputs
57 `(("boost" ,boost)))
58 (native-inputs
59 `(("cxxtest" ,cxxtest)
60 ("python" ,python-minimal)
61 ("pkg-config" ,pkg-config)))
62 (home-page "https://github.com/opencog/cogutil/")
63 (synopsis "Low-level C++ programming utilities used by OpenCog components")
64 (description "The OpenCog utilities is a miscellaneous collection of C++
65 utilities use for typical programming tasks in multiple OpenCog projects.")
66 ;; Either of these licenses.
67 (license (list license:agpl3 license:asl2.0)))))
68
69 (define-public atomspace
70 ;; The last release was in 2016 and doesn't build with our Boost package.
71 (let ((commit "86c848dfc7135b3c47deb581f8da54a60f6711c9")
72 (revision "1"))
73 (package
74 (name "atomspace")
75 (version (git-version "5.0.3" revision commit))
76 (source (origin
77 (method git-fetch)
78 (uri (git-reference
79 (url "https://github.com/opencog/atomspace")
80 (commit commit)))
81 (file-name (git-file-name name version))
82 (sha256
83 (base32
84 "0vxzhszb0z8081li38hid07a5axzxyflsmq1mcn4b1k4z1j8ggch"))))
85 (build-system cmake-build-system)
86 (arguments
87 `(#:test-target "tests"
88 #:configure-flags
89 (list (string-append "-DGUILE_INCLUDE_DIR="
90 (assoc-ref %build-inputs "guile")
91 "/include/guile/2.2/")
92 (string-append "-DGUILE_SITE_DIR="
93 (assoc-ref %outputs "out")
94 "/share/guile/site/2.2/"))))
95 (inputs
96 `(("boost" ,boost)
97 ("cogutil" ,cogutil)
98 ("gmp" ,gmp)
99 ("guile" ,guile-2.2)
100 ("postgresql" ,postgresql)))
101 (native-inputs
102 `(("cxxtest" ,cxxtest)
103 ("python" ,python-minimal)
104 ("pkg-config" ,pkg-config)))
105 (home-page "https://github.com/opencog/atomspace/")
106 (synopsis "OpenCog hypergraph database, query system and rule engine")
107 (description "The OpenCog AtomSpace is an in-RAM @dfn{knowledge
108 representation} (KR) database, an associated query engine and graph-re-writing
109 system, and a rule-driven inferencing engine that can apply and manipulate
110 sequences of rules to perform reasoning. It is a layer that sits on top of
111 ordinary distributed (graph) databases, providing a large variety of advanced
112 features not otherwise available.")
113 (license license:agpl3))))
114
115 (define-public cogserver
116 ;; There are no releases.
117 (let ((commit "ec5f3b9590db0f6a085b5d0320f5d3710e0f1635")
118 (revision "2"))
119 (package
120 (name "cogserver")
121 (version (git-version "0" revision commit))
122 (source (origin
123 (method git-fetch)
124 (uri (git-reference
125 (url "https://github.com/opencog/cogserver")
126 (commit commit)))
127 (file-name (git-file-name name version))
128 (sha256
129 (base32
130 "1h0vcxb6n5dc654xqinqcxc7dxwcs6bsywgir8rhrqiykk760mzl"))))
131 (build-system cmake-build-system)
132 (arguments
133 `(#:test-target "tests"
134 #:configure-flags
135 (list (string-append "-DGUILE_INCLUDE_DIR="
136 (assoc-ref %build-inputs "guile")
137 "/include/guile/2.2/")
138 (string-append "-DGUILE_SITE_DIR="
139 (assoc-ref %outputs "out")
140 "/share/guile/site/2.2/"))))
141 (inputs
142 `(("atomspace" ,atomspace)
143 ("boost" ,boost)
144 ("cogutil" ,cogutil)
145 ("gmp" ,gmp)
146 ("guile" ,guile-2.2)))
147 (native-inputs
148 `(("cxxtest" ,cxxtest)
149 ("python" ,python-minimal)
150 ("pkg-config" ,pkg-config)))
151 (home-page "https://github.com/opencog/cogserver/")
152 (synopsis "OpenCog network server")
153 (description "The OpenCog Cogserver is a network and job server for the
154 OpenCog framework.")
155 (license license:agpl3))))
156
157 (define-public attention
158 ;; There are no releases.
159 (let ((commit "87d43679280ce486cd6757765d2e1df6d502991d")
160 (revision "1"))
161 (package
162 (name "attention")
163 (version (git-version "0" revision commit))
164 (source (origin
165 (method git-fetch)
166 (uri (git-reference
167 (url "https://github.com/opencog/attention")
168 (commit commit)))
169 (file-name (git-file-name name version))
170 (sha256
171 (base32
172 "0sndslphicv6w9qpag168rqkxq5sf71l5qbfx6zhsd5bzlf5fhwv"))))
173 (build-system cmake-build-system)
174 (arguments
175 `(#:test-target "tests"
176 #:configure-flags
177 (list
178 (string-append "-DGUILE_INCLUDE_DIR="
179 (assoc-ref %build-inputs "guile")
180 "/include/guile/2.2/")
181 (string-append "-DGUILE_SITE_DIR="
182 (assoc-ref %outputs "out")
183 "/share/guile/site/2.2/"))))
184 (inputs
185 `(("atomspace" ,atomspace)
186 ("boost" ,boost)
187 ("cogserver" ,cogserver)
188 ("cogutil" ,cogutil)
189 ("gmp" ,gmp)
190 ("guile" ,guile-2.2)))
191 (native-inputs
192 `(("cxxtest" ,cxxtest)
193 ("python" ,python-minimal)
194 ("pkg-config" ,pkg-config)))
195 (home-page "https://github.com/opencog/attention/")
196 (synopsis "OpenCog attention allocation subsystem")
197 (description "Attention Allocation is an OpenCog subsystem meant to
198 control the application of processing and memory resources to specific
199 tasks.")
200 (license license:agpl3))))
201
202 (define-public opencog
203 ;; There are no recent releases.
204 (let ((commit "ceac90507610cb2d0ee98f97a2086865292b1204")
205 (revision "1"))
206 (package
207 (name "opencog")
208 (version (git-version "0.1.4" revision commit))
209 (source (origin
210 (method git-fetch)
211 (uri (git-reference
212 (url "https://github.com/opencog/opencog")
213 (commit commit)))
214 (file-name (git-file-name name version))
215 (sha256
216 (base32
217 "1j8wv910fvrmph370wv5pv2f4bc2s9vl6i7bw3pkmwbdhxkhjbhm"))))
218 (build-system cmake-build-system)
219 (arguments
220 `(#:test-target "tests"
221 #:configure-flags
222 (list
223 (string-append "-DGUILE_INCLUDE_DIR="
224 (assoc-ref %build-inputs "guile")
225 "/include/guile/2.2/")
226 (string-append "-DGUILE_SITE_DIR="
227 (assoc-ref %outputs "out")
228 "/share/guile/site/2.2/"))))
229 (inputs
230 `(("attention" ,attention)
231 ("atomspace" ,atomspace)
232 ("boost" ,boost)
233 ("cogserver" ,cogserver)
234 ("cogutil" ,cogutil)
235 ("gmp" ,gmp)
236 ("guile" ,guile-2.2)
237 ("libuuid" ,util-linux "lib")
238 ("link-grammar" ,link-grammar)))
239 (native-inputs
240 `(("cxxtest" ,cxxtest)
241 ("python" ,python-minimal)
242 ("pkg-config" ,pkg-config)))
243 (home-page "https://github.com/opencog/attention/")
244 (synopsis "Framework for integrated artificial intelligence")
245 (description "OpenCog is a framework for developing AI systems,
246 especially appropriate for integrative multi-algorithm systems, and artificial
247 general intelligence systems. It currently contains a functional core
248 framework, and a number of cognitive agents at varying levels of completion,
249 some already displaying interesting and useful functionalities alone and in
250 combination.")
251 (license license:agpl3))))
252
253 (define-public agi-bio
254 ;; There are no releases.
255 (let ((commit "b5c6f3d99e8cca3798bf0cdf2c32f4bdb8098efb")
256 (revision "1"))
257 (package
258 (name "agi-bio")
259 (version (git-version "0" revision commit))
260 (source (origin
261 (method git-fetch)
262 (uri (git-reference
263 (url "https://github.com/opencog/agi-bio")
264 (commit commit)))
265 (file-name (git-file-name name version))
266 (sha256
267 (base32
268 "0c3q0nhmd03nvqm1ih10y28n596cjvfhkcfvzw2fmz1sn3ywdah4"))))
269 (build-system cmake-build-system)
270 (arguments
271 `(#:tests? #f ; there are none
272 #:configure-flags
273 (list
274 (string-append "-DGUILE_INCLUDE_DIR="
275 (assoc-ref %build-inputs "guile")
276 "/include/guile/2.2/")
277 (string-append "-DGUILE_SITE_DIR="
278 (assoc-ref %outputs "out")
279 "/share/guile/site/2.2/"))
280 #:phases
281 (modify-phases %standard-phases
282 (add-after 'unpack 'fix-unqualified-load
283 (lambda* (#:key outputs #:allow-other-keys)
284 (substitute* "bioscience/bioscience.scm"
285 (("\\(load \"bioscience/types/bioscience_types.scm\"\\)")
286 (format #f "(load \"~a/bioscience/types/bioscience_types.scm\")"
287 (string-append (assoc-ref outputs "out")
288 "/share/guile/site/2.2/opencog"))))
289 #t)))))
290 (inputs
291 `(("atomspace" ,atomspace)
292 ("cogutil" ,cogutil)
293 ("gmp" ,gmp)
294 ("guile" ,guile-2.2)))
295 (native-inputs
296 `(("cxxtest" ,cxxtest)
297 ("python" ,python-minimal)
298 ("pkg-config" ,pkg-config)))
299 (home-page "https://github.com/opencog/agi-bio")
300 (synopsis "Genomic and proteomic data exploration and pattern mining")
301 (description "This is a package for genomic and proteomic research using
302 the OpenCog toolset with Guile. This includes experiments in applying pattern
303 mining and other OpenCog components.")
304 (license license:agpl3))))