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
10
Merge Requests
10
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)
where
import
GHC.Show
(
Show
)
--import Control.Lens (view)
import
System.FilePath
(
FilePath
)
import
Data.Maybe
(
Maybe
(
..
),
catMaybes
)
import
Data.Text
(
Text
,
splitOn
)
...
...
@@ -27,7 +28,7 @@ import Gargantext.Core.Types (NodePoly(..), ListType(..), listTypeId)
import
Gargantext.Database.Bashql
(
runCmd'
)
-- , del)
import
Gargantext.Database.Config
(
userMaster
,
userArbitrary
,
corpusMasterName
)
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.Types.Node
(
NodeType
(
..
),
NodeId
)
import
Gargantext.Database.Node.Document.Add
(
add
)
...
...
@@ -43,14 +44,14 @@ import Gargantext.Ext.IMTUser (deserialiseImtUsersFromFile)
import
Gargantext.Prelude
import
Gargantext.Text.Parsers
(
parseDocs
,
FileFormat
)
import
Gargantext.Core.Types.Main
--import Gargantext.Core.Types
import
Gargantext.Database.Flow.Utils
(
insertToNodeNgrams
)
flowDatabase
::
FileFormat
->
FilePath
->
CorpusName
->
IO
CorpusId
flowDatabase
ff
fp
cName
=
do
-- Corpus Flow
hyperdataDocuments
<-
map
addUniqIdsDoc
<$>
parseDocs
ff
fp
params
<-
flowInsert
NodeCorpus
hyperdataDocuments
cName
flowCorpus
NodeCorpus
hyperdataDocuments
params
flowCorpus
::
FileFormat
->
FilePath
->
CorpusName
->
IO
CorpusId
flowCorpus
ff
fp
cName
=
do
hyperdataDocuments'
<-
map
addUniqIdsDoc
<$>
parseDocs
ff
fp
params
<-
flowInsert
NodeCorpus
hyperdataDocuments'
cName
flowCorpus'
NodeCorpus
hyperdataDocuments'
params
flowInsert
::
NodeType
->
[
HyperdataDocument
]
->
CorpusName
...
...
@@ -70,13 +71,12 @@ flowInsert _nt hyperdataDocuments cName = do
flowAnnuaire
::
FilePath
->
IO
()
flowAnnuaire
filePath
=
do
contacts
<-
deserialiseImtUsersFromFile
filePath
ps
<-
flowInsertAnnuaire
"Annuaire"
$
map
(
\
h
->
ToDbContact
h
)
$
map
addUniqIdsContact
contacts
printDebug
"length annuaire"
(
ps
)
ps
<-
flowInsertAnnuaire
"Annuaire"
$
map
(
\
h
->
ToDbContact
h
)
$
map
addUniqIdsContact
contacts
printDebug
"length annuaire"
ps
flowInsertAnnuaire
::
CorpusName
->
[
ToDbData
]
->
IO
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
flowInsertAnnuaire
::
CorpusName
->
[
ToDbData
]
->
IO
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
flowInsertAnnuaire
name
children
=
do
(
masterUserId
,
_
,
masterCorpusId
)
<-
subFlowCorpus
userMaster
corpusMasterName
...
...
@@ -89,14 +89,14 @@ flowInsertAnnuaire name children = do
pure
(
ids
,
masterUserId
,
masterCorpusId
,
userId
,
userCorpusId
)
flowCorpus
::
NodeType
->
[
HyperdataDocument
]
->
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
->
IO
CorpusId
flowCorpus
NodeCorpus
hyperdataDocuments
(
ids
,
masterUserId
,
masterCorpusId
,
userId
,
userCorpusId
)
=
do
flowCorpus'
::
NodeType
->
[
HyperdataDocument
]
->
([
ReturnId
],
UserId
,
CorpusId
,
UserId
,
CorpusId
)
->
IO
CorpusId
flowCorpus
'
NodeCorpus
hyperdataDocuments
(
ids
,
masterUserId
,
masterCorpusId
,
userId
,
userCorpusId
)
=
do
--------------------------------------------------
-- List Ngrams Flow
userListId
<-
runCmd'
$
listFlow
User
userId
userCorpusId
userListId
<-
runCmd'
$
flowList
User
userId
userCorpusId
printDebug
"Working on User ListId : "
userListId
let
documentsWithId
=
mergeData
(
toInserted
ids
)
(
toInsert
hyperdataDocuments
)
...
...
@@ -110,10 +110,9 @@ flowCorpus NodeCorpus hyperdataDocuments (ids,masterUserId,masterCorpusId, userI
-- printDebug "inserted ngrams" indexedNgrams
_
<-
runCmd'
$
insertToNodeNgrams
indexedNgrams
listId2
<-
runCmd'
$
listFlow
masterUserId
masterCorpusId
indexedNgrams
listId2
<-
runCmd'
$
flowList
masterUserId
masterCorpusId
indexedNgrams
printDebug
"Working on ListId : "
listId2
--}
--------------------------------------------------
_
<-
runCmd'
$
mkDashboard
userCorpusId
userId
_
<-
runCmd'
$
mkGraph
userCorpusId
userId
...
...
@@ -124,8 +123,8 @@ flowCorpus NodeCorpus hyperdataDocuments (ids,masterUserId,masterCorpusId, userI
pure
userCorpusId
-- runCmd' $ del [corpusId2, corpusId]
flowCorpus
NodeAnnuaire
_hyperdataDocuments
(
_ids
,
_masterUserId
,
_masterCorpusId
,
_userId
,
_userCorpusId
)
=
undefined
flowCorpus
_
_
_
=
undefined
flowCorpus
'
NodeAnnuaire
_hyperdataDocuments
(
_ids
,
_masterUserId
,
_masterCorpusId
,
_userId
,
_userCorpusId
)
=
undefined
flowCorpus
'
_
_
_
=
undefined
type
CorpusName
=
Text
...
...
@@ -147,8 +146,18 @@ subFlowCorpus username cName = do
True
->
panic
"Error: more than 1 userNode / user"
False
->
pure
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
let
corpusId
=
maybe
(
panic
"error corpusId"
)
identity
(
head
corpusId'
)
printDebug
"(username, userId, rootId, corpusId)"
...
...
@@ -175,6 +184,7 @@ subFlowAnnuaire username _cName = do
let
rootId
=
maybe
(
panic
"error rootId"
)
identity
(
head
rootId''
)
corpusId'
<-
runCmd'
$
mkAnnuaire
rootId
userId
let
corpusId
=
maybe
(
panic
"error corpusId"
)
identity
(
head
corpusId'
)
printDebug
"(username, userId, rootId, corpusId)"
...
...
@@ -249,8 +259,8 @@ indexNgrams ng2nId = do
------------------------------------------------------------------------
------------------------------------------------------------------------
listFlow
::
UserId
->
CorpusId
->
Map
(
NgramsT
NgramsIndexed
)
(
Map
NodeId
Int
)
->
Cmd
ListId
listFlow
uId
cId
ngs
=
do
flowList
::
UserId
->
CorpusId
->
Map
(
NgramsT
NgramsIndexed
)
(
Map
NodeId
Int
)
->
Cmd
ListId
flowList
uId
cId
ngs
=
do
-- printDebug "ngs:" ngs
lId
<-
maybe
(
panic
"mkList error"
)
identity
<$>
head
<$>
mkList
cId
uId
--printDebug "ngs" (DM.keys ngs)
...
...
@@ -267,8 +277,8 @@ listFlow uId cId ngs = do
pure
lId
listFlow
User
::
UserId
->
CorpusId
->
Cmd
[
Int
]
listFlow
User
uId
cId
=
mkList
cId
uId
flowList
User
::
UserId
->
CorpusId
->
Cmd
[
Int
]
flowList
User
uId
cId
=
mkList
cId
uId
------------------------------------------------------------------------
...
...
src/Gargantext/Database/Flow/Pairing.hs
View file @
74bfb3c2
...
...
@@ -17,8 +17,8 @@ Portability : POSIX
module
Gargantext.Database.Flow.Pairing
where
import
Debug.Trace
(
trace
)
import
Control.Lens
(
view
,
_Just
)
--
import Debug.Trace (trace)
import
Control.Lens
(
_Just
,
view
)
import
Database.PostgreSQL.Simple
(
Connection
,
query
)
import
Database.PostgreSQL.Simple.SqlQQ
(
sql
)
-- import Opaleye
...
...
src/Gargantext/Database/Node.hs
View file @
74bfb3c2
...
...
@@ -40,7 +40,7 @@ import Gargantext.Database.Utils (fromField')
import
Gargantext.Database.Types.Node
(
NodeType
,
defaultCorpus
,
Hyperdata
)
import
Gargantext.Database.Queries
import
Gargantext.Database.Config
(
nodeTypeId
)
import
Gargantext.Prelude
hiding
(
sum
)
import
Gargantext.Prelude
hiding
(
sum
,
head
)
import
Gargantext.Core.Types.Main
(
UserId
)
import
Control.Applicative
(
Applicative
)
...
...
@@ -274,6 +274,10 @@ getListsWithParentId conn n = runQuery conn $ selectNodesWith' n (Just NodeList)
getCorporaWithParentId
::
Connection
->
Int
->
IO
[
Node
HyperdataCorpus
]
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
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