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
158
Issues
158
List
Board
Labels
Milestones
Merge Requests
11
Merge Requests
11
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