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
141
Issues
141
List
Board
Labels
Milestones
Merge Requests
5
Merge Requests
5
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
ae0d8122
Commit
ae0d8122
authored
Nov 05, 2020
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FEAT] SocialLists add option to keep parents (useful for Sources/Institutes ngrams for instance)
parent
a6485d49
Pipeline
#1196
canceled with stage
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
28 deletions
+36
-28
Social.hs
src/Gargantext/Core/Text/List/Social.hs
+3
-3
Group.hs
src/Gargantext/Core/Text/List/Social/Group.hs
+33
-25
No files found.
src/Gargantext/Core/Text/List/Social.hs
View file @
ae0d8122
...
...
@@ -83,11 +83,11 @@ flowSocialListByMode' :: ( RepoCmdM env err m
,
HasNodeError
err
,
HasTreeError
err
)
=>
[
NodeId
]
->
NgramsType
->
Set
Text
=>
KeepAllParents
->
[
NodeId
]
->
NgramsType
->
Set
Text
->
m
(
Map
Text
FlowListScores
)
flowSocialListByMode'
ns
nt
st
=
do
flowSocialListByMode'
k
ns
nt
st
=
do
ngramsRepos
<-
mapM
(
\
l
->
getListNgrams
[
l
]
nt
)
ns
pure
$
toFlowListScores
st
Map
.
empty
ngramsRepos
pure
$
toFlowListScores
k
st
Map
.
empty
ngramsRepos
------------------------------------------------------------------------
-- TODO: maybe use social groups too
...
...
src/Gargantext/Core/Text/List/Social/Group.hs
View file @
ae0d8122
...
...
@@ -81,28 +81,31 @@ instance Semigroup FlowListScores where
-- | toFlowListScores which generate Score from list of Map Text
-- NgramsRepoElement
toFlowListScores
::
Set
Text
toFlowListScores
::
KeepAllParents
->
Set
Text
->
Map
Text
FlowListScores
->
[
Map
Text
NgramsRepoElement
]
->
Map
Text
FlowListScores
toFlowListScores
ts
=
foldl'
(
toFlowListScores'
ts
)
toFlowListScores
k
ts
=
foldl'
(
toFlowListScores'
k
ts
)
where
toFlowListScores'
::
Set
Text
toFlowListScores'
::
KeepAllParents
->
Set
Text
->
Map
Text
FlowListScores
->
Map
Text
NgramsRepoElement
->
Map
Text
FlowListScores
toFlowListScores'
ts'
to'
ngramsRepo
=
Set
.
foldl'
(
toFlowListScores''
ts'
ngramsRepo
)
to'
ts'
toFlowListScores''
::
Set
Text
->
Map
Text
NgramsRepoElement
->
Map
Text
FlowListScores
->
Text
->
Map
Text
FlowListScores
toFlowListScores''
ss
ngramsRepo
to''
t
=
toFlowListScores'
k
ts'
to'
ngramsRepo
=
Set
.
foldl'
(
toFlowListScores''
k
ts'
ngramsRepo
)
to'
ts'
toFlowListScores''
::
KeepAllParents
->
Set
Text
->
Map
Text
NgramsRepoElement
->
Map
Text
FlowListScores
->
Text
->
Map
Text
FlowListScores
toFlowListScores''
k
ss
ngramsRepo
to''
t
=
case
Map
.
lookup
t
ngramsRepo
of
Nothing
->
to''
Just
nre
->
Map
.
alter
(
addParent
nre
ss
)
t
Just
nre
->
Map
.
alter
(
addParent
k
nre
ss
)
t
$
Map
.
alter
(
addList
$
_nre_list
nre
)
t
to''
------------------------------------------------------------------------
...
...
@@ -146,31 +149,36 @@ addList' l m = Map.alter (plus l) l m
------------------------------------------------------------------------
------------------------------------------------------------------------
addParent
::
NgramsRepoElement
->
Set
Text
data
KeepAllParents
=
KeepAllParents
Bool
addParent
::
KeepAllParents
->
NgramsRepoElement
->
Set
Text
->
Maybe
FlowListScores
->
Maybe
FlowListScores
addParent
nre
ss
Nothing
=
addParent
k
nre
ss
Nothing
=
Just
$
FlowListScores
mapParent
Map
.
empty
where
mapParent
=
addParent'
(
_nre_parent
nre
)
ss
Map
.
empty
mapParent
=
addParent'
k
(
_nre_parent
nre
)
ss
Map
.
empty
addParent
nre
ss
(
Just
(
FlowListScores
mapParent
mapList
))
=
addParent
k
nre
ss
(
Just
(
FlowListScores
mapParent
mapList
))
=
Just
$
FlowListScores
mapParent'
mapList
where
mapParent'
=
addParent'
(
_nre_parent
nre
)
ss
mapParent
mapParent'
=
addParent'
k
(
_nre_parent
nre
)
ss
mapParent
addParent'
::
Num
a
=>
Maybe
NgramsTerm
=>
KeepAllParents
->
Maybe
NgramsTerm
->
Set
Text
->
Map
Text
a
->
Map
Text
a
addParent'
Nothing
_ss
mapParent
=
mapParent
addParent'
(
Just
(
NgramsTerm
p'
))
ss
mapParent
=
if
not
(
Set
.
member
p'
ss
)
then
mapParent
else
Map
.
alter
addCount
p'
mapParent
where
addParent'
_
Nothing
_ss
mapParent
=
mapParent
addParent'
(
KeepAllParents
k
)
(
Just
(
NgramsTerm
p'
))
ss
mapParent
=
case
k
of
True
->
Map
.
alter
addCount
p'
mapParent
False
->
if
not
(
Set
.
member
p'
ss
)
then
mapParent
else
Map
.
alter
addCount
p'
mapParent
where
addCount
Nothing
=
Just
1
addCount
(
Just
n
)
=
Just
$
n
+
1
...
...
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