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
11
Merge Requests
11
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
Show 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
...
...
@@ -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
...
...
@@ -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