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
...
@@ -116,6 +116,8 @@ class ExtractNgramsT h
->
h
->
h
->
Cmd
err
(
Map
Ngrams
(
Map
NgramsType
Int
))
->
Cmd
err
(
Map
Ngrams
(
Map
NgramsType
Int
))
filterNgramsT
::
Int
->
Map
Ngrams
(
Map
NgramsType
Int
)
filterNgramsT
::
Int
->
Map
Ngrams
(
Map
NgramsType
Int
)
->
Map
Ngrams
(
Map
NgramsType
Int
)
->
Map
Ngrams
(
Map
NgramsType
Int
)
filterNgramsT
s
ms
=
Map
.
fromList
$
map
filter'
$
Map
.
toList
ms
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
...
@@ -308,7 +308,6 @@ insertDocs uId cId hs = do
pure
(
newIds'
,
documentsWithId
)
pure
(
newIds'
,
documentsWithId
)
------------------------------------------------------------------------
------------------------------------------------------------------------
viewUniqId'
::
UniqId
a
viewUniqId'
::
UniqId
a
=>
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
...
@@ -37,7 +37,6 @@ import qualified Gargantext.Database.Query.Table.Ngrams as TableNgrams
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Query.Table.Node_NodeNgramsNodeNgrams
import
Gargantext.Database.Query.Table.Node_NodeNgramsNodeNgrams
import
Gargantext.Database.Query.Table.NodeNgrams
(
NodeNgramsPoly
(
..
),
NodeNgramsW
,
listInsertDb
,
getCgramsId
)
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.Database.Schema.Ngrams
(
Ngrams
(
..
),
NgramsType
(
..
))
import
Gargantext.Prelude
import
Gargantext.Prelude
...
...
src/Gargantext/Database/Action/Flow/Utils.hs
View file @
55072e33
...
@@ -14,15 +14,14 @@ module Gargantext.Database.Action.Flow.Utils
...
@@ -14,15 +14,14 @@ module Gargantext.Database.Action.Flow.Utils
where
where
import
Data.Map
(
Map
)
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.Hyperdata
(
Hyperdata
)
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Prelude
(
Cmd
)
import
Gargantext.Database.Prelude
(
Cmd
)
import
Gargantext.Database.Query.Table.NodeNodeNgrams
import
Gargantext.Database.Query.Table.NodeNodeNgrams
import
Gargantext.Database.Schema.Ngrams
import
Gargantext.Database.Schema.Ngrams
import
Gargantext.Database.Schema.Node
import
Gargantext.Database.Schema.Node
import
Gargantext.Prelude
import
Gargantext.Prelude
import
qualified
Data.Map
as
DM
toMaps
::
Hyperdata
a
toMaps
::
Hyperdata
a
...
@@ -82,7 +81,7 @@ insertDocNgramsOn cId dn =
...
@@ -82,7 +81,7 @@ insertDocNgramsOn cId dn =
$
(
map
(
docNgrams2nodeNodeNgrams
cId
)
dn
)
$
(
map
(
docNgrams2nodeNodeNgrams
cId
)
dn
)
insertDocNgrams
::
CorpusId
insertDocNgrams
::
CorpusId
->
Map
NgramsIndexed
(
Map
NgramsType
(
Map
NodeId
Int
))
->
Map
(
NgramsIndexed
Ngrams
)
(
Map
NgramsType
(
Map
NodeId
Int
))
->
Cmd
err
Int
->
Cmd
err
Int
insertDocNgrams
cId
m
=
insertDocNgrams
cId
m
=
insertDocNgramsOn
cId
[
DocNgrams
n
(
_ngramsId
ng
)
(
ngramsTypeId
t
)
(
fromIntegral
i
)
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
...
@@ -64,10 +64,10 @@ _dbGetNgramsDb = runOpaQuery queryNgramsTable
-- TODO-ACCESS: access must not be checked here but when insertNgrams is called.
-- TODO-ACCESS: access must not be checked here but when insertNgrams is called.
insertNgrams
::
[
Ngrams
]
->
Cmd
err
(
Map
NgramsTerms
NgramsId
)
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.
-- 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
)
insertNgrams'
ns
=
runPGSQuery
queryInsertNgrams
(
PGS
.
Only
$
Values
fields
ns
)
where
where
fields
=
map
(
\
t
->
QualifiedIdentifier
Nothing
t
)
[
"text"
,
"int4"
]
fields
=
map
(
\
t
->
QualifiedIdentifier
Nothing
t
)
[
"text"
,
"int4"
]
...
@@ -88,7 +88,7 @@ queryInsertNgrams = [sql|
...
@@ -88,7 +88,7 @@ queryInsertNgrams = [sql|
RETURNING id,terms
RETURNING id,terms
)
)
SELECT
id, terms
SELECT
terms, id
FROM ins
FROM ins
UNION ALL
UNION ALL
SELECT c.id, terms
SELECT c.id, terms
...
...
src/Gargantext/Database/Query/Table/NgramsPostag.hs
View file @
55072e33
...
@@ -37,7 +37,7 @@ type NgramsPostagInsert = ( Int
...
@@ -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
)
insertNgramsPostag
ns
=
runPGSQuery
queryInsertNgramsPostag
(
PGS
.
Only
$
Values
fields
ns
)
where
where
...
@@ -96,7 +96,7 @@ queryInsertNgramsPostag = [sql|
...
@@ -96,7 +96,7 @@ queryInsertNgramsPostag = [sql|
DO UPDATE SET score = ngrams_postag.score + 1
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
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
...
@@ -82,7 +82,6 @@ data NgramsType = Authors | Institutes | Sources | NgramsTerms
deriving
(
Eq
,
Show
,
Read
,
Ord
,
Enum
,
Bounded
,
Generic
)
deriving
(
Eq
,
Show
,
Read
,
Ord
,
Enum
,
Bounded
,
Generic
)
instance
Serialise
NgramsType
instance
Serialise
NgramsType
instance
Hashable
NgramsType
ngramsTypes
::
[
NgramsType
]
ngramsTypes
::
[
NgramsType
]
ngramsTypes
=
[
minBound
..
]
ngramsTypes
=
[
minBound
..
]
...
@@ -107,6 +106,7 @@ instance FromField NgramsTypeId where
...
@@ -107,6 +106,7 @@ instance FromField NgramsTypeId where
instance
FromJSON
NgramsType
instance
FromJSON
NgramsType
instance
FromJSONKey
NgramsType
where
instance
FromJSONKey
NgramsType
where
fromJSONKey
=
FromJSONKeyTextParser
(
parseJSON
.
String
)
fromJSONKey
=
FromJSONKeyTextParser
(
parseJSON
.
String
)
instance
ToJSON
NgramsType
instance
ToJSON
NgramsType
instance
ToJSONKey
NgramsType
where
instance
ToJSONKey
NgramsType
where
toJSONKey
=
toJSONKeyText
(
pack
.
show
)
toJSONKey
=
toJSONKeyText
(
pack
.
show
)
...
@@ -140,22 +140,30 @@ fromNgramsTypeId id = lookup id
...
@@ -140,22 +140,30 @@ fromNgramsTypeId id = lookup id
|
nt
<-
[
minBound
..
maxBound
]
::
[
NgramsType
]
|
nt
<-
[
minBound
..
maxBound
]
::
[
NgramsType
]
]
]
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-- | TODO put it in Gargantext.Core.Text.Ngrams
-- | TODO put it in Gargantext.Core.Text.Ngrams
data
Ngrams
=
UnsafeNgrams
{
_ngramsTerms
::
Text
data
Ngrams
=
UnsafeNgrams
{
_ngramsTerms
::
Text
,
_ngramsSize
::
Int
,
_ngramsSize
::
Int
}
deriving
(
Generic
,
Show
,
Eq
,
Ord
)
}
deriving
(
Generic
,
Show
,
Eq
,
Ord
)
makeLenses
''
N
grams
makeLenses
''
N
grams
instance
PGS
.
ToRow
Ngrams
where
instance
PGS
.
ToRow
Ngrams
where
toRow
(
UnsafeNgrams
t
s
)
=
[
toField
t
,
toField
s
]
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
::
Text
->
Ngrams
text2ngrams
txt
=
UnsafeNgrams
txt'
$
length
$
splitOn
" "
txt'
text2ngrams
txt
=
UnsafeNgrams
txt'
$
length
$
splitOn
" "
txt'
where
where
txt'
=
strip
txt
txt'
=
strip
txt
------------------------------------------------------------------------
-------------------------------------------------------------------------
-------------------------------------------------------------------------
-- | TODO put it in Gargantext.Core.Text.Ngrams
-- | TODO put it in Gargantext.Core.Text.Ngrams
-- Named entity are typed ngrams of Terms Ngrams
-- Named entity are typed ngrams of Terms Ngrams
...
@@ -169,40 +177,32 @@ makeLenses ''NgramsT
...
@@ -169,40 +177,32 @@ makeLenses ''NgramsT
instance
Functor
NgramsT
where
instance
Functor
NgramsT
where
fmap
=
over
ngramsT
fmap
=
over
ngramsT
-----------------------------------------------------------------------
-----------------------------------------------------------------------
data
NgramsIndexed
=
data
NgramsIndexed
a
=
NgramsIndexed
NgramsIndexed
{
_ngrams
::
Ngrams
{
_ngrams
::
a
,
_ngramsId
::
NgramsId
,
_ngramsId
::
NgramsId
}
deriving
(
Show
,
Generic
,
Eq
,
Ord
)
}
deriving
(
Show
,
Generic
,
Eq
,
Ord
)
makeLenses
''
N
gramsIndexed
makeLenses
''
N
gramsIndexed
------------------------------------------------------------------------
data
NgramIds
=
NgramIds
{
ngramId
::
Int
,
ngramTerms
::
Text
}
deriving
(
Show
,
Generic
,
Eq
,
Ord
)
instance
PGS
.
FromRow
NgramIds
where
instance
(
FromField
a
)
=>
PGS
.
FromRow
(
NgramsIndexed
a
)
where
fromRow
=
Ngram
Ids
<$>
field
<*>
field
fromRow
=
Ngram
sIndexed
<$>
field
<*>
field
----------------------
----------------------
--------------------------------------------------
withMap
::
Map
NgramsTerms
NgramsId
->
NgramsTerms
->
NgramsId
withMap
::
Map
NgramsTerms
NgramsId
->
NgramsTerms
->
NgramsId
withMap
m
n
=
maybe
(
panic
"withMap: should not happen"
)
identity
(
lookup
n
m
)
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
indexNgramsT
=
fmap
.
indexNgramsWith
.
withMap
indexNgrams
::
Map
NgramsTerms
NgramsId
->
Ngrams
->
NgramsIndexed
indexNgrams
::
Map
NgramsTerms
NgramsId
->
Ngrams
->
(
NgramsIndexed
Ngrams
)
indexNgrams
=
indexNgramsWith
.
withMap
indexNgrams
=
indexNgramsWith
.
withMap
{-
-- NP: not sure we need it anymore
-- NP: not sure we need it anymore
indexNgramsTWith
::
(
NgramsTerms
->
NgramsId
)
->
NgramsT
Ngrams
->
NgramsT
NgramsIndexed
indexNgramsTWith :: (NgramsTerms -> NgramsId) -> NgramsT Ngrams -> NgramsT
(
NgramsIndexed
indexNgramsTWith = fmap . indexNgramsWith
indexNgramsTWith = fmap . indexNgramsWith
-}
indexNgramsWith
::
(
NgramsTerms
->
NgramsId
)
->
Ngrams
->
NgramsIndexed
indexNgramsWith
::
(
NgramsTerms
->
NgramsId
)
->
Ngrams
->
NgramsIndexed
Ngrams
indexNgramsWith
f
n
=
NgramsIndexed
n
(
f
$
_ngramsTerms
n
)
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 }
...
@@ -50,7 +50,6 @@ data PosTag = PosTag { unPosTag :: Text }
------------------------------------------------------------------------
------------------------------------------------------------------------
type
NgramsPostag
=
NgramsPostagPoly
(
Maybe
Int
)
Lang
PostTagAlgo
(
Maybe
PosTag
)
NgramsTerm
NgramsTerm
(
Maybe
Int
)
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
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