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
79490deb
Verified
Commit
79490deb
authored
Jan 10, 2023
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into dev-hackathon-fixes
parents
a317c4d9
cc509e4f
Pipeline
#3555
passed with stage
in 91 minutes and 17 seconds
Changes
7
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
93 additions
and
30 deletions
+93
-30
CHANGELOG.md
CHANGELOG.md
+9
-0
README.md
README.md
+21
-2
gargantext.cabal
gargantext.cabal
+2
-2
package.yaml
package.yaml
+1
-1
DocumentsFromWriteNodes.hs
src/Gargantext/API/Node/DocumentsFromWriteNodes.hs
+11
-7
FrameCalcUpload.hs
src/Gargantext/API/Node/FrameCalcUpload.hs
+8
-4
FrameWrite.hs
src/Gargantext/Core/Text/Corpus/Parsers/FrameWrite.hs
+41
-14
No files found.
CHANGELOG.md
View file @
79490deb
## Version 0.0.6.9.0
*
[
FRONT
][
FIX
]
Node Selection Indicator
*
[
FRONT
][
FIX
]
Just a little warning specifying a bug on
<ReactTooltip>
*
[
FRONT
][
FEAT
]
Graph Explorer fixes (labels, Sigma JS parameters)
*
[
FRONT
][
layout
]
Close CTA button on graph/phylo sidebar
*
[
BACK
][
NodeWrite
]
Corpus easier to make with NodeWrite Frames
## Version 0.0.6.8.6
## Version 0.0.6.8.6
*
[
BACK
][
FIX
][
New Corpus, Ngrams Table Repo (#163)
](
https://gitlab.iscpif.fr/gargantext/haskell-gargantext/issues/163
)
*
[
BACK
][
FIX
][
New Corpus, Ngrams Table Repo (#163)
](
https://gitlab.iscpif.fr/gargantext/haskell-gargantext/issues/163
)
...
...
README.md
View file @
79490deb
...
@@ -94,7 +94,26 @@ curl -sSL https://gitlab.iscpif.fr/gargantext/haskell-gargantext/raw/dev/devops/
...
@@ -94,7 +94,26 @@ curl -sSL https://gitlab.iscpif.fr/gargantext/haskell-gargantext/raw/dev/devops/
```
sh
```
sh
./devops/install-corenlp
./devops/install-corenlp
```
```
### Launch Gargantext (It should have been initialized first)
Run
haskell-gargantext/devops/docker$ docker-compose up
Then
```
sh
stack
--nix
install
~/.local/bin/gargantext-init
"gargantext.ini"
```
Or for Docker env, first create the appropriate image:
```
sh
cd
devops/docker
docker build
-t
cgenie/stack-build:lts-18.12-garg
.
```
then run:
```
sh
stack
--docker
exec
gargantext-init
--
gargantext.ini
### Initialization
### Initialization
...
@@ -116,7 +135,7 @@ Initialization schema should be loaded automatically (from `devops/postgres/sche
...
@@ -116,7 +135,7 @@ Initialization schema should be loaded automatically (from `devops/postgres/sche
Change the passwords in gargantext.ini_toModify then move it:
Change the passwords in gargantext.ini_toModify then move it:
```
sh
```
sh
mv
gargantext.ini_toModify gargantext.ini
cp
gargantext.ini_toModify gargantext.ini
```
```
(`.gitignore` avoids adding this file to the repository by mistake)
(`.gitignore` avoids adding this file to the repository by mistake)
...
@@ -126,7 +145,7 @@ mv gargantext.ini_toModify gargantext.ini
...
@@ -126,7 +145,7 @@ mv gargantext.ini_toModify gargantext.ini
Users have to be created first (`user1` is created as instance):
Users have to be created first (`user1` is created as instance):
```
sh
```
sh
stack
install
stack
--nix
install
~/.local/bin/gargantext-init "gargantext.ini"
~/.local/bin/gargantext-init "gargantext.ini"
```
```
...
...
gargantext.cabal
View file @
79490deb
cabal-version: 1.12
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.35.
0
.
-- This file has been generated from package.yaml by hpack version 0.35.
1
.
--
--
-- see: https://github.com/sol/hpack
-- see: https://github.com/sol/hpack
name: gargantext
name: gargantext
version: 0.0.6.
8.6
version: 0.0.6.
9.0
synopsis: Search, map, share
synopsis: Search, map, share
description: Please see README.md
description: Please see README.md
category: Data
category: Data
...
...
package.yaml
View file @
79490deb
...
@@ -6,7 +6,7 @@ name: gargantext
...
@@ -6,7 +6,7 @@ name: gargantext
# | | | +----- Layers * : New versions with API additions
# | | | +----- Layers * : New versions with API additions
# | | | | +--- Layers * : New versions without API breaking changes
# | | | | +--- Layers * : New versions without API breaking changes
# | | | | |
# | | | | |
version
:
'
0.0.6.
8.6
'
version
:
'
0.0.6.
9.0
'
synopsis
:
Search, map, share
synopsis
:
Search, map, share
description
:
Please see README.md
description
:
Please see README.md
category
:
Data
category
:
Data
...
...
src/Gargantext/API/Node/DocumentsFromWriteNodes.hs
View file @
79490deb
...
@@ -38,6 +38,7 @@ import Gargantext.Database.Admin.Types.Hyperdata.Frame
...
@@ -38,6 +38,7 @@ import Gargantext.Database.Admin.Types.Hyperdata.Frame
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Query.Table.Node
(
getChildrenByType
,
getClosestParentIdByType'
,
getNodeWith
)
import
Gargantext.Database.Query.Table.Node
(
getChildrenByType
,
getClosestParentIdByType'
,
getNodeWith
)
import
Gargantext.Database.Schema.Node
(
node_hyperdata
)
import
Gargantext.Database.Schema.Node
(
node_hyperdata
)
import
qualified
Data.List
as
List
import
qualified
Gargantext.Defaults
as
Defaults
import
qualified
Gargantext.Defaults
as
Defaults
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Gargantext.Utils.Jobs
(
serveJobsAPI
)
import
Gargantext.Utils.Jobs
(
serveJobsAPI
)
...
@@ -97,18 +98,19 @@ documentsFromWriteNodes uId nId _p logStatus = do
...
@@ -97,18 +98,19 @@ documentsFromWriteNodes uId nId _p logStatus = do
pure
(
node
,
contents
)
pure
(
node
,
contents
)
)
frameWrites
)
frameWrites
let
parsedE
=
(
\
(
node
,
contents
)
->
hyperdataDocumentFromFrameWrite
(
node
^.
node_hyperdata
,
contents
))
<$>
frameWritesWithContents
let
parsedE
=
(
\
(
node
,
contents
)
->
hyperdataDocumentFromFrameWrite
7
(
node
^.
node_hyperdata
,
contents
))
<$>
frameWritesWithContents
let
parsed
=
rights
parsedE
-- TODO hard coded param should be take
let
parsed
=
List
.
concat
$
rights
parsedE
_
<-
flowDataText
(
RootId
(
NodeId
uId
))
(
DataNew
(
Just
$
fromIntegral
$
length
parsed
,
yieldMany
parsed
))
(
Multi
EN
)
cId
Nothing
logStatus
_
<-
flowDataText
(
RootId
(
NodeId
uId
))
(
DataNew
(
Just
$
fromIntegral
$
length
parsed
,
yieldMany
parsed
))
(
Multi
EN
)
cId
Nothing
logStatus
pure
$
jobLogSuccess
jobLog
pure
$
jobLogSuccess
jobLog
------------------------------------------------------------------------
------------------------------------------------------------------------
hyperdataDocumentFromFrameWrite
::
(
HyperdataFrame
,
T
.
Text
)
->
Either
T
.
Text
HyperdataDocument
hyperdataDocumentFromFrameWrite
::
Int
->
(
HyperdataFrame
,
T
.
Text
)
->
Either
T
.
Text
[
HyperdataDocument
]
hyperdataDocumentFromFrameWrite
(
HyperdataFrame
{
_hf_base
,
_hf_frame_id
},
contents
)
=
hyperdataDocumentFromFrameWrite
paragraphSize
(
HyperdataFrame
{
_hf_base
,
_hf_frame_id
},
contents
)
=
case
parseLines
contents
of
case
parseLines
contents
of
Left
_
->
Left
"Error parsing node"
Left
_
->
Left
"Error parsing node"
Right
(
Parsed
{
authors
,
contents
=
c
,
date
,
source
,
title
=
t
})
->
Right
(
Parsed
{
authors
,
contents
=
c
txts
,
date
,
source
,
title
=
t
})
->
let
authorJoinSingle
(
Author
{
firstName
,
lastName
})
=
T
.
concat
[
lastName
,
", "
,
firstName
]
let
authorJoinSingle
(
Author
{
firstName
,
lastName
})
=
T
.
concat
[
lastName
,
", "
,
firstName
]
authors'
=
T
.
concat
$
authorJoinSingle
<$>
authors
authors'
=
T
.
concat
$
authorJoinSingle
<$>
authors
date'
=
(
\
(
Date
{
year
,
month
,
day
})
->
T
.
concat
[
T
.
pack
$
show
year
,
"-"
date'
=
(
\
(
Date
{
year
,
month
,
day
})
->
T
.
concat
[
T
.
pack
$
show
year
,
"-"
...
@@ -117,7 +119,7 @@ hyperdataDocumentFromFrameWrite (HyperdataFrame { _hf_base, _hf_frame_id }, cont
...
@@ -117,7 +119,7 @@ hyperdataDocumentFromFrameWrite (HyperdataFrame { _hf_base, _hf_frame_id }, cont
year'
=
fromIntegral
$
maybe
Defaults
.
year
(
\
(
Date
{
year
})
->
year
)
date
year'
=
fromIntegral
$
maybe
Defaults
.
year
(
\
(
Date
{
year
})
->
year
)
date
month'
=
maybe
Defaults
.
month
(
\
(
Date
{
month
})
->
fromIntegral
month
)
date
month'
=
maybe
Defaults
.
month
(
\
(
Date
{
month
})
->
fromIntegral
month
)
date
day'
=
maybe
Defaults
.
day
(
\
(
Date
{
day
})
->
fromIntegral
day
)
date
in
day'
=
maybe
Defaults
.
day
(
\
(
Date
{
day
})
->
fromIntegral
day
)
date
in
Right
HyperdataDocument
{
_hd_bdd
=
Just
"FrameWrite"
Right
(
List
.
map
(
\
ctxt
->
HyperdataDocument
{
_hd_bdd
=
Just
"FrameWrite"
,
_hd_doi
=
Nothing
,
_hd_doi
=
Nothing
,
_hd_url
=
Nothing
,
_hd_url
=
Nothing
,
_hd_uniqId
=
Nothing
,
_hd_uniqId
=
Nothing
...
@@ -127,7 +129,7 @@ hyperdataDocumentFromFrameWrite (HyperdataFrame { _hf_base, _hf_frame_id }, cont
...
@@ -127,7 +129,7 @@ hyperdataDocumentFromFrameWrite (HyperdataFrame { _hf_base, _hf_frame_id }, cont
,
_hd_authors
=
Just
authors'
,
_hd_authors
=
Just
authors'
,
_hd_institutes
=
Nothing
,
_hd_institutes
=
Nothing
,
_hd_source
=
source
,
_hd_source
=
source
,
_hd_abstract
=
Just
c
,
_hd_abstract
=
Just
c
txt
,
_hd_publication_date
=
date'
,
_hd_publication_date
=
date'
,
_hd_publication_year
=
Just
year'
,
_hd_publication_year
=
Just
year'
,
_hd_publication_month
=
Just
month'
,
_hd_publication_month
=
Just
month'
...
@@ -136,3 +138,5 @@ hyperdataDocumentFromFrameWrite (HyperdataFrame { _hf_base, _hf_frame_id }, cont
...
@@ -136,3 +138,5 @@ hyperdataDocumentFromFrameWrite (HyperdataFrame { _hf_base, _hf_frame_id }, cont
,
_hd_publication_minute
=
Nothing
,
_hd_publication_minute
=
Nothing
,
_hd_publication_second
=
Nothing
,
_hd_publication_second
=
Nothing
,
_hd_language_iso2
=
Just
$
T
.
pack
$
show
EN
}
,
_hd_language_iso2
=
Just
$
T
.
pack
$
show
EN
}
)
(
text2paragraphs
paragraphSize
ctxts
)
)
src/Gargantext/API/Node/FrameCalcUpload.hs
View file @
79490deb
...
@@ -24,7 +24,7 @@ import Gargantext.API.Node.Corpus.New.Types (FileFormat(..), FileType(..))
...
@@ -24,7 +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.Core.Text.List.Social
(
FlowSocialListWith
(
..
))
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
...
@@ -33,8 +33,12 @@ import Gargantext.Database.Query.Table.Node (getClosestParentIdByType, getNodeWi
...
@@ -33,8 +33,12 @@ import Gargantext.Database.Query.Table.Node (getClosestParentIdByType, getNodeWi
import
Gargantext.Database.Schema.Node
(
node_hyperdata
)
import
Gargantext.Database.Schema.Node
(
node_hyperdata
)
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Gargantext.Utils.Jobs
(
serveJobsAPI
)
import
Gargantext.Utils.Jobs
(
serveJobsAPI
)
import
Gargantext.Core
(
Lang
)
data
FrameCalcUpload
=
FrameCalcUpload
()
data
FrameCalcUpload
=
FrameCalcUpload
{
_wf_lang
::
!
(
Maybe
Lang
)
,
_wf_selection
::
!
FlowSocialListWith
}
deriving
(
Generic
)
deriving
(
Generic
)
instance
FromForm
FrameCalcUpload
instance
FromForm
FrameCalcUpload
...
@@ -62,7 +66,7 @@ frameCalcUploadAsync :: (HasConfig env, FlowCmdM env err m)
...
@@ -62,7 +66,7 @@ frameCalcUploadAsync :: (HasConfig env, FlowCmdM env err m)
->
(
JobLog
->
m
()
)
->
(
JobLog
->
m
()
)
->
JobLog
->
JobLog
->
m
JobLog
->
m
JobLog
frameCalcUploadAsync
uId
nId
_f
logStatus
jobLog
=
do
frameCalcUploadAsync
uId
nId
(
FrameCalcUpload
_wf_lang
_wf_selection
)
logStatus
jobLog
=
do
logStatus
jobLog
logStatus
jobLog
-- printDebug "[frameCalcUploadAsync] uId" uId
-- printDebug "[frameCalcUploadAsync] uId" uId
...
@@ -88,6 +92,6 @@ frameCalcUploadAsync uId nId _f logStatus jobLog = do
...
@@ -88,6 +92,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"
(
FlowSocialListWithPriority
MySelfFirst
)
)
logStatus
jobLog
addToCorpusWithForm
(
RootId
(
NodeId
uId
))
cId
(
NewWithForm
CSV
Plain
body
_wf_lang
"calc-upload.csv"
_wf_selection
)
logStatus
jobLog
pure
$
jobLogSuccess
jobLog2
pure
$
jobLogSuccess
jobLog2
src/Gargantext/Core/Text/Corpus/Parsers/FrameWrite.hs
View file @
79490deb
module
Gargantext.Core.Text.Corpus.Parsers.FrameWrite
where
{-|
Module : Gargantext.Core.Text.Corpus.Parsers.FrameWrite
Description :
Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3
Maintainer : team@gargantext.org
Stability : experimental
Portability : POSIX
-}
module
Gargantext.Core.Text.Corpus.Parsers.FrameWrite
where
import
Control.Applicative
((
*>
))
import
Control.Applicative
((
*>
))
import
Control.Monad
(
void
)
import
Control.Monad
(
void
)
import
Data.Either
import
Data.Either
import
Data.Maybe
import
Data.Maybe
import
Data.Text
hiding
(
foldl
)
import
Data.Text
hiding
(
foldl
)
import
Gargantext.Core.Text
(
sentences
)
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Prelude
((
++
),
read
)
import
Prelude
((
++
),
read
)
import
Text.Parsec
hiding
(
Line
)
import
Text.Parsec
hiding
(
Line
)
import
Text.Parsec.String
import
Text.Parsec.String
import
qualified
Data.Text
as
DT
import
qualified
Data.List
as
List
-- https://gitlab.iscpif.fr/gargantext/purescript-gargantext/issues/331
-- https://gitlab.iscpif.fr/gargantext/purescript-gargantext/issues/331
...
@@ -26,11 +41,11 @@ sample :: Text
...
@@ -26,11 +41,11 @@ sample :: Text
sample
=
sample
=
unlines
unlines
[
"title1"
[
"title1"
,
"title2"
--
, "title2"
,
"=="
--
, "=="
,
"^@@authors: FirstName1, LastName1; FirstName2, LastName2"
--
, "^@@authors: FirstName1, LastName1; FirstName2, LastName2"
,
"
^@@
date: 2021-09-10"
,
"date: 2021-09-10"
,
"
^@@
source: someSource"
,
"source: someSource"
,
"document contents 1"
,
"document contents 1"
,
"document contents 2"
,
"document contents 2"
]
]
...
@@ -42,9 +57,9 @@ sampleUnordered =
...
@@ -42,9 +57,9 @@ sampleUnordered =
,
"title2"
,
"title2"
,
"=="
,
"=="
,
"document contents 1"
,
"document contents 1"
,
"
^@@
date: 2021-09-10"
,
"date: 2021-09-10"
,
"
^@@
authors: FirstName1, LastName1; FirstName2, LastName2"
,
"authors: FirstName1, LastName1; FirstName2, LastName2"
,
"
^@@
source: someSource"
,
"source: someSource"
,
"document contents 2"
,
"document contents 2"
]
]
...
@@ -150,14 +165,14 @@ contentsLineP = do
...
@@ -150,14 +165,14 @@ contentsLineP = do
titleDelimiterP
::
Parser
()
titleDelimiterP
::
Parser
()
titleDelimiterP
=
do
titleDelimiterP
=
do
_
<-
newline
_
<-
newline
_
<-
string
"=="
-- _ <- try (string "==")
tokenEnd
pure
()
titleP
::
Parser
[
Char
]
titleP
::
Parser
[
Char
]
titleP
=
manyTill
anyChar
(
try
titleDelimiterP
)
titleP
=
manyTill
anyChar
(
try
titleDelimiterP
)
authorsPrefixP
::
Parser
[
Char
]
authorsPrefixP
::
Parser
[
Char
]
authorsPrefixP
=
do
authorsPrefixP
=
do
_
<-
string
"
^@@
authors:"
_
<-
string
"authors:"
many
(
char
' '
)
many
(
char
' '
)
authorsP
::
Parser
[
Author
]
authorsP
::
Parser
[
Author
]
authorsP
=
try
authorsPrefixP
*>
sepBy
authorP
(
char
';'
)
authorsP
=
try
authorsPrefixP
*>
sepBy
authorP
(
char
';'
)
...
@@ -173,7 +188,7 @@ authorP = do
...
@@ -173,7 +188,7 @@ authorP = do
datePrefixP
::
Parser
[
Char
]
datePrefixP
::
Parser
[
Char
]
datePrefixP
=
do
datePrefixP
=
do
_
<-
string
"
^@@
date:"
_
<-
string
"date:"
many
(
char
' '
)
many
(
char
' '
)
dateP
::
Parser
Date
dateP
::
Parser
Date
dateP
=
try
datePrefixP
dateP
=
try
datePrefixP
...
@@ -195,7 +210,7 @@ dateISOP = do
...
@@ -195,7 +210,7 @@ dateISOP = do
sourcePrefixP
::
Parser
[
Char
]
sourcePrefixP
::
Parser
[
Char
]
sourcePrefixP
=
do
sourcePrefixP
=
do
_
<-
string
"
^@@
source:"
_
<-
string
"source:"
many
(
char
' '
)
many
(
char
' '
)
sourceP
::
Parser
[
Char
]
sourceP
::
Parser
[
Char
]
sourceP
=
try
sourcePrefixP
sourceP
=
try
sourcePrefixP
...
@@ -206,3 +221,15 @@ sourceP = try sourcePrefixP
...
@@ -206,3 +221,15 @@ sourceP = try sourcePrefixP
tokenEnd
::
Parser
()
tokenEnd
::
Parser
()
tokenEnd
=
void
(
char
'
\n
'
)
<|>
eof
tokenEnd
=
void
(
char
'
\n
'
)
<|>
eof
--- MISC Tools
text2paragraphs
::
Int
->
Text
->
[
Text
]
text2paragraphs
n
=
List
.
map
DT
.
concat
.
splitEvery
n
.
List
.
map
clean
.
sentences
.
DT
.
concat
.
DT
.
lines
clean
::
Text
->
Text
clean
=
DT
.
unwords
.
List
.
filter
(
\
w
->
DT
.
length
w
<
25
)
.
DT
.
words
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