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
160
Issues
160
List
Board
Labels
Milestones
Merge Requests
14
Merge Requests
14
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
6bfc3698
Commit
6bfc3698
authored
Jun 19, 2023
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FIX] Phylo is back
parent
24ef381d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
38 deletions
+30
-38
Tools.hs
src/Gargantext/Core/Viz/Phylo/API/Tools.hs
+30
-38
No files found.
src/Gargantext/Core/Viz/Phylo/API/Tools.hs
View file @
6bfc3698
...
@@ -14,18 +14,16 @@ module Gargantext.Core.Viz.Phylo.API.Tools
...
@@ -14,18 +14,16 @@ module Gargantext.Core.Viz.Phylo.API.Tools
import
Data.Aeson
(
Value
,
decodeFileStrict
,
eitherDecode
,
encode
)
import
Data.Aeson
(
Value
,
decodeFileStrict
,
eitherDecode
,
encode
)
import
Data.Map.Strict
(
Map
)
import
Data.Map.Strict
(
Map
)
import
Data.Maybe
(
catMaybes
)
import
Data.Proxy
import
Data.Proxy
import
Data.Maybe
(
fromMaybe
)
import
Data.Set
(
Set
)
import
Data.Set
(
Set
)
import
Data.Text
(
Text
,
pack
)
import
Data.Text
(
Text
,
pack
)
import
Data.Time.Calendar
(
fromGregorian
,
diffGregorianDurationClip
,
cdMonths
,
diffDays
,
showGregorian
)
import
Data.Time.Calendar
(
fromGregorian
,
diffGregorianDurationClip
,
cdMonths
,
diffDays
,
showGregorian
)
import
Data.Time.Clock.POSIX
(
posixSecondsToUTCTime
)
import
Data.Time.Clock.POSIX
(
posixSecondsToUTCTime
)
import
Gargantext.API.Ngrams.Prelude
(
getTermList
)
import
Gargantext.API.Ngrams.Prelude
(
getTermList
)
import
Gargantext.API.Ngrams.Tools
(
getRepo
)
import
Gargantext.API.Ngrams.Types
(
NgramsTerm
(
..
))
import
Gargantext.API.Ngrams.Types
(
NgramsTerm
(
..
))
import
Gargantext.API.Node.Corpus.Export
(
getContextNgrams
)
import
Gargantext.API.Prelude
(
GargNoServer
)
import
Gargantext.API.Prelude
(
GargNoServer
)
import
Gargantext.Core.Text.
Context
(
TermLis
t
)
import
Gargantext.Core.Text.
Terms.WithList
(
Patterns
,
buildPatterns
,
termsInTex
t
)
import
Gargantext.Core.Types
(
Context
)
import
Gargantext.Core.Types
(
Context
)
-- import Gargantext.Core.Types.Individu (User(..))
-- import Gargantext.Core.Types.Individu (User(..))
import
Gargantext.Core.Types.Main
(
ListType
(
MapTerm
))
import
Gargantext.Core.Types.Main
(
ListType
(
MapTerm
))
...
@@ -45,12 +43,11 @@ import Gargantext.Database.Schema.Context
...
@@ -45,12 +43,11 @@ import Gargantext.Database.Schema.Context
import
Gargantext.Database.Schema.Ngrams
(
NgramsType
(
..
))
import
Gargantext.Database.Schema.Ngrams
(
NgramsType
(
..
))
import
Gargantext.Database.Schema.Node
import
Gargantext.Database.Schema.Node
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Prelude
import
Prelude
hiding
(
map
)
import
System.FilePath
((
</>
))
import
System.FilePath
((
</>
))
import
System.IO.Temp
(
withTempDirectory
)
import
System.IO.Temp
(
withTempDirectory
)
import
System.Process
as
Shell
import
System.Process
as
Shell
import
qualified
Data.ByteString.Lazy
as
Lazy
import
qualified
Data.ByteString.Lazy
as
Lazy
import
qualified
Data.List
as
List
import
qualified
Data.Map.Strict
as
Map
import
qualified
Data.Map.Strict
as
Map
import
qualified
Data.Set
as
Set
import
qualified
Data.Set
as
Set
...
@@ -91,48 +88,41 @@ phylo2dot2json phylo = do
...
@@ -91,48 +88,41 @@ phylo2dot2json phylo = do
flowPhyloAPI
::
PhyloConfig
->
CorpusId
->
GargNoServer
Phylo
flowPhyloAPI
::
PhyloConfig
->
CorpusId
->
GargNoServer
Phylo
flowPhyloAPI
config
cId
=
do
flowPhyloAPI
config
cId
=
do
(
_
,
corpus
)
<-
corpusIdtoDocuments
(
timeUnit
config
)
cId
corpus
<-
corpusIdtoDocuments
(
timeUnit
config
)
cId
let
phyloWithCliques
=
toPhyloWithoutLink
corpus
config
let
phyloWithCliques
=
toPhyloWithoutLink
corpus
config
-- writePhylo phyloWithCliquesFile phyloWithCliques
-- writePhylo phyloWithCliquesFile phyloWithCliques
pure
$
toPhylo
(
setConfig
config
phyloWithCliques
)
pure
$
toPhylo
(
setConfig
config
phyloWithCliques
)
--------------------------------------------------------------------
--------------------------------------------------------------------
corpusIdtoDocuments
::
TimeUnit
->
CorpusId
->
GargNoServer
(
TermList
,
[
Document
])
corpusIdtoDocuments
::
TimeUnit
->
CorpusId
->
GargNoServer
[
Document
]
corpusIdtoDocuments
timeUnit
corpusId
=
do
corpusIdtoDocuments
timeUnit
corpusId
=
do
docs
<-
selectDocNodes
corpusId
docs
<-
selectDocNodes
corpusId
printDebug
"docs *****"
(
length
docs
)
lId
<-
defaultList
corpusId
lId
<-
defaultList
corpusId
termList
<-
getTermList
lId
MapTerm
NgramsTerms
{-
let
patterns
=
case
termList
of
(_masterUserId, _masterRootId, masterCorpusId) <- getOrMk_RootWithCorpus
Nothing
->
panic
"[G.C.V.Phylo.API] no termList found"
(UserName userMaster)
Just
termList'
->
buildPatterns
termList'
(Left "")
pure
$
map
(
toPhyloDocs
patterns
timeUnit
)
(
map
_context_hyperdata
docs
)
(Nothing :: Maybe HyperdataCorpus)
mListId <- defaultList masterCorpusId
repo <- getRepo [mListId,lId]
-}
repo
<-
getRepo
[
lId
]
-- ngs_terms' <- getContextNgrams corpusId mListId MapTerm NgramsTerms repo
ngs_terms
<-
getContextNgrams
corpusId
lId
MapTerm
NgramsTerms
repo
printDebug
"Size ngs_coterms *****"
(
length
ngs_terms
)
ngs_sources
<-
getContextNgrams
corpusId
lId
MapTerm
Sources
repo
printDebug
"Size ngs_sources Map Sources *****"
(
length
ngs_sources
)
termList
<-
getTermList
lId
MapTerm
NgramsTerms
termsInText'
::
Patterns
->
Text
->
[
Text
]
printDebug
"Size ngs_terms List Map Ngrams *****"
(
length
<$>
termList
)
termsInText'
p
t
=
(
map
fst
)
$
termsInText
p
t
let
docs'
=
catMaybes
toPhyloDocs
::
Patterns
->
TimeUnit
->
HyperdataDocument
->
Document
$
List
.
map
(
\
doc
toPhyloDocs
patterns
time
d
=
->
context2phyloDocument
timeUnit
doc
(
ngs_terms
{-<> ngs_terms'-}
,
ngs_sources
)
let
title
=
fromMaybe
""
(
_hd_title
d
)
)
docs
abstr
=
fromMaybe
""
(
_hd_abstract
d
)
in
Document
(
toPhyloDate
(
fromIntegral
$
fromMaybe
1
$
_hd_publication_year
d
)
(
fromMaybe
1
$
_hd_publication_month
d
)
(
fromMaybe
1
$
_hd_publication_day
d
)
time
)
(
toPhyloDate'
(
fromIntegral
$
fromMaybe
1
$
_hd_publication_year
d
)
(
fromMaybe
1
$
_hd_publication_month
d
)
(
fromMaybe
1
$
_hd_publication_day
d
)
time
)
(
termsInText'
patterns
$
title
<>
" "
<>
abstr
)
Nothing
[]
-- printDebug "corpusIdtoDocuments" (Prelude.map date docs')
case
termList
of
Nothing
->
panic
"[G.C.V.Phylo.API] no termList found"
Just
termList'
->
pure
(
termList'
,
docs'
)
context2phyloDocument
::
TimeUnit
context2phyloDocument
::
TimeUnit
->
Context
HyperdataDocument
->
Context
HyperdataDocument
...
@@ -151,12 +141,14 @@ context2phyloDocument timeUnit context (ngs_terms, ngs_sources) = do
...
@@ -151,12 +141,14 @@ context2phyloDocument timeUnit context (ngs_terms, ngs_sources) = do
pure
$
Document
date
date'
text'
Nothing
sources'
pure
$
Document
date
date'
text'
Nothing
sources'
-- TODO better default date and log the errors to improve data quality
context2date
::
Context
HyperdataDocument
->
TimeUnit
->
Maybe
(
Date
,
Text
)
context2date
::
Context
HyperdataDocument
->
TimeUnit
->
Maybe
(
Date
,
Text
)
context2date
context
timeUnit
=
do
context2date
context
timeUnit
=
do
let
hyperdata
=
_context_hyperdata
context
let
hyperdata
=
_context_hyperdata
context
year
<-
_hd_publication_year
hyperdata
let
month
<-
_hd_publication_month
hyperdata
year
=
fromMaybe
1
$
_hd_publication_year
hyperdata
day
<-
_hd_publication_day
hyperdata
month
=
fromMaybe
1
$
_hd_publication_month
hyperdata
day
=
fromMaybe
1
$
_hd_publication_day
hyperdata
pure
(
toPhyloDate
year
month
day
timeUnit
,
toPhyloDate'
year
month
day
timeUnit
)
pure
(
toPhyloDate
year
month
day
timeUnit
,
toPhyloDate'
year
month
day
timeUnit
)
...
...
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