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
198
Issues
198
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
74bfb3c2
Commit
74bfb3c2
authored
Dec 04, 2018
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FLOW] Pairing.
parent
1e548f18
Pipeline
#39
failed with stage
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
30 deletions
+44
-30
Flow.hs
src/Gargantext/Database/Flow.hs
+37
-27
Pairing.hs
src/Gargantext/Database/Flow/Pairing.hs
+2
-2
Node.hs
src/Gargantext/Database/Node.hs
+5
-1
No files found.
src/Gargantext/Database/Flow.hs
View file @
74bfb3c2
...
@@ -17,6 +17,7 @@ module Gargantext.Database.Flow -- (flowDatabase, ngrams2list)
...
@@ -17,6 +17,7 @@ module Gargantext.Database.Flow -- (flowDatabase, ngrams2list)
where
where
import
GHC.Show
(
Show
)
import
GHC.Show
(
Show
)
--import Control.Lens (view)
import
System.FilePath
(
FilePath
)
import
System.FilePath
(
FilePath
)
import
Data.Maybe
(
Maybe
(
..
),
catMaybes
)
import
Data.Maybe
(
Maybe
(
..
),
catMaybes
)
import
Data.Text
(
Text
,
splitOn
)
import
Data.Text
(
Text
,
splitOn
)
...
@@ -27,7 +28,7 @@ import Gargantext.Core.Types (NodePoly(..), ListType(..), listTypeId)
...
@@ -27,7 +28,7 @@ import Gargantext.Core.Types (NodePoly(..), ListType(..), listTypeId)
import
Gargantext.Database.Bashql
(
runCmd'
)
-- , del)
import
Gargantext.Database.Bashql
(
runCmd'
)
-- , del)
import
Gargantext.Database.Config
(
userMaster
,
userArbitrary
,
corpusMasterName
)
import
Gargantext.Database.Config
(
userMaster
,
userArbitrary
,
corpusMasterName
)
import
Gargantext.Database.Ngrams
(
insertNgrams
,
Ngrams
(
..
),
NgramsT
(
..
),
NgramsIndexed
(
..
),
indexNgramsT
,
NgramsType
(
..
),
text2ngrams
)
import
Gargantext.Database.Ngrams
(
insertNgrams
,
Ngrams
(
..
),
NgramsT
(
..
),
NgramsIndexed
(
..
),
indexNgramsT
,
NgramsType
(
..
),
text2ngrams
)
import
Gargantext.Database.Node
(
mkRoot
,
mkCorpus
,
Cmd
(
..
),
mkList
,
mkGraph
,
mkDashboard
,
mkAnnuaire
)
import
Gargantext.Database.Node
(
mkRoot
,
mkCorpus
,
Cmd
(
..
),
mkList
,
mkGraph
,
mkDashboard
,
mkAnnuaire
)
--, getCorporaWithParentId')
import
Gargantext.Database.Root
(
getRootCmd
)
import
Gargantext.Database.Root
(
getRootCmd
)
import
Gargantext.Database.Types.Node
(
NodeType
(
..
),
NodeId
)
import
Gargantext.Database.Types.Node
(
NodeType
(
..
),
NodeId
)
import
Gargantext.Database.Node.Document.Add
(
add
)
import
Gargantext.Database.Node.Document.Add
(
add
)
...
@@ -43,14 +44,14 @@ import Gargantext.Ext.IMTUser (deserialiseImtUsersFromFile)
...
@@ -43,14 +44,14 @@ import Gargantext.Ext.IMTUser (deserialiseImtUsersFromFile)
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Gargantext.Text.Parsers
(
parseDocs
,
FileFormat
)
import
Gargantext.Text.Parsers
(
parseDocs
,
FileFormat
)
import
Gargantext.Core.Types.Main
import
Gargantext.Core.Types.Main
--import Gargantext.Core.Types
import
Gargantext.Database.Flow.Utils
(
insertToNodeNgrams
)
import
Gargantext.Database.Flow.Utils
(
insertToNodeNgrams
)
flowDatabase
::
FileFormat
->
FilePath
->
CorpusName
->
IO
CorpusId
flowCorpus
::
FileFormat
->
FilePath
->
CorpusName
->
IO
CorpusId
flowDatabase
ff
fp
cName
=
do
flowCorpus
ff
fp
cName
=
do
-- Corpus Flow
hyperdataDocuments'
<-
map
addUniqIdsDoc
<$>
parseDocs
ff
fp
hyperdataDocuments
<-
map
addUniqIdsDoc
<$>
parseDocs
ff
fp
params
<-
flowInsert
NodeCorpus
hyperdataDocuments'
cName
params
<-
flowInsert
NodeCorpus
hyperdataDocuments
cName
flowCorpus'
NodeCorpus
hyperdataDocuments'
params
flowCorpus
NodeCorpus
hyperdataDocuments
params
flowInsert
::
NodeType
->
[
HyperdataDocument
]
->
CorpusName
flowInsert
::
NodeType
->
[
HyperdataDocument
]
->
CorpusName
...
@@ -70,13 +71,12 @@ flowInsert _nt hyperdataDocuments cName = do
...
@@ -70,13 +71,12 @@ flowInsert _nt hyperdataDocuments cName = do
flowAnnuaire
::
FilePath
->
IO
()
flowAnnuaire
::
FilePath
->
IO
()
flowAnnuaire
filePath
=
do
flowAnnuaire
filePath
=
do
contacts
<-
deserialiseImtUsersFromFile
filePath
contacts
<-
deserialiseImtUsersFromFile
filePath
ps
<-
flowInsertAnnuaire
"Annuaire"
$
map
(
\
h
->
ToDbContact
h
)
$
map
addUniqIdsContact
contacts
ps
<-
flowInsertAnnuaire
"Annuaire"
$
map
(
\
h
->
ToDbContact
h
)
$
map
addUniqIdsContact
contacts
printDebug
"length annuaire"
(
ps
)
printDebug
"length annuaire"
ps
flowInsertAnnuaire
::
CorpusName
flowInsertAnnuaire
::
CorpusName
->
[
ToDbData
]
->
[
ToDbData
]
->
IO
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
->
IO
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
flowInsertAnnuaire
name
children
=
do
flowInsertAnnuaire
name
children
=
do
(
masterUserId
,
_
,
masterCorpusId
)
<-
subFlowCorpus
userMaster
corpusMasterName
(
masterUserId
,
_
,
masterCorpusId
)
<-
subFlowCorpus
userMaster
corpusMasterName
...
@@ -89,14 +89,14 @@ flowInsertAnnuaire name children = do
...
@@ -89,14 +89,14 @@ flowInsertAnnuaire name children = do
pure
(
ids
,
masterUserId
,
masterCorpusId
,
userId
,
userCorpusId
)
pure
(
ids
,
masterUserId
,
masterCorpusId
,
userId
,
userCorpusId
)
flowCorpus
::
NodeType
->
[
HyperdataDocument
]
flowCorpus'
::
NodeType
->
[
HyperdataDocument
]
->
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
->
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
->
IO
CorpusId
->
IO
CorpusId
flowCorpus
NodeCorpus
hyperdataDocuments
(
ids
,
masterUserId
,
masterCorpusId
,
userId
,
userCorpusId
)
=
do
flowCorpus
'
NodeCorpus
hyperdataDocuments
(
ids
,
masterUserId
,
masterCorpusId
,
userId
,
userCorpusId
)
=
do
--------------------------------------------------
--------------------------------------------------
-- List Ngrams Flow
-- List Ngrams Flow
userListId
<-
runCmd'
$
listFlow
User
userId
userCorpusId
userListId
<-
runCmd'
$
flowList
User
userId
userCorpusId
printDebug
"Working on User ListId : "
userListId
printDebug
"Working on User ListId : "
userListId
let
documentsWithId
=
mergeData
(
toInserted
ids
)
(
toInsert
hyperdataDocuments
)
let
documentsWithId
=
mergeData
(
toInserted
ids
)
(
toInsert
hyperdataDocuments
)
...
@@ -110,10 +110,9 @@ flowCorpus NodeCorpus hyperdataDocuments (ids,masterUserId,masterCorpusId, userI
...
@@ -110,10 +110,9 @@ flowCorpus NodeCorpus hyperdataDocuments (ids,masterUserId,masterCorpusId, userI
-- printDebug "inserted ngrams" indexedNgrams
-- printDebug "inserted ngrams" indexedNgrams
_
<-
runCmd'
$
insertToNodeNgrams
indexedNgrams
_
<-
runCmd'
$
insertToNodeNgrams
indexedNgrams
listId2
<-
runCmd'
$
listFlow
masterUserId
masterCorpusId
indexedNgrams
listId2
<-
runCmd'
$
flowList
masterUserId
masterCorpusId
indexedNgrams
printDebug
"Working on ListId : "
listId2
printDebug
"Working on ListId : "
listId2
--}
--}
--------------------------------------------------
--------------------------------------------------
_
<-
runCmd'
$
mkDashboard
userCorpusId
userId
_
<-
runCmd'
$
mkDashboard
userCorpusId
userId
_
<-
runCmd'
$
mkGraph
userCorpusId
userId
_
<-
runCmd'
$
mkGraph
userCorpusId
userId
...
@@ -124,8 +123,8 @@ flowCorpus NodeCorpus hyperdataDocuments (ids,masterUserId,masterCorpusId, userI
...
@@ -124,8 +123,8 @@ flowCorpus NodeCorpus hyperdataDocuments (ids,masterUserId,masterCorpusId, userI
pure
userCorpusId
pure
userCorpusId
-- runCmd' $ del [corpusId2, corpusId]
-- runCmd' $ del [corpusId2, corpusId]
flowCorpus
NodeAnnuaire
_hyperdataDocuments
(
_ids
,
_masterUserId
,
_masterCorpusId
,
_userId
,
_userCorpusId
)
=
undefined
flowCorpus
'
NodeAnnuaire
_hyperdataDocuments
(
_ids
,
_masterUserId
,
_masterCorpusId
,
_userId
,
_userCorpusId
)
=
undefined
flowCorpus
_
_
_
=
undefined
flowCorpus
'
_
_
_
=
undefined
type
CorpusName
=
Text
type
CorpusName
=
Text
...
@@ -147,8 +146,18 @@ subFlowCorpus username cName = do
...
@@ -147,8 +146,18 @@ subFlowCorpus username cName = do
True
->
panic
"Error: more than 1 userNode / user"
True
->
panic
"Error: more than 1 userNode / user"
False
->
pure
rootId'
False
->
pure
rootId'
let
rootId
=
maybe
(
panic
"error rootId"
)
identity
(
head
rootId''
)
let
rootId
=
maybe
(
panic
"error rootId"
)
identity
(
head
rootId''
)
{-
corpusId'' <- if username == userMaster
then runCmd' $ getCorporaWithParentId' rootId
else pure []
let corpusId''' = case map _node_id <$> head corpusId'' of
Nothing ->
-- panic "error" -- pure Nothing
-- else (view node_id <$> head <$> runCmd' $ getCorporaWithParentId' rootId)
--}
corpusId'
<-
runCmd'
$
mkCorpus
(
Just
cName
)
Nothing
rootId
userId
corpusId'
<-
runCmd'
$
mkCorpus
(
Just
cName
)
Nothing
rootId
userId
let
corpusId
=
maybe
(
panic
"error corpusId"
)
identity
(
head
corpusId'
)
let
corpusId
=
maybe
(
panic
"error corpusId"
)
identity
(
head
corpusId'
)
printDebug
"(username, userId, rootId, corpusId)"
printDebug
"(username, userId, rootId, corpusId)"
...
@@ -175,6 +184,7 @@ subFlowAnnuaire username _cName = do
...
@@ -175,6 +184,7 @@ subFlowAnnuaire username _cName = do
let
rootId
=
maybe
(
panic
"error rootId"
)
identity
(
head
rootId''
)
let
rootId
=
maybe
(
panic
"error rootId"
)
identity
(
head
rootId''
)
corpusId'
<-
runCmd'
$
mkAnnuaire
rootId
userId
corpusId'
<-
runCmd'
$
mkAnnuaire
rootId
userId
let
corpusId
=
maybe
(
panic
"error corpusId"
)
identity
(
head
corpusId'
)
let
corpusId
=
maybe
(
panic
"error corpusId"
)
identity
(
head
corpusId'
)
printDebug
"(username, userId, rootId, corpusId)"
printDebug
"(username, userId, rootId, corpusId)"
...
@@ -249,8 +259,8 @@ indexNgrams ng2nId = do
...
@@ -249,8 +259,8 @@ indexNgrams ng2nId = do
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
listFlow
::
UserId
->
CorpusId
->
Map
(
NgramsT
NgramsIndexed
)
(
Map
NodeId
Int
)
->
Cmd
ListId
flowList
::
UserId
->
CorpusId
->
Map
(
NgramsT
NgramsIndexed
)
(
Map
NodeId
Int
)
->
Cmd
ListId
listFlow
uId
cId
ngs
=
do
flowList
uId
cId
ngs
=
do
-- printDebug "ngs:" ngs
-- printDebug "ngs:" ngs
lId
<-
maybe
(
panic
"mkList error"
)
identity
<$>
head
<$>
mkList
cId
uId
lId
<-
maybe
(
panic
"mkList error"
)
identity
<$>
head
<$>
mkList
cId
uId
--printDebug "ngs" (DM.keys ngs)
--printDebug "ngs" (DM.keys ngs)
...
@@ -267,8 +277,8 @@ listFlow uId cId ngs = do
...
@@ -267,8 +277,8 @@ listFlow uId cId ngs = do
pure
lId
pure
lId
listFlow
User
::
UserId
->
CorpusId
->
Cmd
[
Int
]
flowList
User
::
UserId
->
CorpusId
->
Cmd
[
Int
]
listFlow
User
uId
cId
=
mkList
cId
uId
flowList
User
uId
cId
=
mkList
cId
uId
------------------------------------------------------------------------
------------------------------------------------------------------------
...
...
src/Gargantext/Database/Flow/Pairing.hs
View file @
74bfb3c2
...
@@ -17,8 +17,8 @@ Portability : POSIX
...
@@ -17,8 +17,8 @@ Portability : POSIX
module
Gargantext.Database.Flow.Pairing
module
Gargantext.Database.Flow.Pairing
where
where
import
Debug.Trace
(
trace
)
--
import Debug.Trace (trace)
import
Control.Lens
(
view
,
_Just
)
import
Control.Lens
(
_Just
,
view
)
import
Database.PostgreSQL.Simple
(
Connection
,
query
)
import
Database.PostgreSQL.Simple
(
Connection
,
query
)
import
Database.PostgreSQL.Simple.SqlQQ
(
sql
)
import
Database.PostgreSQL.Simple.SqlQQ
(
sql
)
-- import Opaleye
-- import Opaleye
...
...
src/Gargantext/Database/Node.hs
View file @
74bfb3c2
...
@@ -40,7 +40,7 @@ import Gargantext.Database.Utils (fromField')
...
@@ -40,7 +40,7 @@ import Gargantext.Database.Utils (fromField')
import
Gargantext.Database.Types.Node
(
NodeType
,
defaultCorpus
,
Hyperdata
)
import
Gargantext.Database.Types.Node
(
NodeType
,
defaultCorpus
,
Hyperdata
)
import
Gargantext.Database.Queries
import
Gargantext.Database.Queries
import
Gargantext.Database.Config
(
nodeTypeId
)
import
Gargantext.Database.Config
(
nodeTypeId
)
import
Gargantext.Prelude
hiding
(
sum
)
import
Gargantext.Prelude
hiding
(
sum
,
head
)
import
Gargantext.Core.Types.Main
(
UserId
)
import
Gargantext.Core.Types.Main
(
UserId
)
import
Control.Applicative
(
Applicative
)
import
Control.Applicative
(
Applicative
)
...
@@ -274,6 +274,10 @@ getListsWithParentId conn n = runQuery conn $ selectNodesWith' n (Just NodeList)
...
@@ -274,6 +274,10 @@ getListsWithParentId conn n = runQuery conn $ selectNodesWith' n (Just NodeList)
getCorporaWithParentId
::
Connection
->
Int
->
IO
[
Node
HyperdataCorpus
]
getCorporaWithParentId
::
Connection
->
Int
->
IO
[
Node
HyperdataCorpus
]
getCorporaWithParentId
conn
n
=
runQuery
conn
$
selectNodesWith'
n
(
Just
NodeCorpus
)
getCorporaWithParentId
conn
n
=
runQuery
conn
$
selectNodesWith'
n
(
Just
NodeCorpus
)
getCorporaWithParentId'
::
Int
->
Cmd
[
Node
HyperdataCorpus
]
getCorporaWithParentId'
n
=
mkCmd
$
\
conn
->
runQuery
conn
$
selectNodesWith'
n
(
Just
NodeCorpus
)
------------------------------------------------------------------------
------------------------------------------------------------------------
selectNodesWithParentID
::
Int
->
Query
NodeRead
selectNodesWithParentID
::
Int
->
Query
NodeRead
selectNodesWithParentID
n
=
proc
()
->
do
selectNodesWithParentID
n
=
proc
()
->
do
...
...
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