Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove neo4j, protobuf support #2147

Closed
linas opened this issue Apr 2, 2019 · 2 comments
Closed

Remove neo4j, protobuf support #2147

linas opened this issue Apr 2, 2019 · 2 comments

Comments

@linas
Copy link
Member

linas commented Apr 2, 2019

The neo4j bindings are stale, out-of-date. Rather than dragging them into the future, maybe they should be removed. Opinions? See pull req #2142

Pros:

  • Makes atomspace smaller, simpler, easier to understand
  • Eliminates pointless historical baggage.
  • "The Life-Changing Magic of Tidying up with Marie Kondo"
  • Cleanliness, minimal design,

Cons:

  • Old work is lost. Well, placed where it becomes hard to find, hard to resuscitate.
@amebel
Copy link
Contributor

amebel commented Apr 3, 2019

I don't have a historic perspective on why protobuf was chosen as compared to other serialization tools. What I can gather is that it was introduced before its use in opencog-neo4j. Then what other use could it have?

When interfacing with the atomspace, over a network, there are two main options of data representation that are used, json (REST api & AtomSpacePublisherModule) and scheme (cogserver, ghost_bridge & dist-atomspace through gearman). This might have been sufficient for the use/demo cases. But, is it advisable to follow these representation pattern going ahead, if atomspace is to be used in a commercial settings? I am assuming in a commercial setting, an atomspace will be ingesting data from various systems and responding to queries from other systems or atomspaces (in line with what will be chosen in #2138).

Pros:

  • A well known and maintained IDL which can generate code in multiple industrially popular programming languages, thus possibly making atomspace accessible to a broader developer community.
  • If the various blog post that compare the speed of serialization and deserialization, and message size of protobuf with json are anything to go by, then protobuf is a keep. We can abduce that it is the same for scheme, as it is textual similar to json.
  • "The Life-Changing Magic of Tidying up with Marie Kondo". Take this with a pinch of "Salt Fat Acid Heat", the networking layer of AtomSpaceSubscriber (the only client of AtomSpacePublisher) and the Atomspace Visualizer(REST) may be replaced by grpc/grpc-web, which consume protobuf.
  • Cleanliness, minimal design

Cons:

  • Who will maintain it?
  • Whatever cons it has when compared with other IDLs.

PS
pros: Version 2.0 of "Nobody ever got fired for choosing IBM". It was made by Google 😛

@linas
Copy link
Member Author

linas commented Nov 22, 2019

Closing. This was done some months ago.

@linas linas closed this as completed Nov 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants