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

Safe HaskellNone
LanguageHaskell2010

Database.Cayley.Client

Contents

Synopsis

Documentation

data Quad Source #

Constructors

Quad 

Fields

Instances

Eq Quad Source #

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

Methods

(==) :: Quad -> Quad -> Bool #

(/=) :: Quad -> Quad -> Bool #

Show Quad Source # 

Methods

showsPrec :: Int -> Quad -> ShowS #

show :: Quad -> String #

showList :: [Quad] -> ShowS #

Generic Quad Source # 

Associated Types

type Rep Quad :: * -> * #

Methods

from :: Quad -> Rep Quad x #

to :: Rep Quad x -> Quad #

ToJSON Quad Source # 
FromJSON Quad Source # 
Binary Quad Source # 

Methods

put :: Quad -> Put #

get :: Get Quad #

putList :: [Quad] -> Put #

type Rep Quad Source # 

Connection

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

Operations

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")])]))

queryShape :: CayleyConnection -> Query -> IO (Either String Shape) Source #

Return the description of the given executed query.

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 results 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.

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

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

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