Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (40 sloc) 2.09 KB
AtomSpace Serializers and Deserializers (SerDes)
AKA "Communications and Persistence"
-------------------------------------------
The AtomSpace may be converted from its native, in-memory C++ object
format, into any one of a number of "flattened", non-object formats.
These formats allow atoms to be sent to and received from remote systems,
as well as to be saved and restored from various databases.
Systems include:
gearman -- Experimental support for distributed operation, using
GearMan.
hypertable -- Experimental HyperTable support. Unmaintained.
(Won't compile at this time.) Should be revived!
sql -- Works well for most uses -- with caveats.
zmq -- ZeroMQ-based atomspace serialization and deserialization.
Unmaintained. (Won't compile at this time.)
The gearman, hypertable and sql systems all support networked,
peer-to-peer communications between cogservers. (In principle ...
currently, needs test cases, and general work to enable/support).
Note that additional i/o methods can be found in the "visualization"
directory, which e.g. dump the entire atomspace into various graphics
formats.
Semantics
---------
The correct semantics for the save and restore of values, including
truth values, an be subtle: during recrusive saves or loads of outgoing
sets, should values be clobbered? Left untouched? Merged? The various
possibilities all have different performance implications, as well as
usability implications. These are discussed in the README.md file for
the SQL implementation, and semantics are explicitly tested in the SQL
unit tests.
Future directions:
------------------
To understand the future directions for the (distributed) atomspace
and its relation to storage, read the "Big Graph Anti-Pattern" blog
post: http://blog.bigdata.com/?p=628
OpenCog most closely resembles the fourth bullet in that post:
"Graph query (aka graph pattern matching)" Based on this, the
most promising backend would seem to be "bigdata":
http://sourceforge.net/projects/bigdata/ (GPLv2)
http://www.bigdata.com/
You can’t perform that action at this time.