greskell

Haskell binding for Gremlin graph query language

https://github.com/debug-ito/greskell/

Version on this page:1.1.0.3
LTS Haskell 19.33:2.0.0.0
Stackage Nightly 2024-10-31:2.0.3.1
Latest on Hackage:2.0.3.1

See all snapshots greskell appears in

BSD-3-Clause licensed and maintained by Toshio Ito
This version can be pinned in stack with:greskell-1.1.0.3@sha256:f50a8ef342d3426f6b13262e1f164a2b514547da3390784c2ecbbfac6f521e1b,6580

greskell

Haskell binding for Gremlin query language.

See the package description, or project README.

Author

Toshio Ito [email protected]

Changes

Revision history for greskell

1.1.0.3 – 2020-06-21

  • Confirm test with base-4.14.0.0.

1.1.0.2 – 2020-06-06

  • Support doctest-0.17.

1.1.0.1 – 2020-05-30

  • Support aeson-1.5.0.0.

1.1.0.0 – 2020-04-26

GTraversal module

  • [BREAKING CHANGE] gFlatMap is now polymorphic about the WalkTypes. Use gFlatMap'For monomorphic version.
  • Add the following functions.
    • gFlatMap'
    • gCoalesce
    • gIterate
    • gPath
    • gPathBy
  • Document change: Now gProject is a “Transformation step”, and gUnfold is an “Accessor step”.

Graph module

  • Add the following types.
    • Path
    • PathEntry
  • Add the following functions.
    • pathToPMap
    • makePathEntry

Extra module

  • Add gWhenEmptyInput function.

AsLabel module

  • Derive Hashable instance for AsLabel.
  • Add unsafeCastAsLabel function.

1.0.1.0 – 2020-04-24

GTraversal module

  • Add the following functions.
    • gRepeat
    • gTimes
    • gUntilHead
    • gUntilTail
    • gEmitHead
    • gEmitTail
    • gEmitHeadT
    • gEmitTailT
    • gLoops
    • gIs
    • gIs'
    • gIsP
    • gIsP'
    • gCyclicPath
    • gCyclicPath'
    • gSimplePath
    • gSimplePath'
    • gUnion
    • gChoose3
    • gConstant
    • gLocal
    • gBarrier
    • gDedup
    • gDedupN
    • gUnfold
  • Add the follwing types.
    • RepeatUntil
    • RepeatEmit
    • RepeatPos
    • RepeatLabel

1.0.0.1 – 2019-12-30

  • Confirm test with base-4.13.0.0

1.0.0.0 – 2019-12-27

  • Add some test cases to server-behavior-test
  • Add PMap and NonEmptyLike modules.

Data.Greskell module

  • Export PMap module.

Graph module - Element class and ElementID

  • [BREAKING CHANGE] Now ElementID is a newtype for GValue. It was an associated type family in Element class. However, I think there was no point to make it polymorphic.
  • [BREAKING CHANGE] Remove EdgeVertexID type family from Edge class.
  • [BREAKING CHANGE] Add ElementData class, and set it as a super class of Element.
  • [BREAKING CHANGE] Type of the ID field for AVertex, AEdge and AVertexProperty is now ElementID, not GValue.
  • Add unsafeCastElementID function.
  • Add ElementPropertyContainer type family to Element class. It’s necessary for gValueMap traversal.

Graph module - “reference” model for graph element types

Now the graph element types don’t contain properties. They only have their ID and label (and the value if it’s a VertexProperty). This is because some graph implementation of TinkerPop don’t return properties when it returns graph elements. See #6.

  • [BREAKING CHANGE] Remove avProperties field from AVertex.
  • [BREAKING CHANGE] Remove aeInVLabel, aeOutVLabel, aeInV, aeOutV and aeProperties fields from AEdge.
  • [BREAKING CHANGE] Remove avpProperties field from AVertexProperty.
  • [BREAKING CHANGE] Move PropertyMap class, FromGraphSONWithKey class, PropertyMapSingle type, PropertyMapList types and related functions to Graph.PropertyMap module. They are now all deprecated. Use PMap module instead.

Graph module - Key for element property

  • [BREAKING CHANGE] Internal of Key is modified from Greskell Text to Text, so that it can be an instance of PMapKey class.
  • [BREAKING CHANGE] Add KeyNoValue data constructor for KeyValue type.
  • Add unsafeCastKey function.
  • Add Keys type and related functions.

GTraversal module

  • [BREAKING CHANGE] Change the signature of the following functions because now ElementID is a newtype, not a type alias.
    • sV'
    • gV'
    • sE'
  • Add gValueMap, gProject and gByL functions.
  • Add LabeledByProjection type.
  • Add unsafeCastStart and unsafeCastEnd functions to ToGTraversal class.

Extra module

  • [BREAKING CHANGE] Remove writeAllProperties because PropertyMap is deprecated.
  • Add writeKeyValues function.
  • Add writePMapProperties function.
  • Add (<=:>) and (<=?>) operators.
  • Re-export property reader functions such as lookupAs.

AsLabel module

  • Now SelectedMap is a specialized type alias for PMap.
  • [BREAKING CHANGE] lookup, lookupM, lookupAs and lookupAsM are now re-exports from PMap module, whose signature is more polymorphic than the original ones and have a different exception type.
  • [BREAKING CHANGE] AsLookupException is removed. Use PMapLookupException instead.
  • Make AsLabel an instance of PMapKey.
  • Add IsString instance to AsLabel.

0.2.3.1 – 2019-10-02

  • Confirm test with semigroups-0.19.1.

0.2.3.0 – 2019-01-01

  • Add Extra module.

0.2.2.0 – 2018-11-23

  • Add new AsLabel module.

GTraversal module

  • Add gAs, gSelect1, gSelectN, gSelectBy1, gSelectByN, gOutV, gOutV', gInV, gInV' functions.

Binder module

  • Add newAsLabel function.

0.2.1.1 – 2018-10-03

  • Confirm test with base-4.12.0.0

0.2.1.0 – 2018-08-17

GTraversal module

  • Add (<$.>), (<*.>), gLimit, gTail, gSkip, gId, gLabel functions.

0.2.0.3 – 2018-07-24

  • Confirmed test with doctest-discover-0.2.0.0.

0.2.0.2 – 2018-06-24

  • Confirmed test with doctest-0.16.0.

0.2.0.1 – 2018-06-24

0.2.0.0 – 2018-06-21

  • Confirmed test with aeson-1.4.0.0 and hint-0.8.0.

Graph module

  • BREAKING CHANGE: Now AVertex, AEdge, AVertexProperty are based on GValue type, instead of GraphSON Value. This is for taking care of possibly nested GraphSON-encoded values in a generic way.

  • BREAKING CHANGE: parseOneValue, parseListValues, parseNonEmptyValues functions now require FromGraphSON constraint, instead of FromJSON, because property types of AVertex etc have changed.

  • Add Cardinality type and its enum instances.

  • Add KeyValue type and (=:) operator.

  • (internal change): PropertyMapGeneric is now based on HashMap.Strict.

The top Data.Greskell module

  • Re-export GMap and AsIterator modules.

GTraversal module

  • Add gV, gV', gAddE, gAddE', gFrom, gTo, gProperty, gPropertyV, sAddV, sAddV'.

0.1.1.0 – 2018-04-08

  • Add Semigroup instance to PropertyMapSingle and PropertyMapList.
  • Confirmed test with base-4.11 (with hint-test and server-test disabled)

0.1.0.0 – 2018-03-12

  • First version. Released on an unsuspecting world.