23 releases

0.2.1 Jan 11, 2021
0.2.0 Jan 11, 2021
0.1.6 Dec 13, 2020
0.1.4 Nov 28, 2020
0.0.13 Oct 22, 2020

#1114 in Database interfaces


Used in zamm_yang

GPL-3.0 license

230KB
6K SLoC

YIN 阴

Build Status

Yin is a rudimentary, experimental knowledge base. It is inspired by Scone, but is not meant to be a replacement/clone of Scone and its functionality. Yin is both used by, and depends on, Yang for code generation. See the internal documentation for more.

Functionality is basically non-existent at the moment. Please do not use this library.

Note that there is currently only single-threaded support. Unless using a Neo4j Cypher backend, every spawned thread will have its own independent instance of the KB.

Semver

Semver "backwards compatibility" will be interpreted to mean any changes that do not break Yang's release builds. For example, there may be many changes in the public API in between Yin versions 0.x.0 and 0.x.y. But so long as the Yang releases that depend on 0.x.0 do not break, and the releases that depend on the most recent 0.x.y version also do not break, this will be considered "backwards compatible" for all practical purposes.

It's said when it comes to version numbers that integers are cheap and version numbers should be boring. While that may be, breaking changes carry some cost. Moreover, there could be psychological value in having some explicit marker to serve as an official stamp of recognition of an important milestone reached. Not so much for the users, who are nonexistent and don't care, but for the developer(s). That is why this project will attempt to keep the 0.x incrementation as slow as practical.

Examples

See the docs for examples of how to use the library.

Development

By default, the Neo4j Cypher tests aren't run. To run them:

  1. Ensure that Neo4j version 3 is installed and running (the petgraph dependency doesn't support version 4)
  2. Change the test DB password to dummy_password
  3. Run cargo test -- --ignored

Dependencies

~6–11MB
~246K SLoC