gnu: util-linux: Move libraries to separate output.
[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.git")
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.git")
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 "c8ad85fef446819e6bd711f0791887a5aa6a41f9")
118 (revision "1"))
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.git")
126 (commit commit)))
127 (file-name (git-file-name name version))
128 (sha256
129 (base32
130 "0flwl2cbmnj7kjcx8vwk7rbhsp2si0a51ci0hx88a3xx1f76cp3f"))))
131 (build-system cmake-build-system)
132 (arguments
133 `(#:tests? #f ; See https://github.com/opencog/cogserver/issues/24
134 #:test-target "tests"
135 #:configure-flags
136 (list (string-append "-DGUILE_INCLUDE_DIR="
137 (assoc-ref %build-inputs "guile")
138 "/include/guile/2.2/")
139 (string-append "-DGUILE_SITE_DIR="
140 (assoc-ref %outputs "out")
141 "/share/guile/site/2.2/"))))
142 (inputs
143 `(("atomspace" ,atomspace)
144 ("boost" ,boost)
145 ("cogutil" ,cogutil)
146 ("gmp" ,gmp)
147 ("guile" ,guile-2.2)))
148 (native-inputs
149 `(("cxxtest" ,cxxtest)
150 ("python" ,python-minimal)
151 ("pkg-config" ,pkg-config)))
152 (home-page "https://github.com/opencog/cogserver/")
153 (synopsis "OpenCog network server")
154 (description "The OpenCog Cogserver is a network and job server for the
155 OpenCog framework.")
156 (license license:agpl3))))
157
158 (define-public attention
159 ;; There are no releases.
160 (let ((commit "87d43679280ce486cd6757765d2e1df6d502991d")
161 (revision "1"))
162 (package
163 (name "attention")
164 (version (git-version "0" revision commit))
165 (source (origin
166 (method git-fetch)
167 (uri (git-reference
168 (url "https://github.com/opencog/attention.git")
169 (commit commit)))
170 (file-name (git-file-name name version))
171 (sha256
172 (base32
173 "0sndslphicv6w9qpag168rqkxq5sf71l5qbfx6zhsd5bzlf5fhwv"))))
174 (build-system cmake-build-system)
175 (arguments
176 `(#:test-target "tests"
177 #:configure-flags
178 (list
179 (string-append "-DGUILE_INCLUDE_DIR="
180 (assoc-ref %build-inputs "guile")
181 "/include/guile/2.2/")
182 (string-append "-DGUILE_SITE_DIR="
183 (assoc-ref %outputs "out")
184 "/share/guile/site/2.2/"))))
185 (inputs
186 `(("atomspace" ,atomspace)
187 ("boost" ,boost)
188 ("cogserver" ,cogserver)
189 ("cogutil" ,cogutil)
190 ("gmp" ,gmp)
191 ("guile" ,guile-2.2)))
192 (native-inputs
193 `(("cxxtest" ,cxxtest)
194 ("python" ,python-minimal)
195 ("pkg-config" ,pkg-config)))
196 (home-page "https://github.com/opencog/attention/")
197 (synopsis "OpenCog attention allocation subsystem")
198 (description "Attention Allocation is an OpenCog subsystem meant to
199 control the application of processing and memory resources to specific
200 tasks.")
201 (license license:agpl3))))
202
203 (define-public opencog
204 ;; There are no recent releases.
205 (let ((commit "ceac90507610cb2d0ee98f97a2086865292b1204")
206 (revision "1"))
207 (package
208 (name "opencog")
209 (version (git-version "0.1.4" revision commit))
210 (source (origin
211 (method git-fetch)
212 (uri (git-reference
213 (url "https://github.com/opencog/opencog.git")
214 (commit commit)))
215 (file-name (git-file-name name version))
216 (sha256
217 (base32
218 "1j8wv910fvrmph370wv5pv2f4bc2s9vl6i7bw3pkmwbdhxkhjbhm"))))
219 (build-system cmake-build-system)
220 (arguments
221 `(#:test-target "tests"
222 #:configure-flags
223 (list
224 (string-append "-DGUILE_INCLUDE_DIR="
225 (assoc-ref %build-inputs "guile")
226 "/include/guile/2.2/")
227 (string-append "-DGUILE_SITE_DIR="
228 (assoc-ref %outputs "out")
229 "/share/guile/site/2.2/"))))
230 (inputs
231 `(("attention" ,attention)
232 ("atomspace" ,atomspace)
233 ("boost" ,boost)
234 ("cogserver" ,cogserver)
235 ("cogutil" ,cogutil)
236 ("gmp" ,gmp)
237 ("guile" ,guile-2.2)
238 ("libuuid" ,util-linux "lib")
239 ("link-grammar" ,link-grammar)))
240 (native-inputs
241 `(("cxxtest" ,cxxtest)
242 ("python" ,python-minimal)
243 ("pkg-config" ,pkg-config)))
244 (home-page "https://github.com/opencog/attention/")
245 (synopsis "Framework for integrated artificial intelligence")
246 (description "OpenCog is a framework for developing AI systems,
247 especially appropriate for integrative multi-algorithm systems, and artificial
248 general intelligence systems. It currently contains a functional core
249 framework, and a number of cognitive agents at varying levels of completion,
250 some already displaying interesting and useful functionalities alone and in
251 combination.")
252 (license license:agpl3))))
253
254 (define-public agi-bio
255 ;; There are no releases.
256 (let ((commit "b5c6f3d99e8cca3798bf0cdf2c32f4bdb8098efb")
257 (revision "1"))
258 (package
259 (name "agi-bio")
260 (version (git-version "0" revision commit))
261 (source (origin
262 (method git-fetch)
263 (uri (git-reference
264 (url "https://github.com/opencog/agi-bio.git")
265 (commit commit)))
266 (file-name (git-file-name name version))
267 (sha256
268 (base32
269 "0c3q0nhmd03nvqm1ih10y28n596cjvfhkcfvzw2fmz1sn3ywdah4"))))
270 (build-system cmake-build-system)
271 (arguments
272 `(#:tests? #f ; there are none
273 #:configure-flags
274 (list
275 (string-append "-DGUILE_INCLUDE_DIR="
276 (assoc-ref %build-inputs "guile")
277 "/include/guile/2.2/")
278 (string-append "-DGUILE_SITE_DIR="
279 (assoc-ref %outputs "out")
280 "/share/guile/site/2.2/"))))
281 (inputs
282 `(("atomspace" ,atomspace)
283 ("cogutil" ,cogutil)
284 ("gmp" ,gmp)
285 ("guile" ,guile-2.2)))
286 (native-inputs
287 `(("cxxtest" ,cxxtest)
288 ("python" ,python-minimal)
289 ("pkg-config" ,pkg-config)))
290 (home-page "https://github.com/opencog/agi-bio")
291 (synopsis "Genomic and proteomic data exploration and pattern mining")
292 (description "This is a package for genomic and proteomic research using
293 the OpenCog toolset with Guile. This includes experiments in applying pattern
294 mining and other OpenCog components.")
295 (license license:agpl3))))