net-spider-0.3.2.0: A graph database middleware to maintain a time-varying graph.

MaintainerToshio Ito <debug.ito@gmail.com>
Safe HaskellNone
LanguageHaskell2010

NetSpider.Query

Contents

Description

 
Synopsis

Query

data Query n na fla sla Source #

Query for snapshot graph. You can get the default Query by defQuery function, and customize its fields by the accessor functions.

  • Type n: node ID
  • Type na: node attributes
  • Type fla: attributes of found links.
  • Type sla: attributes of snapshot links. Converted from fla by unifyLinkSamples.

defQuery Source #

Arguments

:: (Eq n, Show n) 
=> [n]

startsFrom field.

-> Query n na fla fla 

The default Query.

accessor functions

startsFrom :: Query n na fla sla -> [n] Source #

Nodes from which the Spider starts traversing the history graph.

unifyLinkSamples :: Query n na fla sla -> LinkSampleUnifier n na fla sla Source #

See the document of LinkSampleUnifier.

Default: unifyToOne.

timeInterval :: Query n na fla sla -> Interval Timestamp Source #

Time interval to query. Only the local findings observed during this interval are used to make the snapshot graph.

Default: (-infinity, +infinity)

Since: 0.2.0.0

foundNodePolicy :: Query n na fla sla -> FoundNodePolicy n na Source #

Policy to treat FoundNodes (local findings).

Default: policyOverwrite

Since: 0.2.0.0

FoundNodePolicy

data FoundNodePolicy n na Source #

Policy to treat FoundNodes (local findings) when the spider creates the snapshot graph.

Eq instance was added in version 0.3.2.0

Since: 0.2.0.0

Instances
Eq (FoundNodePolicy n na) Source # 
Instance details

Defined in NetSpider.Query.Internal

Methods

(==) :: FoundNodePolicy n na -> FoundNodePolicy n na -> Bool #

(/=) :: FoundNodePolicy n na -> FoundNodePolicy n na -> Bool #

Show (FoundNodePolicy n na) Source # 
Instance details

Defined in NetSpider.Query.Internal

policyOverwrite :: FoundNodePolicy n na Source #

A FoundNode always overwrites old FoundNodes, so only the latest one is valid.

This policy is appropriate when you can always get the complete neighbor information of a given node at once.

Since: 0.2.0.0

policyAppend :: FoundNodePolicy n na Source #

A FoundNode appends neighbor information to old FoundNodes. When the spider makes the snapshot graph, it aggregates all FoundNodes in the query range.

This policy is appropriate when you can only get part of neighbor information of a given node at once.

Since: 0.2.0.0

Utilities

secUpTo :: Int64 -> Timestamp -> Interval Timestamp Source #

s secUpTo ts returns the time interval of length s (in seconds) and up to ts. The interval is inclusive for both ends.

Since: 0.2.0.0

Re-exports

data Interval r #

The intervals (i.e. connected and convex subsets) over real numbers R.

Instances
Eq r => Eq (Interval r) 
Instance details

Defined in Data.Interval

Methods

(==) :: Interval r -> Interval r -> Bool #

(/=) :: Interval r -> Interval r -> Bool #

(Real r, Fractional r) => Fractional (Interval r) 
Instance details

Defined in Data.Interval

(Ord r, Data r) => Data (Interval r) 
Instance details

Defined in Data.Interval

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Interval r -> c (Interval r) #

gunfold :: (forall b r0. Data b => c (b -> r0) -> c r0) -> (forall r1. r1 -> c r1) -> Constr -> c (Interval r) #

toConstr :: Interval r -> Constr #

dataTypeOf :: Interval r -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Interval r)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Interval r)) #

gmapT :: (forall b. Data b => b -> b) -> Interval r -> Interval r #

gmapQl :: (r0 -> r' -> r0) -> r0 -> (forall d. Data d => d -> r') -> Interval r -> r0 #

gmapQr :: (r' -> r0 -> r0) -> r0 -> (forall d. Data d => d -> r') -> Interval r -> r0 #

gmapQ :: (forall d. Data d => d -> u) -> Interval r -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Interval r -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Interval r -> m (Interval r) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Interval r -> m (Interval r) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Interval r -> m (Interval r) #

(Num r, Ord r) => Num (Interval r) 
Instance details

Defined in Data.Interval

(Ord r, Read r) => Read (Interval r) 
Instance details

Defined in Data.Interval

(Ord r, Show r) => Show (Interval r) 
Instance details

Defined in Data.Interval

Methods

showsPrec :: Int -> Interval r -> ShowS #

show :: Interval r -> String #

showList :: [Interval r] -> ShowS #

Hashable r => Hashable (Interval r) 
Instance details

Defined in Data.Interval

Methods

hashWithSalt :: Int -> Interval r -> Int #

hash :: Interval r -> Int #

NFData r => NFData (Interval r) 
Instance details

Defined in Data.Interval

Methods

rnf :: Interval r -> () #

Ord r => JoinSemiLattice (Interval r) 
Instance details

Defined in Data.Interval

Methods

(\/) :: Interval r -> Interval r -> Interval r #

join :: Interval r -> Interval r -> Interval r #

Ord r => MeetSemiLattice (Interval r) 
Instance details

Defined in Data.Interval

Methods

(/\) :: Interval r -> Interval r -> Interval r #

meet :: Interval r -> Interval r -> Interval r #

Ord r => Lattice (Interval r) 
Instance details

Defined in Data.Interval

Ord r => BoundedJoinSemiLattice (Interval r) 
Instance details

Defined in Data.Interval

Methods

bottom :: Interval r #

Ord r => BoundedMeetSemiLattice (Interval r) 
Instance details

Defined in Data.Interval

Methods

top :: Interval r #

Ord r => BoundedLattice (Interval r) 
Instance details

Defined in Data.Interval

(<=..<=) infix 5 #

Arguments

:: Ord r 
=> Extended r

lower bound l

-> Extended r

upper bound u

-> Interval r 

closed interval [l,u]

(<..<=) infix 5 #

Arguments

:: Ord r 
=> Extended r

lower bound l

-> Extended r

upper bound u

-> Interval r 

left-open right-closed interval (l,u]

(<=..<) infix 5 #

Arguments

:: Ord r 
=> Extended r

lower bound l

-> Extended r

upper bound u

-> Interval r 

left-closed right-open interval [l, u)

(<..<) infix 5 #

Arguments

:: Ord r 
=> Extended r

lower bound l

-> Extended r

upper bound u

-> Interval r 

open interval (l, u)

data Extended r #

Extended r is an extension of r with positive/negative infinity (±∞).

Constructors

NegInf

negative infinity (-∞)

Finite !r

finite value

PosInf

positive infinity (+∞)

Instances
Functor Extended 
Instance details

Defined in Data.ExtendedReal

Methods

fmap :: (a -> b) -> Extended a -> Extended b #

(<$) :: a -> Extended b -> Extended a #

Bounded (Extended r) 
Instance details

Defined in Data.ExtendedReal

Eq r => Eq (Extended r) 
Instance details

Defined in Data.ExtendedReal

Methods

(==) :: Extended r -> Extended r -> Bool #

(/=) :: Extended r -> Extended r -> Bool #

(Fractional r, Ord r) => Fractional (Extended r)

Note that Extended r is not a field, nor a ring.

Instance details

Defined in Data.ExtendedReal

Data r => Data (Extended r) 
Instance details

Defined in Data.ExtendedReal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Extended r -> c (Extended r) #

gunfold :: (forall b r0. Data b => c (b -> r0) -> c r0) -> (forall r1. r1 -> c r1) -> Constr -> c (Extended r) #

toConstr :: Extended r -> Constr #

dataTypeOf :: Extended r -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Extended r)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Extended r)) #

gmapT :: (forall b. Data b => b -> b) -> Extended r -> Extended r #

gmapQl :: (r0 -> r' -> r0) -> r0 -> (forall d. Data d => d -> r') -> Extended r -> r0 #

gmapQr :: (r' -> r0 -> r0) -> r0 -> (forall d. Data d => d -> r') -> Extended r -> r0 #

gmapQ :: (forall d. Data d => d -> u) -> Extended r -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Extended r -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Extended r -> m (Extended r) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Extended r -> m (Extended r) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Extended r -> m (Extended r) #

(Num r, Ord r) => Num (Extended r)

Note that Extended r is not a field, nor a ring.

PosInf + NegInf is left undefined as usual, but we define 0 * PosInf = 0 * NegInf = 0 by following the convention of probability or measure theory.

Instance details

Defined in Data.ExtendedReal

Ord r => Ord (Extended r) 
Instance details

Defined in Data.ExtendedReal

Methods

compare :: Extended r -> Extended r -> Ordering #

(<) :: Extended r -> Extended r -> Bool #

(<=) :: Extended r -> Extended r -> Bool #

(>) :: Extended r -> Extended r -> Bool #

(>=) :: Extended r -> Extended r -> Bool #

max :: Extended r -> Extended r -> Extended r #

min :: Extended r -> Extended r -> Extended r #

Read r => Read (Extended r) 
Instance details

Defined in Data.ExtendedReal

Show r => Show (Extended r) 
Instance details

Defined in Data.ExtendedReal

Methods

showsPrec :: Int -> Extended r -> ShowS #

show :: Extended r -> String #

showList :: [Extended r] -> ShowS #

Hashable r => Hashable (Extended r) 
Instance details

Defined in Data.ExtendedReal

Methods

hashWithSalt :: Int -> Extended r -> Int #

hash :: Extended r -> Int #

NFData r => NFData (Extended r) 
Instance details

Defined in Data.ExtendedReal

Methods

rnf :: Extended r -> () #