Commit 410f4e06 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[DBFLOW] Taks list + cosmetics + mkNodeList.

parent ca8ff794
...@@ -93,8 +93,8 @@ flow fp = do ...@@ -93,8 +93,8 @@ flow fp = do
runCmd' $ del [corpusId2, corpusId] runCmd' $ del [corpusId2, corpusId]
---------------------------------------------------------------- ----------------------------------------------------------------
type HashId = Text type HashId = Text
type NodeId = Int
type ToInsert = Map HashId HyperdataDocument type ToInsert = Map HashId HyperdataDocument
type Inserted = Map HashId ReturnId type Inserted = Map HashId ReturnId
...@@ -111,7 +111,6 @@ data DocumentWithId = DocumentWithId { documentId :: NodeId ...@@ -111,7 +111,6 @@ data DocumentWithId = DocumentWithId { documentId :: NodeId
, documentData :: HyperdataDocument , documentData :: HyperdataDocument
} }
type NodeId = Int
mergeData :: Map HashId ReturnId -> Map HashId HyperdataDocument -> [DocumentWithId] mergeData :: Map HashId ReturnId -> Map HashId HyperdataDocument -> [DocumentWithId]
mergeData rs hs = map (\(hash,r) -> DocumentWithId (reId r) (lookup' hash hs)) $ DM.toList rs mergeData rs hs = map (\(hash,r) -> DocumentWithId (reId r) (lookup' hash hs)) $ DM.toList rs
...@@ -123,7 +122,6 @@ data DocumentIdWithNgrams = DocumentIdWithNgrams { documentWithId :: DocumentWi ...@@ -123,7 +122,6 @@ data DocumentIdWithNgrams = DocumentIdWithNgrams { documentWithId :: DocumentWi
} }
documentIdWithNgrams :: (HyperdataDocument -> Map (NgramsT Ngrams) Int) documentIdWithNgrams :: (HyperdataDocument -> Map (NgramsT Ngrams) Int)
-> [DocumentWithId] -> [DocumentIdWithNgrams] -> [DocumentWithId] -> [DocumentIdWithNgrams]
documentIdWithNgrams f = map (\d -> DocumentIdWithNgrams d ((f . documentData) d)) documentIdWithNgrams f = map (\d -> DocumentIdWithNgrams d ((f . documentData) d))
...@@ -145,17 +143,20 @@ indexNgrams ng2nId = do ...@@ -145,17 +143,20 @@ indexNgrams ng2nId = do
insertToNodeNgrams :: Map (NgramsT NgramsIndexed) (Map NodeId Int) -> Cmd Int insertToNodeNgrams :: Map (NgramsT NgramsIndexed) (Map NodeId Int) -> Cmd Int
insertToNodeNgrams m = insertNodeNgrams $ [ NodeNgram Nothing nId ((_ngramsId . _ngramsT ) ng) insertToNodeNgrams m = insertNodeNgrams $ [ NodeNgram Nothing nId ((_ngramsId . _ngramsT ) ng)
(fromIntegral n) ((ngramsTypeId . _ngramsType) ng) (fromIntegral n) ((ngramsTypeId . _ngramsType) ng)
| (ng, nId2int) <- DM.toList m | (ng, nId2int) <- DM.toList m
, (nId, n) <- DM.toList nId2int , (nId, n) <- DM.toList nId2int
] ]
-- mk ListGroup
-- mk List Group -- groupBy fun
-- group by fun
-- insertInto NodeNgramsNgrams -- insertInto NodeNgramsNgrams
-- compute Candidate / Map
-- add column typelist
-- insertNodeNodeNgram
-- get data of NgramsTable -- get data of NgramsTable
-- change List of ngrams -- post :: update NodeNodeNgrams
-- group ngrams -- group ngrams
...@@ -497,4 +497,6 @@ mkRoot uId = case uId > 0 of ...@@ -497,4 +497,6 @@ mkRoot uId = case uId > 0 of
mkCorpus :: Maybe Name -> Maybe HyperdataCorpus -> ParentId -> UserId -> Cmd [Int] mkCorpus :: Maybe Name -> Maybe HyperdataCorpus -> ParentId -> UserId -> Cmd [Int]
mkCorpus n h p u = insertNodesR' [nodeCorpusW n h p u] mkCorpus n h p u = insertNodesR' [nodeCorpusW n h p u]
--mkNodeGroupList :: Maybe HyperdataAny -> ParentId -> UserId -> Cmd [Int]
--mkNodeGroupList h p u = insertNodesR' [nodeCorpusW (Just "Group List" h p u)]
...@@ -69,7 +69,11 @@ queryNodeNgramTable :: Query NodeNgramRead ...@@ -69,7 +69,11 @@ queryNodeNgramTable :: Query NodeNgramRead
queryNodeNgramTable = queryTable nodeNgramTable queryNodeNgramTable = queryTable nodeNgramTable
insertNodeNgrams :: [NodeNgram] -> Cmd Int insertNodeNgrams :: [NodeNgram] -> Cmd Int
insertNodeNgrams nns = insertNodeNgramW $ map (\(NodeNgram i n g w t) -> NodeNgram Nothing (pgInt4 n) (pgInt4 g) (pgDouble w) (pgInt4 t) ) nns insertNodeNgrams = insertNodeNgramW
. map (\(NodeNgram _ n g w t) ->
NodeNgram Nothing (pgInt4 n) (pgInt4 g)
(pgDouble w) (pgInt4 t)
)
insertNodeNgramW :: [NodeNgramWrite] -> Cmd Int insertNodeNgramW :: [NodeNgramWrite] -> Cmd Int
insertNodeNgramW nns = mkCmd $ \c -> fromIntegral <$> runInsertMany c nodeNgramTable nns insertNodeNgramW nns = mkCmd $ \c -> fromIntegral <$> runInsertMany c nodeNgramTable nns
......
...@@ -21,7 +21,7 @@ commentary with @some markup@. ...@@ -21,7 +21,7 @@ commentary with @some markup@.
module Gargantext.Database.NodeNgramNgram where module Gargantext.Database.NodeNgramNgram where
import Prelude import Gargantext.Prelude
import Data.Maybe (Maybe) import Data.Maybe (Maybe)
import Data.Profunctor.Product.TH (makeAdaptorAndInstance) import Data.Profunctor.Product.TH (makeAdaptorAndInstance)
import Control.Lens.TH (makeLensesWith, abbreviatedFields) import Control.Lens.TH (makeLensesWith, abbreviatedFields)
...@@ -29,40 +29,46 @@ import qualified Database.PostgreSQL.Simple as PGS ...@@ -29,40 +29,46 @@ import qualified Database.PostgreSQL.Simple as PGS
import Opaleye import Opaleye
data NodeNgramNgramPoly node_id ngram1_id ngram2_id weight data NodeNgramNgramPoly node_id ngram1_id ngram2_id weight =
= NodeNgramNgram { nodeNgramNgram_NodeNgramNgram_NodeId :: node_id NodeNgramNgram { nng_NodeId :: node_id
, nodeNgramNgram_NodeNgramNgram_Ngram1Id :: ngram1_id , nng_Ngram1Id :: ngram1_id
, nodeNgramNgram_NodeNgramNgram_Ngram2Id :: ngram2_id , nng_Ngram2Id :: ngram2_id
, nodeNgramNgram_NodeNgramNgram_Weight :: weight , nng_Weight :: weight
} deriving (Show) } deriving (Show)
type NodeNgramNgramWrite = NodeNgramNgramPoly (Maybe (Column PGInt4 )) type NodeNgramNgramWrite =
NodeNgramNgramPoly (Maybe (Column PGInt4 ))
(Column PGInt4 ) (Column PGInt4 )
(Column PGInt4 ) (Column PGInt4 )
(Maybe (Column PGFloat8)) (Maybe (Column PGFloat8))
type NodeNgramNgramRead = NodeNgramNgramPoly (Column PGInt4 ) type NodeNgramNgramRead =
NodeNgramNgramPoly (Column PGInt4 )
(Column PGInt4 ) (Column PGInt4 )
(Column PGInt4 ) (Column PGInt4 )
(Column PGFloat8) (Column PGFloat8)
type NodeNgramNgram = NodeNgramNgramPoly (Maybe Int ) type NodeNgramNgram =
NodeNgramNgramPoly (Maybe Int )
Int Int
Int Int
(Maybe Double) (Maybe Double)
$(makeAdaptorAndInstance "pNodeNgramNgram" ''NodeNgramNgramPoly) $(makeAdaptorAndInstance "pNodeNgramNgram"
$(makeLensesWith abbreviatedFields ''NodeNgramNgramPoly) ''NodeNgramNgramPoly)
$(makeLensesWith abbreviatedFields
''NodeNgramNgramPoly)
nodeNgramNgramTable :: Table NodeNgramNgramWrite NodeNgramNgramRead nodeNgramNgramTable :: Table NodeNgramNgramWrite NodeNgramNgramRead
nodeNgramNgramTable = Table "nodes_ngrams_ngrams" nodeNgramNgramTable =
Table "nodes_ngrams_ngrams"
( pNodeNgramNgram NodeNgramNgram ( pNodeNgramNgram NodeNgramNgram
{ nodeNgramNgram_NodeNgramNgram_NodeId = optional "node_id" { nng_NodeId = optional "node_id"
, nodeNgramNgram_NodeNgramNgram_Ngram1Id = required "ngram1_id" , nng_Ngram1Id = required "ngram1_id"
, nodeNgramNgram_NodeNgramNgram_Ngram2Id = required "ngram2_id" , nng_Ngram2Id = required "ngram2_id"
, nodeNgramNgram_NodeNgramNgram_Weight = optional "weight" , nng_Weight = optional "weight"
} }
) )
...@@ -78,3 +84,5 @@ instance QueryRunnerColumnDefault PGInt4 (Maybe Int) where ...@@ -78,3 +84,5 @@ instance QueryRunnerColumnDefault PGInt4 (Maybe Int) where
instance QueryRunnerColumnDefault PGFloat8 (Maybe Double) where instance QueryRunnerColumnDefault PGFloat8 (Maybe Double) where
queryRunnerColumnDefault = fieldQueryRunnerColumn queryRunnerColumnDefault = fieldQueryRunnerColumn
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment