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
195
Issues
195
List
Board
Labels
Milestones
Merge Requests
12
Merge Requests
12
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
62354140
Commit
62354140
authored
Dec 15, 2022
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FEAT] Text Flow with NoList built as option
parent
f256192c
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
53 additions
and
29 deletions
+53
-29
New.hs
src/Gargantext/API/Node/Corpus/New.hs
+3
-3
FrameCalcUpload.hs
src/Gargantext/API/Node/FrameCalcUpload.hs
+2
-1
Types.hs
src/Gargantext/API/Node/Types.hs
+5
-3
Social.hs
src/Gargantext/Core/Text/List/Social.hs
+29
-14
Flow.hs
src/Gargantext/Database/Action/Flow.hs
+14
-8
No files found.
src/Gargantext/API/Node/Corpus/New.hs
View file @
62354140
...
@@ -236,7 +236,7 @@ addToCorpusWithQuery user cid (WithQuery { _wq_query = q
...
@@ -236,7 +236,7 @@ addToCorpusWithQuery user cid (WithQuery { _wq_query = q
}
}
cids
<-
mapM
(
\
txt
->
do
cids
<-
mapM
(
\
txt
->
do
flowDataText
user
txt
(
Multi
l
)
cid
Nothing
logStatus
)
txts
flowDataText
user
txt
(
Multi
l
)
cid
(
Just
flw
)
logStatus
)
txts
printDebug
"corpus id"
cids
printDebug
"corpus id"
cids
printDebug
"sending email"
(
"xxxxxxxxxxxxxxxxxxxxx"
::
Text
)
printDebug
"sending email"
(
"xxxxxxxxxxxxxxxxxxxxx"
::
Text
)
sendMail
user
sendMail
user
...
@@ -274,7 +274,7 @@ addToCorpusWithForm :: (FlowCmdM env err m)
...
@@ -274,7 +274,7 @@ addToCorpusWithForm :: (FlowCmdM env err m)
->
(
JobLog
->
m
()
)
->
(
JobLog
->
m
()
)
->
JobLog
->
JobLog
->
m
JobLog
->
m
JobLog
addToCorpusWithForm
user
cid
(
NewWithForm
ft
ff
d
l
_n
)
logStatus
jobLog
=
do
addToCorpusWithForm
user
cid
(
NewWithForm
ft
ff
d
l
_n
sel
)
logStatus
jobLog
=
do
printDebug
"[addToCorpusWithForm] Parsing corpus: "
cid
printDebug
"[addToCorpusWithForm] Parsing corpus: "
cid
printDebug
"[addToCorpusWithForm] fileType"
ft
printDebug
"[addToCorpusWithForm] fileType"
ft
printDebug
"[addToCorpusWithForm] fileFormat"
ff
printDebug
"[addToCorpusWithForm] fileFormat"
ff
...
@@ -325,7 +325,7 @@ addToCorpusWithForm user cid (NewWithForm ft ff d l _n) logStatus jobLog = do
...
@@ -325,7 +325,7 @@ addToCorpusWithForm user cid (NewWithForm ft ff d l _n) logStatus jobLog = do
_cid'
<-
flowCorpus
user
_cid'
<-
flowCorpus
user
(
Right
[
cid
])
(
Right
[
cid
])
(
Multi
$
fromMaybe
EN
l
)
(
Multi
$
fromMaybe
EN
l
)
Nothing
(
Just
sel
)
--(Just $ fromIntegral $ length docs, docsC')
--(Just $ fromIntegral $ length docs, docsC')
(
mCount
,
transPipe
liftBase
docsC'
)
-- TODO fix number of docs
(
mCount
,
transPipe
liftBase
docsC'
)
-- TODO fix number of docs
--(map (map toHyperdataDocument) docs)
--(map (map toHyperdataDocument) docs)
...
...
src/Gargantext/API/Node/FrameCalcUpload.hs
View file @
62354140
...
@@ -24,6 +24,7 @@ import Gargantext.API.Node.Corpus.New.Types (FileFormat(..), FileType(..))
...
@@ -24,6 +24,7 @@ import Gargantext.API.Node.Corpus.New.Types (FileFormat(..), FileType(..))
import
Gargantext.API.Node.Types
(
NewWithForm
(
..
))
import
Gargantext.API.Node.Types
(
NewWithForm
(
..
))
import
Gargantext.API.Prelude
import
Gargantext.API.Prelude
import
Gargantext.Core.Types.Individu
(
User
(
..
))
import
Gargantext.Core.Types.Individu
(
User
(
..
))
import
Gargantext.Core.Text.List.Social
(
FlowSocialListWith
(
..
),
FlowSocialListPriority
(
..
))
import
Gargantext.Database.Action.Flow.Types
import
Gargantext.Database.Action.Flow.Types
import
Gargantext.Database.Admin.Types.Hyperdata.Frame
import
Gargantext.Database.Admin.Types.Hyperdata.Frame
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Admin.Types.Node
...
@@ -87,6 +88,6 @@ frameCalcUploadAsync uId nId _f logStatus jobLog = do
...
@@ -87,6 +88,6 @@ frameCalcUploadAsync uId nId _f logStatus jobLog = do
jobLog2
<-
case
mCId
of
jobLog2
<-
case
mCId
of
Nothing
->
pure
$
jobLogFail
jobLog
Nothing
->
pure
$
jobLogFail
jobLog
Just
cId
->
Just
cId
->
addToCorpusWithForm
(
RootId
(
NodeId
uId
))
cId
(
NewWithForm
CSV
Plain
body
Nothing
"calc-upload.csv"
)
logStatus
jobLog
addToCorpusWithForm
(
RootId
(
NodeId
uId
))
cId
(
NewWithForm
CSV
Plain
body
Nothing
"calc-upload.csv"
(
FlowSocialListWithPriority
MySelfFirst
)
)
logStatus
jobLog
pure
$
jobLogSuccess
jobLog2
pure
$
jobLogSuccess
jobLog2
src/Gargantext/API/Node/Types.hs
View file @
62354140
...
@@ -20,6 +20,7 @@ import Gargantext.Core.Utils.Prefix (unPrefixSwagger)
...
@@ -20,6 +20,7 @@ import Gargantext.Core.Utils.Prefix (unPrefixSwagger)
import
Gargantext.Prelude
import
Gargantext.Prelude
import
qualified
Gargantext.Database.GargDB
as
GargDB
import
qualified
Gargantext.Database.GargDB
as
GargDB
import
Gargantext.API.Node.Corpus.New.Types
(
FileType
,
FileFormat
)
import
Gargantext.API.Node.Corpus.New.Types
(
FileType
,
FileFormat
)
import
Gargantext.Core.Text.List.Social
(
FlowSocialListWith
)
-------------------------------------------------------
-------------------------------------------------------
data
NewWithForm
=
NewWithForm
data
NewWithForm
=
NewWithForm
...
@@ -28,6 +29,7 @@ data NewWithForm = NewWithForm
...
@@ -28,6 +29,7 @@ data NewWithForm = NewWithForm
,
_wf_data
::
!
Text
-- NOTE for binary files, this represents base-64 data
,
_wf_data
::
!
Text
-- NOTE for binary files, this represents base-64 data
,
_wf_lang
::
!
(
Maybe
Lang
)
,
_wf_lang
::
!
(
Maybe
Lang
)
,
_wf_name
::
!
Text
,
_wf_name
::
!
Text
,
_wf_selection
::
!
FlowSocialListWith
}
deriving
(
Eq
,
Show
,
Generic
)
}
deriving
(
Eq
,
Show
,
Generic
)
makeLenses
''
N
ewWithForm
makeLenses
''
N
ewWithForm
...
...
src/Gargantext/Core/Text/List/Social.hs
View file @
62354140
...
@@ -20,6 +20,8 @@ import Data.Map (Map)
...
@@ -20,6 +20,8 @@ import Data.Map (Map)
import
Data.Monoid
(
mconcat
)
import
Data.Monoid
(
mconcat
)
import
Data.Swagger
import
Data.Swagger
import
GHC.Generics
import
GHC.Generics
import
Web.Internal.HttpApiData
(
ToHttpApiData
,
FromHttpApiData
,
parseUrlPiece
,
toUrlPiece
)
import
qualified
Data.Scientific
as
Scientific
import
qualified
Data.Scientific
as
Scientific
import
qualified
Data.Text
as
T
import
qualified
Data.Text
as
T
import
qualified
Data.Vector
as
V
import
qualified
Data.Vector
as
V
...
@@ -50,7 +52,9 @@ import qualified Prelude
...
@@ -50,7 +52,9 @@ import qualified Prelude
data
FlowSocialListWith
=
FlowSocialListWithPriority
{
fslw_priority
::
FlowSocialListPriority
}
data
FlowSocialListWith
=
FlowSocialListWithPriority
{
fslw_priority
::
FlowSocialListPriority
}
|
FlowSocialListWithLists
{
fslw_lists
::
[
ListId
]
}
|
FlowSocialListWithLists
{
fslw_lists
::
[
ListId
]
}
deriving
(
Show
,
Generic
)
|
NoList
{
makeList
::
Bool
}
deriving
(
Eq
,
Show
,
Generic
)
instance
FromJSON
FlowSocialListWith
where
instance
FromJSON
FlowSocialListWith
where
parseJSON
(
Object
v
)
=
do
parseJSON
(
Object
v
)
=
do
typ
::
T
.
Text
<-
v
.:
"type"
typ
::
T
.
Text
<-
v
.:
"type"
...
@@ -59,28 +63,38 @@ instance FromJSON FlowSocialListWith where
...
@@ -59,28 +63,38 @@ instance FromJSON FlowSocialListWith where
"MyListsFirst"
->
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
MySelfFirst
}
"MyListsFirst"
->
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
MySelfFirst
}
"OtherListsFirst"
->
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
OthersFirst
}
"OtherListsFirst"
->
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
OthersFirst
}
"SelectedLists"
->
pure
$
FlowSocialListWithLists
{
fslw_lists
=
value
}
"SelectedLists"
->
pure
$
FlowSocialListWithLists
{
fslw_lists
=
value
}
"NoList"
->
pure
$
NoList
True
_
->
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
MySelfFirst
}
_
->
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
MySelfFirst
}
parseJSON
_
=
mzero
parseJSON
_
=
mzero
instance
ToJSON
FlowSocialListWith
where
instance
ToJSON
FlowSocialListWith
where
toJSON
(
FlowSocialListWithPriority
{
fslw_priority
=
MySelfFirst
})
=
toJSON
(
FlowSocialListWithPriority
{
fslw_priority
=
MySelfFirst
})
=
object
[
(
"type"
,
String
"MyListsFirst"
)
]
object
[
(
"type"
,
String
"MyListsFirst"
)
]
toJSON
(
FlowSocialListWithPriority
{
fslw_priority
=
OthersFirst
})
=
object
[
(
"type"
,
String
"ListsFirst"
)
]
toJSON
(
FlowSocialListWithPriority
{
fslw_priority
=
OthersFirst
})
=
toJSON
(
NoList
_
)
=
object
[
(
"type"
,
String
"NoList"
)
]
object
[
(
"type"
,
String
"ListsFirst"
)
]
toJSON
(
FlowSocialListWithLists
{
fslw_lists
=
ids
})
=
object
[
(
"type"
,
String
"SelectedLists"
)
toJSON
(
FlowSocialListWithLists
{
fslw_lists
=
ids
})
=
object
[
(
"type"
,
String
"SelectedLists"
)
,
(
"value"
,
Array
$
V
.
fromList
$
(
map
(
\
(
NodeId
id
)
->
Number
$
Scientific
.
scientific
(
Prelude
.
toInteger
id
)
1
)
ids
))
]
,
(
"value"
,
Array
$
V
.
fromList
$
(
map
(
\
(
NodeId
id
)
->
Number
$
Scientific
.
scientific
(
Prelude
.
toInteger
id
)
1
)
ids
))
]
instance
ToSchema
FlowSocialListWith
where
instance
ToSchema
FlowSocialListWith
where
declareNamedSchema
=
genericDeclareNamedSchema
defaultSchemaOptions
declareNamedSchema
=
genericDeclareNamedSchema
defaultSchemaOptions
instance
FromHttpApiData
FlowSocialListWith
where
parseUrlPiece
"MyListsFirst"
=
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
MySelfFirst
}
parseUrlPiece
"OtherListsFirst"
=
pure
$
FlowSocialListWithPriority
{
fslw_priority
=
OthersFirst
}
parseUrlPiece
"NoList"
=
pure
$
NoList
True
parseUrlPiece
_
=
panic
"[G.C.T.L.Social] TODO FromHttpApiData FlowSocialListWith"
instance
ToHttpApiData
FlowSocialListWith
where
toUrlPiece
(
FlowSocialListWithPriority
MySelfFirst
)
=
"MySelfFirst"
toUrlPiece
(
FlowSocialListWithPriority
OthersFirst
)
=
"OtherListsFirst"
toUrlPiece
(
NoList
_
)
=
"NoList"
toUrlPiece
(
FlowSocialListWithLists
_
)
=
panic
"[G.C.T.L.Social] TODO ToHttpApiData FlowSocialListWith"
data
FlowSocialListPriority
=
MySelfFirst
|
OthersFirst
data
FlowSocialListPriority
=
MySelfFirst
|
OthersFirst
deriving
(
Show
,
Generic
)
deriving
(
Eq
,
Show
,
Generic
)
instance
ToSchema
FlowSocialListPriority
where
instance
ToSchema
FlowSocialListPriority
where
declareNamedSchema
=
genericDeclareNamedSchema
defaultSchemaOptions
declareNamedSchema
=
genericDeclareNamedSchema
defaultSchemaOptions
flowSocialListPriority
::
FlowSocialListPriority
->
[
NodeMode
]
flowSocialListPriority
::
FlowSocialListPriority
->
[
NodeMode
]
flowSocialListPriority
MySelfFirst
=
[
Private
{-, Shared, Public -}
]
flowSocialListPriority
MySelfFirst
=
[
Private
{-, Shared, Public -}
]
flowSocialListPriority
OthersFirst
=
reverse
$
flowSocialListPriority
MySelfFirst
flowSocialListPriority
OthersFirst
=
reverse
$
flowSocialListPriority
MySelfFirst
{-
{-
-- | We keep the parents for all ngrams but terms
-- | We keep the parents for all ngrams but terms
keepAllParents :: NgramsType -> KeepAllParents
keepAllParents :: NgramsType -> KeepAllParents
...
@@ -102,6 +116,7 @@ flowSocialList :: ( HasNodeStory env err m
...
@@ -102,6 +116,7 @@ flowSocialList :: ( HasNodeStory env err m
flowSocialList
Nothing
u
=
flowSocialList'
MySelfFirst
u
flowSocialList
Nothing
u
=
flowSocialList'
MySelfFirst
u
flowSocialList
(
Just
(
FlowSocialListWithPriority
p
))
u
=
flowSocialList'
p
u
flowSocialList
(
Just
(
FlowSocialListWithPriority
p
))
u
=
flowSocialList'
p
u
flowSocialList
(
Just
(
FlowSocialListWithLists
ls
))
_
=
getHistoryScores
ls
History_User
flowSocialList
(
Just
(
FlowSocialListWithLists
ls
))
_
=
getHistoryScores
ls
History_User
flowSocialList
(
Just
(
NoList
_
))
_u
=
panic
"[G.C.T.L.Social] Should not be executed"
flowSocialList'
::
(
HasNodeStory
env
err
m
flowSocialList'
::
(
HasNodeStory
env
err
m
,
CmdM
env
err
m
,
CmdM
env
err
m
...
...
src/Gargantext/Database/Action/Flow.hs
View file @
62354140
...
@@ -81,7 +81,7 @@ import Gargantext.Core.Text
...
@@ -81,7 +81,7 @@ import Gargantext.Core.Text
import
Gargantext.Core.Text.Corpus.Parsers
(
parseFile
,
FileFormat
,
FileType
)
import
Gargantext.Core.Text.Corpus.Parsers
(
parseFile
,
FileFormat
,
FileType
)
import
Gargantext.Core.Text.List
(
buildNgramsLists
)
import
Gargantext.Core.Text.List
(
buildNgramsLists
)
import
Gargantext.Core.Text.List.Group.WithStem
(
{-StopSize(..),-}
GroupParams
(
..
))
import
Gargantext.Core.Text.List.Group.WithStem
(
{-StopSize(..),-}
GroupParams
(
..
))
import
Gargantext.Core.Text.List.Social
(
FlowSocialListWith
)
import
Gargantext.Core.Text.List.Social
(
FlowSocialListWith
(
..
)
)
import
Gargantext.Core.Text.Terms
import
Gargantext.Core.Text.Terms
import
Gargantext.Core.Text.Terms.Mono.Stem.En
(
stemIt
)
import
Gargantext.Core.Text.Terms.Mono.Stem.En
(
stemIt
)
import
Gargantext.Core.Types
(
POS
(
NP
),
TermsCount
)
import
Gargantext.Core.Types
(
POS
(
NP
),
TermsCount
)
...
@@ -325,13 +325,19 @@ flowCorpusUser l user corpusName ctype ids mfslw = do
...
@@ -325,13 +325,19 @@ flowCorpusUser l user corpusName ctype ids mfslw = do
--let gp = (GroupParams l 2 3 (StopSize 3))
--let gp = (GroupParams l 2 3 (StopSize 3))
-- Here the PosTagAlgo should be chosen according to the Lang
-- Here the PosTagAlgo should be chosen according to the Lang
let
gp
=
GroupWithPosTag
l
CoreNLP
HashMap
.
empty
_
<-
case
mfslw
of
ngs
<-
buildNgramsLists
user
userCorpusId
masterCorpusId
mfslw
gp
(
Just
(
NoList
_
))
->
do
printDebug
"Do not build list"
mfslw
pure
()
_
->
do
ngs
<-
buildNgramsLists
user
userCorpusId
masterCorpusId
mfslw
$
GroupWithPosTag
l
CoreNLP
HashMap
.
empty
-- printDebug "flowCorpusUser:ngs" ngs
-- printDebug "flowCorpusUser:ngs" ngs
_userListId
<-
flowList_DbRepo
listId
ngs
_userListId
<-
flowList_DbRepo
listId
ngs
_mastListId
<-
getOrMkList
masterCorpusId
masterUserId
_mastListId
<-
getOrMkList
masterCorpusId
masterUserId
pure
()
-- _ <- insertOccsUpdates userCorpusId mastListId
-- _ <- insertOccsUpdates userCorpusId mastListId
-- printDebug "userListId" userListId
-- printDebug "userListId" userListId
-- User Graph Flow
-- User Graph Flow
...
...
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