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
145
Issues
145
List
Board
Labels
Milestones
Merge Requests
6
Merge Requests
6
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
55072e33
Commit
55072e33
authored
Jan 06, 2021
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[REFACT] Types work (WIP)
parent
5c20ad2f
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
40 additions
and
42 deletions
+40
-42
Terms.hs
src/Gargantext/Core/Text/Terms.hs
+2
-0
Flow.hs
src/Gargantext/Database/Action/Flow.hs
+2
-3
List.hs
src/Gargantext/Database/Action/Flow/List.hs
+0
-1
Utils.hs
src/Gargantext/Database/Action/Flow/Utils.hs
+3
-4
Ngrams.hs
src/Gargantext/Database/Query/Table/Ngrams.hs
+3
-3
NgramsPostag.hs
src/Gargantext/Database/Query/Table/NgramsPostag.hs
+2
-2
Ngrams.hs
src/Gargantext/Database/Schema/Ngrams.hs
+21
-21
NgramsPostag.hs
src/Gargantext/Database/Schema/NgramsPostag.hs
+7
-8
No files found.
src/Gargantext/Core/Text/Terms.hs
View file @
55072e33
...
...
@@ -116,6 +116,8 @@ class ExtractNgramsT h
->
h
->
Cmd
err
(
Map
Ngrams
(
Map
NgramsType
Int
))
filterNgramsT
::
Int
->
Map
Ngrams
(
Map
NgramsType
Int
)
->
Map
Ngrams
(
Map
NgramsType
Int
)
filterNgramsT
s
ms
=
Map
.
fromList
$
map
filter'
$
Map
.
toList
ms
...
...
src/Gargantext/Database/Action/Flow.hs
View file @
55072e33
...
...
@@ -270,8 +270,8 @@ insertMasterDocs c lang hs = do
-- new
lId
<-
getOrMkList
masterCorpusId
masterUserId
mapCgramsId
<-
listInsertDb
lId
toNodeNgramsW'
$
map
(
first
_ngramsTerms
.
second
Map
.
keys
)
$
Map
.
toList
mapNgramsDocs
$
map
(
first
_ngramsTerms
.
second
Map
.
keys
)
$
Map
.
toList
mapNgramsDocs
-- insertDocNgrams
_return
<-
insertNodeNodeNgrams2
$
catMaybes
[
NodeNodeNgrams2
<$>
Just
nId
...
...
@@ -308,7 +308,6 @@ insertDocs uId cId hs = do
pure
(
newIds'
,
documentsWithId
)
------------------------------------------------------------------------
viewUniqId'
::
UniqId
a
=>
a
...
...
src/Gargantext/Database/Action/Flow/List.hs
View file @
55072e33
...
...
@@ -37,7 +37,6 @@ import qualified Gargantext.Database.Query.Table.Ngrams as TableNgrams
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Query.Table.Node_NodeNgramsNodeNgrams
import
Gargantext.Database.Query.Table.NodeNgrams
(
NodeNgramsPoly
(
..
),
NodeNgramsW
,
listInsertDb
,
getCgramsId
)
-- import Gargantext.Database.Schema.Ngrams -- (insertNgrams, Ngrams(..), NgramsIndexed(..), indexNgrams, NgramsType(..), text2ngrams, ngramsTypeId)
import
Gargantext.Database.Schema.Ngrams
(
Ngrams
(
..
),
NgramsType
(
..
))
import
Gargantext.Prelude
...
...
src/Gargantext/Database/Action/Flow/Utils.hs
View file @
55072e33
...
...
@@ -14,15 +14,14 @@ module Gargantext.Database.Action.Flow.Utils
where
import
Data.Map
(
Map
)
import
qualified
Data.Map
as
DM
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Admin.Types.Hyperdata
(
Hyperdata
)
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Prelude
(
Cmd
)
import
Gargantext.Database.Query.Table.NodeNodeNgrams
import
Gargantext.Database.Schema.Ngrams
import
Gargantext.Database.Schema.Node
import
Gargantext.Prelude
import
qualified
Data.Map
as
DM
toMaps
::
Hyperdata
a
...
...
@@ -82,7 +81,7 @@ insertDocNgramsOn cId dn =
$
(
map
(
docNgrams2nodeNodeNgrams
cId
)
dn
)
insertDocNgrams
::
CorpusId
->
Map
NgramsIndexed
(
Map
NgramsType
(
Map
NodeId
Int
))
->
Map
(
NgramsIndexed
Ngrams
)
(
Map
NgramsType
(
Map
NodeId
Int
))
->
Cmd
err
Int
insertDocNgrams
cId
m
=
insertDocNgramsOn
cId
[
DocNgrams
n
(
_ngramsId
ng
)
(
ngramsTypeId
t
)
(
fromIntegral
i
)
...
...
src/Gargantext/Database/Query/Table/Ngrams.hs
View file @
55072e33
...
...
@@ -64,10 +64,10 @@ _dbGetNgramsDb = runOpaQuery queryNgramsTable
-- TODO-ACCESS: access must not be checked here but when insertNgrams is called.
insertNgrams
::
[
Ngrams
]
->
Cmd
err
(
Map
NgramsTerms
NgramsId
)
insertNgrams
ns
=
fromList
<$>
map
(
\
(
Ngram
Ids
i
t
)
->
(
t
,
i
))
<$>
(
insertNgrams'
ns
)
insertNgrams
ns
=
fromList
<$>
map
(
\
(
Ngram
sIndexed
t
i
)
->
(
t
,
i
))
<$>
(
insertNgrams'
ns
)
-- TODO-ACCESS: access must not be checked here but when insertNgrams' is called.
insertNgrams'
::
[
Ngrams
]
->
Cmd
err
[
Ngram
Ids
]
insertNgrams'
::
[
Ngrams
]
->
Cmd
err
[
Ngram
sIndexed
Text
]
insertNgrams'
ns
=
runPGSQuery
queryInsertNgrams
(
PGS
.
Only
$
Values
fields
ns
)
where
fields
=
map
(
\
t
->
QualifiedIdentifier
Nothing
t
)
[
"text"
,
"int4"
]
...
...
@@ -88,7 +88,7 @@ queryInsertNgrams = [sql|
RETURNING id,terms
)
SELECT
id, terms
SELECT
terms, id
FROM ins
UNION ALL
SELECT c.id, terms
...
...
src/Gargantext/Database/Query/Table/NgramsPostag.hs
View file @
55072e33
...
...
@@ -37,7 +37,7 @@ type NgramsPostagInsert = ( Int
)
insertNgramsPostag
::
[
NgramsPostagInsert
]
->
Cmd
err
[
Ngram
Ids
]
insertNgramsPostag
::
[
NgramsPostagInsert
]
->
Cmd
err
[
Ngram
sIndexed
Text
]
insertNgramsPostag
ns
=
runPGSQuery
queryInsertNgramsPostag
(
PGS
.
Only
$
Values
fields
ns
)
where
...
...
@@ -96,7 +96,7 @@ queryInsertNgramsPostag = [sql|
DO UPDATE SET score = ngrams_postag.score + 1
)
SELECT
id,terms
FROM ins_form_ret
SELECT
terms,id
FROM ins_form_ret
INNER JOIN input_rows ir ON ins_form_ret.terms = ir.form
|]
...
...
src/Gargantext/Database/Schema/Ngrams.hs
View file @
55072e33
...
...
@@ -82,7 +82,6 @@ data NgramsType = Authors | Institutes | Sources | NgramsTerms
deriving
(
Eq
,
Show
,
Read
,
Ord
,
Enum
,
Bounded
,
Generic
)
instance
Serialise
NgramsType
instance
Hashable
NgramsType
ngramsTypes
::
[
NgramsType
]
ngramsTypes
=
[
minBound
..
]
...
...
@@ -107,6 +106,7 @@ instance FromField NgramsTypeId where
instance
FromJSON
NgramsType
instance
FromJSONKey
NgramsType
where
fromJSONKey
=
FromJSONKeyTextParser
(
parseJSON
.
String
)
instance
ToJSON
NgramsType
instance
ToJSONKey
NgramsType
where
toJSONKey
=
toJSONKeyText
(
pack
.
show
)
...
...
@@ -140,22 +140,30 @@ fromNgramsTypeId id = lookup id
|
nt
<-
[
minBound
..
maxBound
]
::
[
NgramsType
]
]
------------------------------------------------------------------------
------------------------------------------------------------------------
-- | TODO put it in Gargantext.Core.Text.Ngrams
data
Ngrams
=
UnsafeNgrams
{
_ngramsTerms
::
Text
,
_ngramsSize
::
Int
}
deriving
(
Generic
,
Show
,
Eq
,
Ord
)
}
deriving
(
Generic
,
Show
,
Eq
,
Ord
)
makeLenses
''
N
grams
instance
PGS
.
ToRow
Ngrams
where
toRow
(
UnsafeNgrams
t
s
)
=
[
toField
t
,
toField
s
]
instance
FromField
Ngrams
where
fromField
fld
mdata
=
do
x
<-
fromField
fld
mdata
pure
$
text2ngrams
x
text2ngrams
::
Text
->
Ngrams
text2ngrams
txt
=
UnsafeNgrams
txt'
$
length
$
splitOn
" "
txt'
where
txt'
=
strip
txt
------------------------------------------------------------------------
-------------------------------------------------------------------------
-- | TODO put it in Gargantext.Core.Text.Ngrams
-- Named entity are typed ngrams of Terms Ngrams
...
...
@@ -169,40 +177,32 @@ makeLenses ''NgramsT
instance
Functor
NgramsT
where
fmap
=
over
ngramsT
-----------------------------------------------------------------------
data
NgramsIndexed
=
data
NgramsIndexed
a
=
NgramsIndexed
{
_ngrams
::
Ngrams
{
_ngrams
::
a
,
_ngramsId
::
NgramsId
}
deriving
(
Show
,
Generic
,
Eq
,
Ord
)
makeLenses
''
N
gramsIndexed
------------------------------------------------------------------------
data
NgramIds
=
NgramIds
{
ngramId
::
Int
,
ngramTerms
::
Text
}
deriving
(
Show
,
Generic
,
Eq
,
Ord
)
instance
PGS
.
FromRow
NgramIds
where
fromRow
=
Ngram
Ids
<$>
field
<*>
field
instance
(
FromField
a
)
=>
PGS
.
FromRow
(
NgramsIndexed
a
)
where
fromRow
=
Ngram
sIndexed
<$>
field
<*>
field
----------------------
----------------------
--------------------------------------------------
withMap
::
Map
NgramsTerms
NgramsId
->
NgramsTerms
->
NgramsId
withMap
m
n
=
maybe
(
panic
"withMap: should not happen"
)
identity
(
lookup
n
m
)
indexNgramsT
::
Map
NgramsTerms
NgramsId
->
NgramsT
Ngrams
->
NgramsT
NgramsIndexed
indexNgramsT
::
Map
NgramsTerms
NgramsId
->
NgramsT
Ngrams
->
NgramsT
(
NgramsIndexed
Ngrams
)
indexNgramsT
=
fmap
.
indexNgramsWith
.
withMap
indexNgrams
::
Map
NgramsTerms
NgramsId
->
Ngrams
->
NgramsIndexed
indexNgrams
::
Map
NgramsTerms
NgramsId
->
Ngrams
->
(
NgramsIndexed
Ngrams
)
indexNgrams
=
indexNgramsWith
.
withMap
{-
-- NP: not sure we need it anymore
indexNgramsTWith
::
(
NgramsTerms
->
NgramsId
)
->
NgramsT
Ngrams
->
NgramsT
NgramsIndexed
indexNgramsTWith :: (NgramsTerms -> NgramsId) -> NgramsT Ngrams -> NgramsT
(
NgramsIndexed
indexNgramsTWith = fmap . indexNgramsWith
-}
indexNgramsWith
::
(
NgramsTerms
->
NgramsId
)
->
Ngrams
->
NgramsIndexed
indexNgramsWith
::
(
NgramsTerms
->
NgramsId
)
->
Ngrams
->
NgramsIndexed
Ngrams
indexNgramsWith
f
n
=
NgramsIndexed
n
(
f
$
_ngramsTerms
n
)
src/Gargantext/Database/Schema/NgramsPostag.hs
View file @
55072e33
...
...
@@ -36,13 +36,13 @@ data NgramsPostagPoly id
lemm_id
score
=
NgramsPostagPoly
{
_ngramsPostag_id
::
!
id
,
_ngramsPostag_lang_id
::
!
lang_id
,
_ngramsPostag_algo_id
::
!
algo_id
,
_ngramsPostag_postag
::
!
postag
,
_ngramsPostag_ngrams_id
::
!
ngrams_id
,
_ngramsPostag_lemm_id
::
!
lemm_id
,
_ngramsPostag_score
::
!
score
}
deriving
(
Show
)
,
_ngramsPostag_lang_id
::
!
lang_id
,
_ngramsPostag_algo_id
::
!
algo_id
,
_ngramsPostag_postag
::
!
postag
,
_ngramsPostag_ngrams_id
::
!
ngrams_id
,
_ngramsPostag_lemm_id
::
!
lemm_id
,
_ngramsPostag_score
::
!
score
}
deriving
(
Show
)
------------------------------------------------------------------------
data
PosTag
=
PosTag
{
unPosTag
::
Text
}
...
...
@@ -50,7 +50,6 @@ data PosTag = PosTag { unPosTag :: Text }
------------------------------------------------------------------------
type
NgramsPostag
=
NgramsPostagPoly
(
Maybe
Int
)
Lang
PostTagAlgo
(
Maybe
PosTag
)
NgramsTerm
NgramsTerm
(
Maybe
Int
)
type
NgramsPostagDB
=
NgramsPostagPoly
(
Maybe
Int
)
Int
Int
(
Maybe
Text
)
Int
Int
Int
...
...
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