{-| Module : Gargantext.Database.Schema.NodeNgrams Description : Copyright : (c) CNRS, 2017-Present License : AGPL + CECILL v3 Maintainer : team@gargantext.org Stability : experimental Portability : POSIX NodeNgrams register Context of Ngrams (named Cgrams then) -} {-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE Arrows #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} module Gargantext.Database.Schema.NodeNgrams where import Data.List.Extra (nubOrd) import Data.Map (Map) import Data.Maybe (Maybe, fromMaybe) import Data.Text (Text) import Gargantext.Database.Schema.Prelude import Gargantext.Core.Types import Gargantext.Database.Admin.Utils import Gargantext.Database.Schema.Ngrams (NgramsType, ngramsTypeId, fromNgramsTypeId) import Gargantext.Prelude import qualified Data.List as List import qualified Data.Map as Map data NodeNgramsPoly id node_id' node_subtype ngrams_id ngrams_type ngrams_field ngrams_tag ngrams_class weight = NodeNgrams { _nng_id :: !id , _nng_node_id :: !node_id' , _nng_node_subtype :: !node_subtype , _nng_ngrams_id :: !ngrams_id , _nng_ngrams_type :: !ngrams_type , _nng_ngrams_field :: !ngrams_field , _nng_ngrams_tag :: !ngrams_tag , _nng_ngrams_class :: !ngrams_class , _nng_ngrams_weight :: !weight } deriving (Show, Eq, Ord) {- type NodeNgramsWrite = NodeNgramsPoly (Maybe (Column (PGInt4))) (Column (PGInt4)) (Maybe (Column (PGInt4))) (Column (PGInt4)) (Maybe (Column (PGInt4))) (Maybe (Column (PGInt4))) (Maybe (Column (PGInt4))) (Maybe (Column (PGInt4))) (Maybe (Column (PGFloat8))) type NodeNodeRead = NodeNgramsPoly (Column PGInt4) (Column PGInt4) (Column PGInt4) (Column PGInt4) (Column PGInt4) (Column PGInt4) (Column PGInt4) (Column PGInt4) (Column PGFloat8) type NodeNgramsReadNull = NodeNgramsPoly (Column (Nullable PGInt4)) (Column (Nullable PGInt4)) (Column (Nullable PGInt4)) (Column (Nullable PGInt4)) (Column (Nullable PGInt4)) (Column (Nullable PGInt4)) (Column (Nullable PGInt4)) (Column (Nullable PGInt4)) (Column (Nullable PGFloat8)) -} type NodeNgramsId = Int type NgramsId = Int type NgramsField = Int type NgramsTag = Int type NgramsClass = Int type NgramsText = Text -- Example of list Ngrams -- type ListNgrams = NodeNgramsPoly (Maybe Int) ListType Text type NodeNgramsW = NodeNgramsPoly (Maybe NodeNgramsId) NodeId ListType NgramsText NgramsType (Maybe NgramsField) (Maybe NgramsTag) (Maybe NgramsClass) Double