Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
160
Issues
160
List
Board
Labels
Milestones
Merge Requests
14
Merge Requests
14
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
haskell-gargantext
Commits
ed2c6313
Verified
Commit
ed2c6313
authored
Jan 23, 2023
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[graph] some refactoring of Core.Viz.Graph
parent
ce1cc37a
Pipeline
#3604
failed with stage
in 53 minutes and 46 seconds
Changes
13
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
318 additions
and
274 deletions
+318
-274
gargantext.cabal
gargantext.cabal
+3
-2
Context.hs
src/Gargantext/API/GraphQL/Context.hs
+1
-1
Update.hs
src/Gargantext/API/Node/Update.hs
+1
-1
Viz.hs
src/Gargantext/Core/Viz.hs
+0
-1
Graph.hs
src/Gargantext/Core/Viz/Graph.hs
+2
-230
API.hs
src/Gargantext/Core/Viz/Graph/API.hs
+1
-1
GEXF.hs
src/Gargantext/Core/Viz/Graph/GEXF.hs
+5
-6
PatriciaTreeTypes.hs
src/Gargantext/Core/Viz/Graph/PatriciaTreeTypes.hs
+32
-0
Tools.hs
src/Gargantext/Core/Viz/Graph/Tools.hs
+3
-3
Types.hs
src/Gargantext/Core/Viz/Graph/Types.hs
+265
-20
Hyperdata.hs
src/Gargantext/Database/Admin/Types/Hyperdata.hs
+3
-2
Default.hs
src/Gargantext/Database/Admin/Types/Hyperdata/Default.hs
+1
-1
Prelude.hs
src/Gargantext/Database/Admin/Types/Hyperdata/Prelude.hs
+1
-6
No files found.
gargantext.cabal
View file @
ed2c6313
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.3
5.1
.
-- This file has been generated from package.yaml by hpack version 0.3
4.7
.
--
-- see: https://github.com/sol/hpack
name: gargantext
version: 0.0.6.9.1
version:
0.0.6.9.1
synopsis: Search, map, share
description: Please see README.md
category: Data
...
...
@@ -232,6 +232,7 @@ library
Gargantext.Core.Viz.Graph.FGL
Gargantext.Core.Viz.Graph.GEXF
Gargantext.Core.Viz.Graph.Legend
Gargantext.Core.Viz.Graph.PatriciaTreeTypes
Gargantext.Core.Viz.Graph.Tools.Infomap
Gargantext.Core.Viz.Graph.Types
Gargantext.Core.Viz.Graph.Utils
...
...
src/Gargantext/API/GraphQL/Context.hs
View file @
ed2c6313
...
...
@@ -184,7 +184,7 @@ toHyperdataRowDocumentGQL hyperdata =
,
hrd_uniqId
=
_hr_uniqId
,
hrd_uniqIdBdd
=
_hr_uniqIdBdd
}
HyperdataRowContact
_
_
_
->
Nothing
HyperdataRowContact
{
}
->
Nothing
updateNodeContextCategory
::
(
HasConnectionPool
env
,
HasConfig
env
,
HasMail
env
,
HasSettings
env
)
=>
NodeContextCategoryMArgs
->
GqlM'
e
env
[
Int
]
...
...
src/Gargantext/API/Node/Update.hs
View file @
ed2c6313
...
...
@@ -29,9 +29,9 @@ import Gargantext.API.Ngrams.List (reIndexWith)
import
Gargantext.API.Prelude
(
GargM
,
GargError
,
simuLogs
)
import
Gargantext.Core.Methods.Similarities
(
GraphMetric
(
..
))
import
Gargantext.Core.Types.Main
(
ListType
(
..
))
import
Gargantext.Core.Viz.Graph
(
Strength
)
import
Gargantext.Core.Viz.Graph.API
(
recomputeGraph
)
import
Gargantext.Core.Viz.Graph.Tools
(
PartitionMethod
(
..
),
BridgenessMethod
(
..
))
import
Gargantext.Core.Viz.Graph.Types
(
Strength
)
import
Gargantext.Core.Viz.Phylo
(
PhyloSubConfig
(
..
),
subConfig2config
)
import
Gargantext.Core.Viz.Phylo.API.Tools
(
flowPhyloAPI
)
import
Gargantext.Database.Action.Flow.Pairing
(
pairing
)
...
...
src/Gargantext/Core/Viz.hs
View file @
ed2c6313
...
...
@@ -14,4 +14,3 @@ Vizualisation of text stats
module
Gargantext.Core.Viz
where
src/Gargantext/Core/Viz/Graph.hs
View file @
ed2c6313
...
...
@@ -9,7 +9,6 @@ Portability : POSIX
-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE TemplateHaskell #-}
module
Gargantext.Core.Viz.Graph
...
...
@@ -17,244 +16,16 @@ module Gargantext.Core.Viz.Graph
import
Data.ByteString.Lazy
as
DBL
(
readFile
,
writeFile
)
import
Data.HashMap.Strict
(
HashMap
,
lookup
)
import
Data.HashSet
(
HashSet
)
import
Data.Text
(
pack
)
import
GHC.IO
(
FilePath
)
import
Gargantext.API.Ngrams.Types
(
NgramsTerm
(
..
),
NgramsRepoElement
(
..
),
mSetToList
)
import
Gargantext.Core.Methods.Similarities
(
GraphMetric
)
import
Gargantext.Core.Types
(
ListId
)
import
Gargantext.Core.Viz.Graph.Types
import
Gargantext.Database.Admin.Types.Hyperdata.Prelude
import
Gargantext.Database.Admin.Types.Node
(
NodeId
)
import
Gargantext.Database.Schema.Ngrams
(
NgramsType
(
..
))
import
Gargantext.Prelude
import
qualified
Data.Aeson
as
DA
import
qualified
Data.HashSet
as
HashSet
import
qualified
Data.Text
as
Text
import
qualified
Text.Read
as
Text
data
TypeNode
=
Terms
|
Unknown
deriving
(
Show
,
Generic
)
instance
ToJSON
TypeNode
instance
FromJSON
TypeNode
instance
ToSchema
TypeNode
data
Attributes
=
Attributes
{
clust_default
::
Int
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
""
)
''
A
ttributes
)
instance
ToSchema
Attributes
data
Node
=
Node
{
node_size
::
Int
,
node_type
::
NgramsType
-- TypeNode -- TODO NgramsType | Person
,
node_id
::
Text
-- TODO NgramId
,
node_label
::
Text
,
node_x_coord
::
Double
,
node_y_coord
::
Double
,
node_attributes
::
Attributes
,
node_children
::
[
Text
]
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"node_"
)
''
N
ode
)
instance
ToSchema
Node
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"node_"
)
data
Edge
=
Edge
{
edge_source
::
Text
,
edge_target
::
Text
,
edge_weight
::
Double
,
edge_confluence
::
Double
,
edge_id
::
Text
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"edge_"
)
''
E
dge
)
instance
ToSchema
Edge
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"edge_"
)
---------------------------------------------------------------
data
LegendField
=
LegendField
{
_lf_id
::
Int
,
_lf_color
::
Text
,
_lf_label
::
Text
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_lf_"
)
''
L
egendField
)
instance
ToSchema
LegendField
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_lf_"
)
makeLenses
''
L
egendField
---------------------------------------------------------------
data
Partite
=
Partite
{
_partite_nodes
::
HashSet
NgramsTerm
,
_partite_type
::
NgramsType
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_partite_"
)
''
P
artite
)
instance
ToSchema
Partite
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_partite_"
)
makeLenses
''
P
artite
data
MultiPartite
=
MultiPartite
{
_multipartite_data1
::
Partite
,
_multipartite_data2
::
Partite
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_multipartite_"
)
''
M
ultiPartite
)
instance
ToSchema
MultiPartite
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_multipartite_"
)
makeLenses
''
M
ultiPartite
defaultMultipartite
::
MultiPartite
defaultMultipartite
=
MultiPartite
a
a
where
a
=
Partite
HashSet
.
empty
NgramsTerms
---------------------------------------------------------------
type
Version
=
Int
data
ListForGraph
=
ListForGraph
{
_lfg_listId
::
ListId
,
_lfg_version
::
Version
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_lfg_"
)
''
L
istForGraph
)
instance
ToSchema
ListForGraph
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_lfg_"
)
makeLenses
''
L
istForGraph
data
Strength
=
Strong
|
Weak
deriving
(
Generic
,
Eq
,
Ord
,
Enum
,
Bounded
,
Show
)
$
(
deriveJSON
(
unPrefix
""
)
''
S
trength
)
instance
ToSchema
Strength
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
""
)
instance
Arbitrary
Strength
where
arbitrary
=
elements
$
[
Strong
,
Weak
]
data
GraphMetadata
=
GraphMetadata
{
_gm_title
::
Text
-- title of the graph
,
_gm_metric
::
GraphMetric
,
_gm_edgesStrength
::
Maybe
Strength
,
_gm_corpusId
::
[
NodeId
]
-- we can map with different corpus
,
_gm_legend
::
[
LegendField
]
-- legend of the Graph
,
_gm_list
::
ListForGraph
,
_gm_startForceAtlas
::
Bool
-- , _gm_nodesTypes :: Maybe (NgramsType, NgramsType)
-- , _gm_version :: Int
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_gm_"
)
''
G
raphMetadata
)
instance
ToSchema
GraphMetadata
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_gm_"
)
makeLenses
''
G
raphMetadata
data
Graph
=
Graph
{
_graph_nodes
::
[
Node
]
,
_graph_edges
::
[
Edge
]
,
_graph_metadata
::
Maybe
GraphMetadata
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_graph_"
)
''
G
raph
)
makeLenses
''
G
raph
instance
ToSchema
Graph
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_graph_"
)
-- | Intances for the mock
instance
Arbitrary
Graph
where
arbitrary
=
elements
$
[
defaultGraph
]
defaultGraph
::
Graph
defaultGraph
=
Graph
{
_graph_nodes
=
[
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
4
,
node_type
=
NgramsTerms
,
node_id
=
pack
"0"
,
node_label
=
pack
"animal"
,
node_attributes
=
Attributes
{
clust_default
=
0
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
3
,
node_type
=
NgramsTerms
,
node_id
=
pack
"1"
,
node_label
=
pack
"bird"
,
node_attributes
=
Attributes
{
clust_default
=
0
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"2"
,
node_label
=
pack
"boy"
,
node_attributes
=
Attributes
{
clust_default
=
1
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"3"
,
node_label
=
pack
"dog"
,
node_attributes
=
Attributes
{
clust_default
=
0
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"4"
,
node_label
=
pack
"girl"
,
node_attributes
=
Attributes
{
clust_default
=
1
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
4
,
node_type
=
NgramsTerms
,
node_id
=
pack
"5"
,
node_label
=
pack
"human body"
,
node_attributes
=
Attributes
{
clust_default
=
1
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
3
,
node_type
=
NgramsTerms
,
node_id
=
pack
"6"
,
node_label
=
pack
"object"
,
node_attributes
=
Attributes
{
clust_default
=
2
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"7"
,
node_label
=
pack
"pen"
,
node_attributes
=
Attributes
{
clust_default
=
2
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"8"
,
node_label
=
pack
"table"
,
node_attributes
=
Attributes
{
clust_default
=
2
},
node_children
=
[]
}],
_graph_edges
=
[
Edge
{
edge_source
=
pack
"0"
,
edge_target
=
pack
"0"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"0"
},
Edge
{
edge_source
=
pack
"1"
,
edge_target
=
pack
"0"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"1"
},
Edge
{
edge_source
=
pack
"1"
,
edge_target
=
pack
"1"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"2"
},
Edge
{
edge_source
=
pack
"2"
,
edge_target
=
pack
"2"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"3"
},
Edge
{
edge_source
=
pack
"2"
,
edge_target
=
pack
"5"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"4"
},
Edge
{
edge_source
=
pack
"3"
,
edge_target
=
pack
"0"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"5"
},
Edge
{
edge_source
=
pack
"3"
,
edge_target
=
pack
"1"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"6"
},
Edge
{
edge_source
=
pack
"3"
,
edge_target
=
pack
"3"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"7"
},
Edge
{
edge_source
=
pack
"4"
,
edge_target
=
pack
"4"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"8"
},
Edge
{
edge_source
=
pack
"4"
,
edge_target
=
pack
"5"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"9"
},
Edge
{
edge_source
=
pack
"5"
,
edge_target
=
pack
"5"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"10"
},
Edge
{
edge_source
=
pack
"6"
,
edge_target
=
pack
"6"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"11"
},
Edge
{
edge_source
=
pack
"7"
,
edge_target
=
pack
"6"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"12"
},
Edge
{
edge_source
=
pack
"7"
,
edge_target
=
pack
"7"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"13"
},
Edge
{
edge_source
=
pack
"8"
,
edge_target
=
pack
"6"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"14"
},
Edge
{
edge_source
=
pack
"8"
,
edge_target
=
pack
"7"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"15"
},
Edge
{
edge_source
=
pack
"8"
,
edge_target
=
pack
"8"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"16"
}],
_graph_metadata
=
Nothing
}
-----------------------------------------------------------
-- V3 Gargantext Version
data
AttributesV3
=
AttributesV3
{
cl
::
Int
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
""
)
''
A
ttributesV3
)
data
NodeV3
=
NodeV3
{
no_id
::
Int
,
no_at
::
AttributesV3
,
no_s
::
Int
,
no_lb
::
Text
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"no_"
)
''
N
odeV3
)
data
EdgeV3
=
EdgeV3
{
eo_s
::
Int
,
eo_t
::
Int
,
eo_w
::
Text
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"eo_"
)
''
E
dgeV3
)
data
GraphV3
=
GraphV3
{
go_links
::
[
EdgeV3
]
,
go_nodes
::
[
NodeV3
]
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"go_"
)
''
G
raphV3
)
-----------------------------------------------------------
data
Camera
=
Camera
{
_camera_angle
::
Double
,
_camera_ratio
::
Double
,
_camera_x
::
Double
,
_camera_y
::
Double
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_camera_"
)
''
C
amera
)
makeLenses
''
C
amera
instance
ToSchema
Camera
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_camera_"
)
-----------------------------------------------------------
data
HyperdataGraph
=
HyperdataGraph
{
_hyperdataGraph
::
!
(
Maybe
Graph
)
,
_hyperdataCamera
::
!
(
Maybe
Camera
)
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_"
)
''
H
yperdataGraph
)
instance
ToSchema
HyperdataGraph
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_"
)
defaultHyperdataGraph
::
HyperdataGraph
defaultHyperdataGraph
=
HyperdataGraph
Nothing
Nothing
instance
Hyperdata
HyperdataGraph
makeLenses
''
H
yperdataGraph
instance
FromField
HyperdataGraph
where
fromField
=
fromField'
instance
DefaultFromField
SqlJsonb
HyperdataGraph
where
defaultFromField
=
fromPGSFromField
-----------------------------------------------------------
-- This type is used to return graph via API
-- hyperdataGraphAPI field is not a Maybe anymore – graph is always computed
data
HyperdataGraphAPI
=
HyperdataGraphAPI
{
_hyperdataAPIGraph
::
Graph
,
_hyperdataAPICamera
::
!
(
Maybe
Camera
)
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_hyperdataAPI"
)
''
H
yperdataGraphAPI
)
instance
ToSchema
HyperdataGraphAPI
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_hyperdataAPI"
)
makeLenses
''
H
yperdataGraphAPI
instance
FromField
HyperdataGraphAPI
where
fromField
=
fromField'
-----------------------------------------------------------
graphV3ToGraph
::
GraphV3
->
Graph
graphV3ToGraph
(
GraphV3
links
nodes
)
=
Graph
{
_graph_nodes
=
map
nodeV32node
nodes
...
...
@@ -276,6 +47,7 @@ graphV3ToGraph (GraphV3 links nodes) = Graph { _graph_nodes = map nodeV32node no
linkV32edge
::
Int
->
EdgeV3
->
Edge
linkV32edge
n
(
EdgeV3
eo_s'
eo_t'
eo_w'
)
=
Edge
{
edge_source
=
cs
$
show
eo_s'
,
edge_hidden
=
Just
False
,
edge_target
=
cs
$
show
eo_t'
,
edge_weight
=
(
Text
.
read
$
Text
.
unpack
eo_w'
)
::
Double
,
edge_confluence
=
0.5
...
...
src/Gargantext/Core/Viz/Graph/API.hs
View file @
ed2c6313
...
...
@@ -30,9 +30,9 @@ import Gargantext.API.Prelude
import
Gargantext.Core.Methods.Similarities
(
Similarity
(
..
),
GraphMetric
(
..
),
withMetric
)
import
Gargantext.Core.NodeStory
import
Gargantext.Core.Types.Main
import
Gargantext.Core.Viz.Graph
import
Gargantext.Core.Viz.Graph.GEXF
()
import
Gargantext.Core.Viz.Graph.Tools
-- (cooc2graph)
import
Gargantext.Core.Viz.Graph.Types
import
Gargantext.Database.Action.Metrics.NgramsByContext
(
getContextsByNgramsOnlyUser
)
import
Gargantext.Database.Action.Flow.Types
(
FlowCmdM
)
import
Gargantext.Database.Action.Node
(
mkNodeWithParent
)
...
...
src/Gargantext/Core/Viz/Graph/GEXF.hs
View file @
ed2c6313
...
...
@@ -19,18 +19,17 @@ module Gargantext.Core.Viz.Graph.GEXF
where
import
Gargantext.Prelude
import
Gargantext.Core.Viz.Graph
import
qualified
Data.HashMap.Lazy
as
HashMap
import
qualified
Gargantext.Prelude
as
P
import
qualified
Gargantext.Core.Viz.Graph
as
G
import
qualified
Gargantext.Core.Viz.Graph
.Types
as
G
import
qualified
Xmlbf
as
Xmlbf
import
Prelude
(
error
)
-- Converts to GEXF format
-- See https://gephi.org/gexf/format/
instance
Xmlbf
.
ToXml
Graph
where
toXml
(
Graph
{
_graph_nodes
=
graphNodes
,
_graph_edges
=
graphEdges
})
=
root
graphNodes
graphEdges
instance
Xmlbf
.
ToXml
G
.
G
raph
where
toXml
(
G
.
G
raph
{
_graph_nodes
=
graphNodes
,
_graph_edges
=
graphEdges
})
=
root
graphNodes
graphEdges
where
root
::
[
G
.
Node
]
->
[
G
.
Edge
]
->
[
Xmlbf
.
Node
]
root
gn
ge
=
...
...
@@ -77,5 +76,5 @@ instance Xmlbf.ToXml Graph where
-- just to be able to derive a client for the entire gargantext API,
-- we however want to avoid sollicitating this instance
instance
Xmlbf
.
FromXml
Graph
where
instance
Xmlbf
.
FromXml
G
.
G
raph
where
fromXml
=
error
"FromXml Graph: not defined, just a placeholder"
src/Gargantext/Core/Viz/Graph/PatriciaTreeTypes.hs
0 → 100644
View file @
ed2c6313
{-| Module : Gargantext.Core.Viz.Graph.PatriciaTreeTypes
Description :
Copyright : (c) CNRS, Alexandre Delanoë
License : AGPL + CECILL v3
Maintainer : contact@gargantext.org
Stability : experimental
Portability : POSIX
-}
module
Gargantext.Core.Viz.Graph.PatriciaTreeTypes
where
import
qualified
Data.Graph.Inductive.PatriciaTree
as
DGIP
-- import Data.IntMap (IntMap)
-- import qualified Eigen.Matrix as DenseMatrix
-- import Eigen.SparseMatrix (SparseMatrix)
--import qualified Data.Matrix.Sparse.Static as Sparse
-- import qualified Data.Vector.Unboxed as VU
-- import qualified Numeric.LinearAlgebra.Static as Dense
import
Protolude
hiding
(
sum
,
natVal
)
-- | Main Types use in this libray
type
Dict
=
IntMap
-- | Use the optimized version of Graph
type
Graph
a
b
=
DGIP
.
Gr
a
b
-- | Type for Matrix computation optimizations (with Eigen)
-- type MatrixD n = Dense.L n n
-- type MatrixS n = Sparse.Matrix n n Double
src/Gargantext/Core/Viz/Graph/Tools.hs
View file @
ed2c6313
...
...
@@ -25,11 +25,11 @@ import Gargantext.API.Ngrams.Types (NgramsTerm(..))
import
Gargantext.Core.Methods.Similarities
(
Similarity
(
..
),
measure
)
import
Gargantext.Core.Methods.Similarities.Conditional
(
conditional
)
import
Gargantext.Core.Statistics
import
Gargantext.Core.Viz.Graph
import
Gargantext.Core.Viz.Graph.Bridgeness
(
bridgeness
,
Bridgeness
(
..
),
Partitions
,
nodeId2comId
)
import
Gargantext.Core.Viz.Graph.Index
(
createIndices
,
toIndex
,
map2mat
,
mat2map
,
Index
,
MatrixShape
(
..
))
import
Gargantext.Core.Viz.Graph.Tools.IGraph
(
mkGraphUfromEdges
,
spinglass
)
import
Gargantext.Core.Viz.Graph.Tools.Infomap
(
infomap
)
import
Gargantext.Core.Viz.Graph.Types
(
Attributes
(
..
),
Edge
(
..
),
Graph
(
..
),
MultiPartite
(
..
),
Node
(
..
),
Partite
(
..
),
Strength
(
..
))
import
Gargantext.Database.Schema.Ngrams
(
NgramsType
(
..
))
import
Gargantext.Core.Viz.Graph.Utils
(
edgesFilter
,
nodesFilter
)
import
Gargantext.Prelude
...
...
@@ -242,6 +242,7 @@ data2graph multi labels' occurences bridge conf partitions =
(
bridge'
,
toKeep
)
=
nodesFilter
(
\
v
->
v
>
1
)
bridge
edges
=
[
Edge
{
edge_source
=
cs
(
show
s
)
,
edge_hidden
=
Nothing
,
edge_target
=
cs
(
show
t
)
,
edge_weight
=
weight
,
edge_confluence
=
maybe
0
identity
$
Map
.
lookup
(
s
,
t
)
conf
...
...
@@ -340,7 +341,7 @@ cooc2graph'' distance threshold myCooc = neighbourMap
-- Quentin
filterByNeighbours
::
Double
->
Map
(
Index
,
Index
)
Double
->
Map
(
Index
,
Index
)
Double
filterByNeighbours
threshold
distanceMap
=
filteredMap
where
where
indexes
::
[
Index
]
indexes
=
List
.
nub
$
List
.
concat
$
map
(
\
(
idx
,
idx'
)
->
[
idx
,
idx'
]
)
$
Map
.
keys
distanceMap
filteredMap
::
Map
(
Index
,
Index
)
Double
...
...
@@ -354,4 +355,3 @@ filterByNeighbours threshold distanceMap = filteredMap
$
Map
.
filterWithKey
(
\
(
from
,
_
)
_
->
idx
==
from
)
distanceMap
in
List
.
take
(
round
threshold
)
selected
)
indexes
src/Gargantext/Core/Viz/Graph/Types.hs
View file @
ed2c6313
{-| Module : Graph.Types
Description :
Copyright : (c) CNRS, Alexandre Delanoë
{-|
Module : Gargantext.Core.Viz.Graph.Types
Description : Graph utils
Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3
Maintainer :
contact
@gargantext.org
Maintainer :
team
@gargantext.org
Stability : experimental
Portability : POSIX
-}
module
Gargantext.Core.Viz.Graph.Types
where
{-# LANGUAGE TemplateHaskell #-}
import
qualified
Data.Graph.Inductive.PatriciaTree
as
DGIP
-- import Data.IntMap (IntMap)
-- import qualified Eigen.Matrix as DenseMatrix
-- import Eigen.SparseMatrix (SparseMatrix)
module
Gargantext.Core.Viz.Graph.Types
where
--import qualified Data.Matrix.Sparse.Static as Sparse
-- import qualified Data.Vector.Unboxed as VU
-- import qualified Numeric.LinearAlgebra.Static as Dense
import
Protolude
hiding
(
sum
,
natVal
)
import
Control.Lens
(
makeLenses
)
import
Database.PostgreSQL.Simple.FromField
(
FromField
(
..
))
import
Data.Aeson
(
FromJSON
,
ToJSON
)
import
Data.Aeson.TH
(
deriveJSON
)
import
Data.HashSet
(
HashSet
)
import
qualified
Data.HashSet
as
HashSet
import
Data.Swagger
(
ToSchema
(
..
),
genericDeclareNamedSchema
)
import
Data.Text
(
Text
,
pack
)
import
Gargantext.API.Ngrams.Types
(
NgramsTerm
)
import
Gargantext.Core.Methods.Similarities
(
GraphMetric
)
import
Gargantext.Core.Types
(
ListId
)
import
Gargantext.Core.Utils.Prefix
(
unPrefix
,
unPrefixSwagger
)
import
Gargantext.Database.Admin.Types.Hyperdata.Prelude
(
Hyperdata
)
import
Gargantext.Database.Admin.Types.Node
(
NodeId
)
import
Gargantext.Database.Prelude
(
fromField'
)
import
Gargantext.Database.Schema.Ngrams
(
NgramsType
(
..
))
import
Gargantext.Prelude
import
GHC.Generics
(
Generic
)
import
Opaleye
(
DefaultFromField
(
..
),
SqlJsonb
,
fromPGSFromField
)
import
Test.QuickCheck
(
elements
)
import
Test.QuickCheck.Arbitrary
(
Arbitrary
,
arbitrary
)
-- | Main Types use in this libray
type
Dict
=
IntMap
data
TypeNode
=
Terms
|
Unknown
deriving
(
Show
,
Generic
)
-- | Use the optimized version of Graph
type
Graph
a
b
=
DGIP
.
Gr
a
b
instance
ToJSON
TypeNode
instance
FromJSON
TypeNode
instance
ToSchema
TypeNode
-- | Type for Matrix computation optimizations (with Eigen)
-- type MatrixD n = Dense.L n n
-- type MatrixS n = Sparse.Matrix n n Double
data
Attributes
=
Attributes
{
clust_default
::
Int
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
""
)
''
A
ttributes
)
instance
ToSchema
Attributes
data
Node
=
Node
{
node_size
::
Int
,
node_type
::
NgramsType
-- TypeNode -- TODO NgramsType | Person
,
node_id
::
Text
-- TODO NgramId
,
node_label
::
Text
,
node_x_coord
::
Double
,
node_y_coord
::
Double
,
node_attributes
::
Attributes
,
node_children
::
[
Text
]
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"node_"
)
''
N
ode
)
instance
ToSchema
Node
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"node_"
)
data
Edge
=
Edge
{
edge_confluence
::
Double
,
edge_hidden
::
Maybe
Bool
,
edge_id
::
Text
,
edge_source
::
Text
,
edge_target
::
Text
,
edge_weight
::
Double
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"edge_"
)
''
E
dge
)
instance
ToSchema
Edge
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"edge_"
)
---------------------------------------------------------------
data
LegendField
=
LegendField
{
_lf_id
::
Int
,
_lf_color
::
Text
,
_lf_label
::
Text
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_lf_"
)
''
L
egendField
)
instance
ToSchema
LegendField
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_lf_"
)
makeLenses
''
L
egendField
---------------------------------------------------------------
data
Partite
=
Partite
{
_partite_nodes
::
HashSet
NgramsTerm
,
_partite_type
::
NgramsType
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_partite_"
)
''
P
artite
)
instance
ToSchema
Partite
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_partite_"
)
makeLenses
''
P
artite
data
MultiPartite
=
MultiPartite
{
_multipartite_data1
::
Partite
,
_multipartite_data2
::
Partite
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_multipartite_"
)
''
M
ultiPartite
)
instance
ToSchema
MultiPartite
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_multipartite_"
)
makeLenses
''
M
ultiPartite
---------------------------------------------------------------
type
Version
=
Int
data
ListForGraph
=
ListForGraph
{
_lfg_listId
::
ListId
,
_lfg_version
::
Version
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_lfg_"
)
''
L
istForGraph
)
instance
ToSchema
ListForGraph
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_lfg_"
)
makeLenses
''
L
istForGraph
data
Strength
=
Strong
|
Weak
deriving
(
Generic
,
Eq
,
Ord
,
Enum
,
Bounded
,
Show
)
$
(
deriveJSON
(
unPrefix
""
)
''
S
trength
)
instance
ToSchema
Strength
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
""
)
data
GraphMetadata
=
GraphMetadata
{
_gm_title
::
Text
-- title of the graph
,
_gm_metric
::
GraphMetric
,
_gm_edgesStrength
::
Maybe
Strength
,
_gm_corpusId
::
[
NodeId
]
-- we can map with different corpus
,
_gm_legend
::
[
LegendField
]
-- legend of the Graph
,
_gm_list
::
ListForGraph
,
_gm_startForceAtlas
::
Bool
-- , _gm_nodesTypes :: Maybe (NgramsType, NgramsType)
-- , _gm_version :: Int
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_gm_"
)
''
G
raphMetadata
)
instance
ToSchema
GraphMetadata
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_gm_"
)
makeLenses
''
G
raphMetadata
data
Graph
=
Graph
{
_graph_nodes
::
[
Node
]
,
_graph_edges
::
[
Edge
]
,
_graph_metadata
::
Maybe
GraphMetadata
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_graph_"
)
''
G
raph
)
makeLenses
''
G
raph
instance
ToSchema
Graph
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_graph_"
)
-----------------------------------------------------------
-- V3 Gargantext Version
data
AttributesV3
=
AttributesV3
{
cl
::
Int
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
""
)
''
A
ttributesV3
)
data
NodeV3
=
NodeV3
{
no_id
::
Int
,
no_at
::
AttributesV3
,
no_s
::
Int
,
no_lb
::
Text
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"no_"
)
''
N
odeV3
)
data
EdgeV3
=
EdgeV3
{
eo_s
::
Int
,
eo_t
::
Int
,
eo_w
::
Text
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"eo_"
)
''
E
dgeV3
)
data
GraphV3
=
GraphV3
{
go_links
::
[
EdgeV3
]
,
go_nodes
::
[
NodeV3
]
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"go_"
)
''
G
raphV3
)
-----------------------------------------------------------
data
Camera
=
Camera
{
_camera_angle
::
Double
,
_camera_ratio
::
Double
,
_camera_x
::
Double
,
_camera_y
::
Double
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_camera_"
)
''
C
amera
)
makeLenses
''
C
amera
instance
ToSchema
Camera
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_camera_"
)
-----------------------------------------------------------
data
HyperdataGraph
=
HyperdataGraph
{
_hyperdataGraph
::
!
(
Maybe
Graph
)
,
_hyperdataCamera
::
!
(
Maybe
Camera
)
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_"
)
''
H
yperdataGraph
)
instance
ToSchema
HyperdataGraph
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_"
)
instance
Hyperdata
HyperdataGraph
makeLenses
''
H
yperdataGraph
instance
FromField
HyperdataGraph
where
fromField
=
fromField'
instance
DefaultFromField
SqlJsonb
HyperdataGraph
where
defaultFromField
=
fromPGSFromField
-----------------------------------------------------------
-- This type is used to return graph via API
-- hyperdataGraphAPI field is not a Maybe anymore – graph is always computed
data
HyperdataGraphAPI
=
HyperdataGraphAPI
{
_hyperdataAPIGraph
::
Graph
,
_hyperdataAPICamera
::
!
(
Maybe
Camera
)
}
deriving
(
Show
,
Generic
)
$
(
deriveJSON
(
unPrefix
"_hyperdataAPI"
)
''
H
yperdataGraphAPI
)
instance
ToSchema
HyperdataGraphAPI
where
declareNamedSchema
=
genericDeclareNamedSchema
(
unPrefixSwagger
"_hyperdataAPI"
)
makeLenses
''
H
yperdataGraphAPI
instance
FromField
HyperdataGraphAPI
where
fromField
=
fromField'
---------------------- defaults
defaultMultipartite
::
MultiPartite
defaultMultipartite
=
MultiPartite
a
a
where
a
=
Partite
HashSet
.
empty
NgramsTerms
defaultGraph
::
Graph
defaultGraph
=
Graph
{
_graph_nodes
=
[
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
4
,
node_type
=
NgramsTerms
,
node_id
=
pack
"0"
,
node_label
=
pack
"animal"
,
node_attributes
=
Attributes
{
clust_default
=
0
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
3
,
node_type
=
NgramsTerms
,
node_id
=
pack
"1"
,
node_label
=
pack
"bird"
,
node_attributes
=
Attributes
{
clust_default
=
0
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"2"
,
node_label
=
pack
"boy"
,
node_attributes
=
Attributes
{
clust_default
=
1
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"3"
,
node_label
=
pack
"dog"
,
node_attributes
=
Attributes
{
clust_default
=
0
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"4"
,
node_label
=
pack
"girl"
,
node_attributes
=
Attributes
{
clust_default
=
1
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
4
,
node_type
=
NgramsTerms
,
node_id
=
pack
"5"
,
node_label
=
pack
"human body"
,
node_attributes
=
Attributes
{
clust_default
=
1
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
3
,
node_type
=
NgramsTerms
,
node_id
=
pack
"6"
,
node_label
=
pack
"object"
,
node_attributes
=
Attributes
{
clust_default
=
2
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"7"
,
node_label
=
pack
"pen"
,
node_attributes
=
Attributes
{
clust_default
=
2
},
node_children
=
[]
},
Node
{
node_x_coord
=
0
,
node_y_coord
=
0
,
node_size
=
2
,
node_type
=
NgramsTerms
,
node_id
=
pack
"8"
,
node_label
=
pack
"table"
,
node_attributes
=
Attributes
{
clust_default
=
2
},
node_children
=
[]
}],
_graph_edges
=
[
Edge
{
edge_source
=
pack
"0"
,
edge_target
=
pack
"0"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"0"
,
..
},
Edge
{
edge_source
=
pack
"1"
,
edge_target
=
pack
"0"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"1"
,
..
},
Edge
{
edge_source
=
pack
"1"
,
edge_target
=
pack
"1"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"2"
,
..
},
Edge
{
edge_source
=
pack
"2"
,
edge_target
=
pack
"2"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"3"
,
..
},
Edge
{
edge_source
=
pack
"2"
,
edge_target
=
pack
"5"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"4"
,
..
},
Edge
{
edge_source
=
pack
"3"
,
edge_target
=
pack
"0"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"5"
,
..
},
Edge
{
edge_source
=
pack
"3"
,
edge_target
=
pack
"1"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"6"
,
..
},
Edge
{
edge_source
=
pack
"3"
,
edge_target
=
pack
"3"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"7"
,
..
},
Edge
{
edge_source
=
pack
"4"
,
edge_target
=
pack
"4"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"8"
,
..
},
Edge
{
edge_source
=
pack
"4"
,
edge_target
=
pack
"5"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"9"
,
..
},
Edge
{
edge_source
=
pack
"5"
,
edge_target
=
pack
"5"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"10"
,
..
},
Edge
{
edge_source
=
pack
"6"
,
edge_target
=
pack
"6"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"11"
,
..
},
Edge
{
edge_source
=
pack
"7"
,
edge_target
=
pack
"6"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"12"
,
..
},
Edge
{
edge_source
=
pack
"7"
,
edge_target
=
pack
"7"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"13"
,
..
},
Edge
{
edge_source
=
pack
"8"
,
edge_target
=
pack
"6"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"14"
,
..
},
Edge
{
edge_source
=
pack
"8"
,
edge_target
=
pack
"7"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"15"
,
..
},
Edge
{
edge_source
=
pack
"8"
,
edge_target
=
pack
"8"
,
edge_weight
=
1.0
,
edge_confluence
=
0.5
,
edge_id
=
pack
"16"
,
..
}],
_graph_metadata
=
Nothing
}
where
edge_hidden
=
Just
False
defaultHyperdataGraph
::
HyperdataGraph
defaultHyperdataGraph
=
HyperdataGraph
Nothing
Nothing
-- | Intances for the mock
instance
Arbitrary
Strength
where
arbitrary
=
elements
$
[
Strong
,
Weak
]
instance
Arbitrary
Graph
where
arbitrary
=
elements
$
[
defaultGraph
]
src/Gargantext/Database/Admin/Types/Hyperdata.hs
View file @
ed2c6313
...
...
@@ -10,6 +10,7 @@ Portability : POSIX
-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module
Gargantext.Database.Admin.Types.Hyperdata
(
module
Gargantext
.
Database
.
Admin
.
Types
.
Hyperdata
.
Any
...
...
@@ -26,7 +27,7 @@ module Gargantext.Database.Admin.Types.Hyperdata
,
module
Gargantext
.
Database
.
Admin
.
Types
.
Hyperdata
.
Texts
,
module
Gargantext
.
Database
.
Admin
.
Types
.
Hyperdata
.
Phylo
,
module
Gargantext
.
Database
.
Admin
.
Types
.
Hyperdata
.
User
,
module
Gargantext
.
Core
.
Viz
.
Graph
,
module
Gargantext
.
Core
.
Viz
.
Graph
.
Types
)
where
...
...
@@ -44,4 +45,4 @@ import Gargantext.Database.Admin.Types.Hyperdata.Prelude (Hyperdata)
import
Gargantext.Database.Admin.Types.Hyperdata.Texts
import
Gargantext.Database.Admin.Types.Hyperdata.Phylo
import
Gargantext.Database.Admin.Types.Hyperdata.User
import
Gargantext.Core.Viz.Graph
(
HyperdataGraph
(
..
),
defaultHyperdataGraph
)
import
Gargantext.Core.Viz.Graph
.Types
(
HyperdataGraph
(
..
),
defaultHyperdataGraph
)
src/Gargantext/Database/Admin/Types/Hyperdata/Default.hs
View file @
ed2c6313
...
...
@@ -27,7 +27,7 @@ import Gargantext.Database.Admin.Types.Hyperdata.Prelude
data
DefaultHyperdata
=
DefaultUser
HyperdataUser
DefaultUser
HyperdataUser
|
DefaultContact
HyperdataContact
|
DefaultCorpus
HyperdataCorpus
...
...
src/Gargantext/Database/Admin/Types/Hyperdata/Prelude.hs
View file @
ed2c6313
...
...
@@ -11,7 +11,7 @@ Portability : POSIX
module
Gargantext.Database.Admin.Types.Hyperdata.Prelude
(
module
Control
.
Lens
(
module
Control
.
Lens
,
module
Data
.
Aeson
,
module
Data
.
Aeson
.
TH
,
module
Data
.
Aeson
.
Types
...
...
@@ -66,8 +66,3 @@ data Chart =
instance
ToJSON
Chart
instance
FromJSON
Chart
instance
ToSchema
Chart
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment