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 of quad.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