]> Git — Sourcephile - gargantext.git/blob - src/Gargantext/Database/Schema/NodeNgrams.hs
[REFACT] Hyperdata (WIP)
[gargantext.git] / src / Gargantext / Database / Schema / NodeNgrams.hs
1 {-|
2 Module : Gargantext.Database.Schema.NodeNgrams
3 Description :
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
8 Portability : POSIX
9
10 NodeNgrams register Context of Ngrams (named Cgrams then)
11
12 -}
13
14 {-# OPTIONS_GHC -fno-warn-orphans #-}
15
16 {-# LANGUAGE Arrows #-}
17 {-# LANGUAGE FunctionalDependencies #-}
18 {-# LANGUAGE QuasiQuotes #-}
19 {-# LANGUAGE TemplateHaskell #-}
20
21 module Gargantext.Database.Schema.NodeNgrams where
22
23 import Data.Maybe (Maybe)
24 import Data.Text (Text)
25 import Gargantext.Core.Types
26 import Gargantext.Database.Schema.Ngrams (NgramsType)
27 import Gargantext.Prelude
28
29
30 data NodeNgramsPoly id
31 node_id'
32 node_subtype
33 ngrams_id
34 ngrams_type
35 ngrams_field
36 ngrams_tag
37 ngrams_class
38 weight
39 = NodeNgrams { _nng_id :: !id
40 , _nng_node_id :: !node_id'
41 , _nng_node_subtype :: !node_subtype
42 , _nng_ngrams_id :: !ngrams_id
43 , _nng_ngrams_type :: !ngrams_type
44 , _nng_ngrams_field :: !ngrams_field
45 , _nng_ngrams_tag :: !ngrams_tag
46 , _nng_ngrams_class :: !ngrams_class
47 , _nng_ngrams_weight :: !weight
48 } deriving (Show, Eq, Ord)
49
50 {-
51 type NodeNgramsWrite = NodeNgramsPoly (Maybe (Column (PGInt4)))
52 (Column (PGInt4))
53 (Maybe (Column (PGInt4)))
54 (Column (PGInt4))
55 (Maybe (Column (PGInt4)))
56 (Maybe (Column (PGInt4)))
57 (Maybe (Column (PGInt4)))
58 (Maybe (Column (PGInt4)))
59 (Maybe (Column (PGFloat8)))
60
61 type NodeNodeRead = NodeNgramsPoly (Column PGInt4)
62 (Column PGInt4)
63 (Column PGInt4)
64 (Column PGInt4)
65 (Column PGInt4)
66 (Column PGInt4)
67 (Column PGInt4)
68 (Column PGInt4)
69 (Column PGFloat8)
70
71 type NodeNgramsReadNull = NodeNgramsPoly (Column (Nullable PGInt4))
72 (Column (Nullable PGInt4))
73 (Column (Nullable PGInt4))
74 (Column (Nullable PGInt4))
75
76 (Column (Nullable PGInt4))
77 (Column (Nullable PGInt4))
78 (Column (Nullable PGInt4))
79 (Column (Nullable PGInt4))
80 (Column (Nullable PGFloat8))
81 -}
82 type NodeNgramsId = Int
83 type NgramsId = Int
84 type NgramsField = Int
85 type NgramsTag = Int
86 type NgramsClass = Int
87 type NgramsText = Text
88
89 -- Example of list Ngrams
90 -- type ListNgrams = NodeNgramsPoly (Maybe Int) ListType Text
91
92 type NodeNgramsW =
93 NodeNgramsPoly (Maybe NodeNgramsId) NodeId ListType NgramsText
94 NgramsType (Maybe NgramsField) (Maybe NgramsTag) (Maybe NgramsClass)
95 Double
96