v0.6.0 -- Types
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