cayley-client-0.1.5.1: A Haskell client for the Cayley graph database

Safe HaskellNone
LanguageHaskell2010

Database.Cayley.Client

Contents

Synopsis

Documentation

data Quad Source

Constructors

Quad 

Fields

subject :: Text

Subject node

predicate :: Text

Predicate node

object :: Text

Object node

label :: Maybe Text

Label node

Instances

Eq Quad Source

Two quads are equals when subject, predicate, object and label are equals.

Show Quad Source 
ToJSON Quad Source 
FromJSON Quad Source 

Connect & query

defaultCayleyConfig :: CayleyConfig Source

CayleyConfig { serverPort = 64210 , serverName = "localhost" , apiVersion = V1 , queryLang = Gremlin }

connectCayley :: CayleyConfig -> IO CayleyConnection Source

Get a connection to Cayley with the given configuration.

λ> conn <- connectCayley defaultCayleyConfig

query :: CayleyConnection -> Query -> IO (Either String Value) Source

Perform a query, in Gremlin graph query language per default (or in MQL).

λ> query conn "graph.Vertex('Humphrey Bogart').In('name').All()"
Right (Array (fromList [Object (fromList [("id",String "/en/humphrey_bogart")])]))

REST API operations

write :: CayleyConnection -> Quad -> IO (Maybe Value) Source

Write the given Quad.

writeQuad :: CayleyConnection -> Subject -> Predicate -> Object -> Maybe Label -> IO (Maybe Value) Source

Write a Quad with the given subject, predicate, object and optional label. Throw result or extract amount of query successfulResults from it.

λ> writeQuad conn "Humphrey" "loves" "Lauren" (Just "In love")
Just (Object (fromList [("result",String "Successfully wrote 1 quads.")]))

writeQuads :: CayleyConnection -> [Quad] -> IO (Maybe Value) Source

Write the given list of Quad(s).

writeNQuadFile :: (MonadThrow m, MonadIO m) => CayleyConnection -> FilePath -> m (Maybe Value) Source

Write a N-Quad file.

λ> writeNQuadFile conn "testdata.nq"
Just (Object (fromList [("result",String "Successfully wrote 11 quads.")]))

delete :: CayleyConnection -> Quad -> IO (Maybe Value) Source

Delete the given Quad.

deleteQuad :: CayleyConnection -> Subject -> Predicate -> Object -> Maybe Label -> IO (Maybe Value) Source

Delete the Quad defined by the given subject, predicate, object and optional label.

deleteQuads :: CayleyConnection -> [Quad] -> IO (Maybe Value) Source

Delete the given list of Quad(s).

Utils

createQuad :: Subject -> Predicate -> Object -> Maybe Label -> Maybe Quad Source

Given a subject, a predicate, an object and an optional label, create a valid Quad.

isValid :: Quad -> Bool Source

A valid Quad has its subject, predicate and object not empty.

successfulResults :: Maybe Value -> IO (Either String Int) Source

Get amount of successful results from a write/delete Quad(s) operation, or an explicite error message.

λ> writeNQuadFile conn "testdata.nq" >>= successfulResults
Right 11