cayley v0.6.0 Release Notes
Release Date: 2016-10-07 // over 7 years ago-
🚀 Current release marks community build number two, introducing major change to data layout and bringing new features to Gremlin.
Storage format changed slightly. We highly recommend to do a clean import of the database with a new binary.
Cayley now honors types of nquad values. IRIs (
<name>
) were converted to untyped strings (name
), so it was possible for nodes with different types to be loaded as a single node. Now Cayley preserves type information, making these nodes separate. Queries that used IRIs without<>
quotes will break because of this change. Gremlin now requires IRI it to be in"<follows>"
form and the path lib expect these values to be ofquad.IRI
Go type. The same stands for Strings (aka RDF literals) and BNodes (aka blank nodes,_:name
).Data loader now recognizes few basic typed literals like
"10"^^<http://schema.org/Integer>
and converts them into corresponding native type (Int
for this example). It may also affect existing queries. Gremlin will automatically convert basic types into corresponding RDF typed literals.Highlights:
- 👍 Typed values support for all backends. Includes types: String, IRI, BNode, Int, Float, Bool, Time.
- 🆕 New traversals in path lib and Gremlin: HasReverse, Skip, Limit, Count, Unique, Comparison/Filter, Regex.
- ✅ More consistent backends behavior thanks to unified tests.
- ⚡️ Updated docs and added examples.
- ⚡️ Updated Docker image, and added example for it.
- 🛠 Many, many bugfixes and some optimizations.
Full changelog:
gabrys: Fix link to GremlinAPI.md (#477) dennwc: expose Unique via path lib and gremlin; implement and expose Count iterator; resolve #240 dennwc: gremlin: add regex support, make it harder to abuse regexps; add docs explaining why guycook: Implement regex filter as iterator (#474) dennwc: bolt,leveldb: fix AllQuads iterator not skipping deleted quads, add test dennwc: iterator: add variadic arguments to Add, Or and Fixed constructors dennwc: query: Refactor interfaces (#471) dennwc: fix lru panic wayeast: Clone receiver paths (#466) kenshaw: appengine: updating dependency paths and adding documentation (#464) dennwc: gremlin: handle string slice in via parameter kenshaw: appengine: add build constraint (#463) dennwc: Glide migration (#460) dwhitena: user/pass functionality for mongo backend allanino: Fix Docker building (#456) barakmich: gremlin: don't require a session to last as long as the timeout kris-runzer: graph: fix Is*(err error) checkers to properly compare against *DeltaError, add tests dennwc: optimize by default in Iterate helper dennwc: gremlin: clone path objects neonstalwart: simplify the signature of NextLogOut (manual merge of #264) dennwc: graph: add iteration helpers, update examples; resolves #446 dennwc: http: fix json quads decoding dennwc: gremlin: fix ToArray without arguments dennwc: iterator: promote Next to main interface; make NoNext an optional interface oren: Example of BoltDB, update examples/README.md robertmeta: Just better quickstart + examples creation dennwc: query: check type assertions, recover properly in gremlin; fixes #450 josephschorr: Add Clone() to Path for easier reuse of Path segments (#444) dennwc: Wire Skip and Limit to Gremlin. Also fixed #254. dennwc: postgres: store hashes as binary data instead of hex strings dennwc: postgres: prepare each statement in ApplyDeltas dennwc: postgres: generate distinct node insert statements only dennwc: cquads: convert TypedString values to native types automatically on loading dennwc: gremlin: allow to specify multiple conditions in Filter dennwc: mongo: optimize comparison iterator dennwc: Test for typed value comparison and optimization dennwc: gremlin: expose value comparison iterator via path lib, add tests dennwc: gremlin: support for typed values dennwc: gremlin: replace JS-based graph object with reflect-based (rewritten, now it's easier extend) dennwc: comparison: compare only values with the same type, add a test for mixed set dennwc: mongo: use native value types where possible, fix indexing, remove recursion in LinksTo, remove unnecessary roundtrip dennwc: postgres: new table structure, store typed values natively; fix iterators; separate LRU cache dennwc: Update value comparison iterator. Stop graph.Value madness. dennwc: cquads: recognize TypedString and LangString in parser dennwc: Add a test for Raw-to-typed values exchange. Fix memstore not using hashes in map. dennwc: GAE (untyped). More tests. Fixed handling of size and conflicts in postgres. dennwc: quad: add support for few basic types (int, float, bool, time) dennwc: Unify tests for QuadStore. Run Mongo/Postgres in Docker automatically. dennwc: leveldb: use protobuf instead of json, migration code dennwc: bolt: migration code dennwc: add typed fields to protobufs dennwc: graph,query,exporter,path: updated to use typed values dennwc: quad: directions are typed kortschak: graph: provide more meaningful errors for bad actions (#443) josephschorr: Don't iterate over all quads unless necessary (#440) kortschak: clog: fix comment typos and add package comment (#442) dennwc: Implement Skip and Limit iterators (#369) EntilZha: Delete node API (#158) dennwc: Updated Dockerfile (fixed #357) dennwc: fix Unique iterator for non-comparable tokens; fixes #437 kortschak: clog: make nil Logger safe (#436) robertmeta: Sweep through docs update/cleanup oren: remove duplicate in readme (#435) dennwc: fix postgres error on import, fixes #429 dennwc: Added HasReverse function to path lib (#351) drzippie: Added sync.RWMutex to mongo cache (#380) robertmeta: Update docs (README, Locations, Quickstart-As-Lib, Quickstart-As-Application, HACKING, FAQ, Container) robertmeta Rerouting CONTRIBUTING to the discourse, updating CONTRIBUTORS to remove mention of CLA robertmeta: Moving Hacking from wiki to project dennwc: separate log package, resolves #221