diff --git a/gargantext.cabal b/gargantext.cabal
new file mode 100644
index 0000000000000000000000000000000000000000..146cf966df5b7a09267a62bf4b6194bc1f18580d
--- /dev/null
+++ b/gargantext.cabal
@@ -0,0 +1,903 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.35.0.
+--
+-- see: https://github.com/sol/hpack
+
+name:           gargantext
+version:        0.0.6.7.1
+synopsis:       Search, map, share
+description:    Please see README.md
+category:       Data
+homepage:       https://gargantext.org
+author:         Gargantext Team
+maintainer:     team@gargantext.org
+copyright:      Copyright: (c) 2017-Present: see git logs and README
+license:        AGPL-3
+license-file:   LICENSE
+build-type:     Simple
+data-files:
+    ekg-assets/index.html
+    ekg-assets/monitor.js
+    ekg-assets/monitor.css
+    ekg-assets/jquery.flot.min.js
+    ekg-assets/jquery-1.6.4.min.js
+    ekg-assets/bootstrap-1.4.0.min.css
+    ekg-assets/chart_line_add.png
+    ekg-assets/cross.png
+
+library
+  exposed-modules:
+      Gargantext
+      Gargantext.API
+      Gargantext.API.Dev
+      Gargantext.API.HashedResponse
+      Gargantext.API.Node
+      Gargantext.API.Node.Share
+      Gargantext.API.Node.File
+      Gargantext.API.Ngrams
+      Gargantext.API.Ngrams.Tools
+      Gargantext.API.Ngrams.Types
+      Gargantext.API.Ngrams.Prelude
+      Gargantext.API.Admin.Settings
+      Gargantext.API.Admin.EnvTypes
+      Gargantext.API.Admin.Auth.Types
+      Gargantext.API.Admin.Types
+      Gargantext.API.Prelude
+      Gargantext.API.Client
+      Gargantext.Core
+      Gargantext.Core.NodeStory
+      Gargantext.Core.Methods.Similarities
+      Gargantext.Core.Types
+      Gargantext.Core.Types.Individu
+      Gargantext.Core.Types.Main
+      Gargantext.Core.Utils.Prefix
+      Gargantext.Utils.SpacyNLP
+      Gargantext.Database.Action.Flow
+      Gargantext.Database.Action.Flow.Types
+      Gargantext.Database.Action.User.New
+      Gargantext.Database.Query.Table.User
+      Gargantext.Database.Query.Table.Node
+      Gargantext.Database.Query.Table.Node.UpdateOpaleye
+      Gargantext.Database.Query.Table.NgramsPostag
+      Gargantext.Database.Schema.Ngrams
+      Gargantext.Database.Prelude
+      Gargantext.Database.Admin.Trigger.Init
+      Gargantext.Database.Admin.Config
+      Gargantext.Database.Admin.Types.Hyperdata
+      Gargantext.Database.Admin.Types.Node
+      Gargantext.Defaults
+      Gargantext.Core.Text
+      Gargantext.Core.Text.Context
+      Gargantext.Core.Text.Corpus.Parsers
+      Gargantext.Core.Text.Corpus.Parsers.Date.Parsec
+      Gargantext.Core.Text.Corpus.API
+      Gargantext.Core.Text.Corpus.Parsers.CSV
+      Gargantext.Core.Text.List.Formats.CSV
+      Gargantext.Core.Text.Metrics
+      Gargantext.Core.Text.Metrics.TFICF
+      Gargantext.Core.Text.Metrics.CharByChar
+      Gargantext.Core.Text.Metrics.Count
+      Gargantext.Core.Text.Prepare
+      Gargantext.Core.Text.Search
+      Gargantext.Core.Text.Terms
+      Gargantext.Core.Text.Terms.Mono
+      Gargantext.Core.Text.Terms.Multi.Lang.En
+      Gargantext.Core.Text.Terms.Multi.Lang.Fr
+      Gargantext.Core.Text.Terms.Multi.RAKE
+      Gargantext.Core.Text.Terms.WithList
+      Gargantext.Core.Viz.Graph
+      Gargantext.Core.Viz.Graph.Tools
+      Gargantext.Core.Viz.Graph.Tools.IGraph
+      Gargantext.Core.Viz.Graph.Index
+      Gargantext.Core.Viz.Phylo
+      Gargantext.Core.Viz.Phylo.API
+      Gargantext.Core.Viz.Phylo.API.Tools
+      Gargantext.Core.Viz.Phylo.PhyloMaker
+      Gargantext.Core.Viz.Phylo.PhyloTools
+      Gargantext.Core.Viz.Phylo.PhyloExport
+      Gargantext.Core.Viz.Phylo.SynchronicClustering
+      Gargantext.Core.Viz.Types
+  other-modules:
+      Gargantext.API.Admin.Auth
+      Gargantext.API.Admin.FrontEnd
+      Gargantext.API.Admin.Orchestrator
+      Gargantext.API.Admin.Orchestrator.Scrapy.Schedule
+      Gargantext.API.Admin.Orchestrator.Types
+      Gargantext.API.Admin.Utils
+      Gargantext.API.Context
+      Gargantext.API.Count
+      Gargantext.API.EKG
+      Gargantext.API.Flow
+      Gargantext.API.GraphQL
+      Gargantext.API.GraphQL.Annuaire
+      Gargantext.API.GraphQL.AsyncTask
+      Gargantext.API.GraphQL.IMT
+      Gargantext.API.GraphQL.Node
+      Gargantext.API.GraphQL.Team
+      Gargantext.API.GraphQL.TreeFirstLevel
+      Gargantext.API.GraphQL.User
+      Gargantext.API.GraphQL.UserInfo
+      Gargantext.API.GraphQL.Utils
+      Gargantext.API.Job
+      Gargantext.API.Metrics
+      Gargantext.API.Ngrams.List
+      Gargantext.API.Ngrams.List.Types
+      Gargantext.API.Ngrams.NgramsTree
+      Gargantext.API.Node.Contact
+      Gargantext.API.Node.Corpus.Annuaire
+      Gargantext.API.Node.Corpus.Export
+      Gargantext.API.Node.Corpus.Export.Types
+      Gargantext.API.Node.Corpus.New
+      Gargantext.API.Node.Corpus.New.File
+      Gargantext.API.Node.Corpus.New.Types
+      Gargantext.API.Node.Corpus.Searx
+      Gargantext.API.Node.Corpus.Types
+      Gargantext.API.Node.Document.Export
+      Gargantext.API.Node.Document.Export.Types
+      Gargantext.API.Node.DocumentsFromWriteNodes
+      Gargantext.API.Node.DocumentUpload
+      Gargantext.API.Node.FrameCalcUpload
+      Gargantext.API.Node.Get
+      Gargantext.API.Node.New
+      Gargantext.API.Node.Types
+      Gargantext.API.Node.Update
+      Gargantext.API.Public
+      Gargantext.API.Routes
+      Gargantext.API.Search
+      Gargantext.API.Server
+      Gargantext.API.Swagger
+      Gargantext.API.Table
+      Gargantext.API.ThrowAll
+      Gargantext.API.Types
+      Gargantext.Core.Ext.IMT
+      Gargantext.Core.Ext.IMTUser
+      Gargantext.Core.Flow.Ngrams
+      Gargantext.Core.Flow.Types
+      Gargantext.Core.Mail
+      Gargantext.Core.Mail.Types
+      Gargantext.Core.Methods.Graph.BAC.Proxemy
+      Gargantext.Core.Methods.Graph.MaxClique
+      Gargantext.Core.Methods.Matrix.Accelerate.Utils
+      Gargantext.Core.Methods.Similarities.Accelerate.Conditional
+      Gargantext.Core.Methods.Similarities.Accelerate.Distributional
+      Gargantext.Core.Methods.Similarities.Accelerate.SpeGen
+      Gargantext.Core.Methods.Similarities.Conditional
+      Gargantext.Core.Methods.Similarities.Distributional
+      Gargantext.Core.NodeStoryFile
+      Gargantext.Core.Statistics
+      Gargantext.Core.Text.Convert
+      Gargantext.Core.Text.Corpus.API.Arxiv
+      Gargantext.Core.Text.Corpus.API.Hal
+      Gargantext.Core.Text.Corpus.API.Isidore
+      Gargantext.Core.Text.Corpus.API.Istex
+      Gargantext.Core.Text.Corpus.API.Pubmed
+      Gargantext.Core.Text.Corpus.Parsers.Date
+      Gargantext.Core.Text.Corpus.Parsers.Date.Attoparsec
+      Gargantext.Core.Text.Corpus.Parsers.FrameWrite
+      Gargantext.Core.Text.Corpus.Parsers.GrandDebat
+      Gargantext.Core.Text.Corpus.Parsers.Isidore
+      Gargantext.Core.Text.Corpus.Parsers.Json2Csv
+      Gargantext.Core.Text.Corpus.Parsers.RIS
+      Gargantext.Core.Text.Corpus.Parsers.RIS.Presse
+      Gargantext.Core.Text.Corpus.Parsers.Wikidata
+      Gargantext.Core.Text.Corpus.Parsers.Wikidata.Crawler
+      Gargantext.Core.Text.Corpus.Parsers.Wikimedia
+      Gargantext.Core.Text.Corpus.Parsers.WOS
+      Gargantext.Core.Text.Learn
+      Gargantext.Core.Text.List
+      Gargantext.Core.Text.List.Group
+      Gargantext.Core.Text.List.Group.Prelude
+      Gargantext.Core.Text.List.Group.WithScores
+      Gargantext.Core.Text.List.Group.WithStem
+      Gargantext.Core.Text.List.Learn
+      Gargantext.Core.Text.List.Merge
+      Gargantext.Core.Text.List.Social
+      Gargantext.Core.Text.List.Social.Find
+      Gargantext.Core.Text.List.Social.History
+      Gargantext.Core.Text.List.Social.Patch
+      Gargantext.Core.Text.List.Social.Prelude
+      Gargantext.Core.Text.Metrics.FrequentItemSet
+      Gargantext.Core.Text.Metrics.SpeGen.IncExc
+      Gargantext.Core.Text.Metrics.Utils
+      Gargantext.Core.Text.Samples.CH
+      Gargantext.Core.Text.Samples.DE
+      Gargantext.Core.Text.Samples.EN
+      Gargantext.Core.Text.Samples.FR
+      Gargantext.Core.Text.Samples.SP
+      Gargantext.Core.Text.Terms.Eleve
+      Gargantext.Core.Text.Terms.Mono.Stem
+      Gargantext.Core.Text.Terms.Mono.Stem.En
+      Gargantext.Core.Text.Terms.Mono.Token
+      Gargantext.Core.Text.Terms.Mono.Token.En
+      Gargantext.Core.Text.Terms.Multi
+      Gargantext.Core.Text.Terms.Multi.Group
+      Gargantext.Core.Text.Terms.Multi.PosTagging
+      Gargantext.Core.Text.Terms.Multi.PosTagging.Types
+      Gargantext.Core.Types.Phylo
+      Gargantext.Core.Utils
+      Gargantext.Core.Utils.DateUtils
+      Gargantext.Core.Viz
+      Gargantext.Core.Viz.Chart
+      Gargantext.Core.Viz.Graph.API
+      Gargantext.Core.Viz.Graph.Bridgeness
+      Gargantext.Core.Viz.Graph.FGL
+      Gargantext.Core.Viz.Graph.GEXF
+      Gargantext.Core.Viz.Graph.Legend
+      Gargantext.Core.Viz.Graph.Tools.Infomap
+      Gargantext.Core.Viz.Graph.Types
+      Gargantext.Core.Viz.Graph.Utils
+      Gargantext.Core.Viz.LegacyPhylo
+      Gargantext.Core.Viz.Phylo.Example
+      Gargantext.Core.Viz.Phylo.Legacy.LegacyMain
+      Gargantext.Core.Viz.Phylo.TemporalMatching
+      Gargantext.Data.HashMap.Strict.Utils
+      Gargantext.Database
+      Gargantext.Database.Action.Delete
+      Gargantext.Database.Action.Flow.Annuaire
+      Gargantext.Database.Action.Flow.List
+      Gargantext.Database.Action.Flow.Pairing
+      Gargantext.Database.Action.Flow.Utils
+      Gargantext.Database.Action.Index
+      Gargantext.Database.Action.Learn
+      Gargantext.Database.Action.Mail
+      Gargantext.Database.Action.Metrics
+      Gargantext.Database.Action.Metrics.Lists
+      Gargantext.Database.Action.Metrics.NgramsByContext
+      Gargantext.Database.Action.Metrics.TFICF
+      Gargantext.Database.Action.Node
+      Gargantext.Database.Action.Search
+      Gargantext.Database.Action.Share
+      Gargantext.Database.Action.TSQuery
+      Gargantext.Database.Action.User
+      Gargantext.Database.Admin.Access
+      Gargantext.Database.Admin.Bashql
+      Gargantext.Database.Admin.Trigger.ContextNodeNgrams
+      Gargantext.Database.Admin.Trigger.Contexts
+      Gargantext.Database.Admin.Trigger.NodesContexts
+      Gargantext.Database.Admin.Types.Hyperdata.Any
+      Gargantext.Database.Admin.Types.Hyperdata.Contact
+      Gargantext.Database.Admin.Types.Hyperdata.Corpus
+      Gargantext.Database.Admin.Types.Hyperdata.CorpusField
+      Gargantext.Database.Admin.Types.Hyperdata.Dashboard
+      Gargantext.Database.Admin.Types.Hyperdata.Default
+      Gargantext.Database.Admin.Types.Hyperdata.Document
+      Gargantext.Database.Admin.Types.Hyperdata.File
+      Gargantext.Database.Admin.Types.Hyperdata.Folder
+      Gargantext.Database.Admin.Types.Hyperdata.Frame
+      Gargantext.Database.Admin.Types.Hyperdata.List
+      Gargantext.Database.Admin.Types.Hyperdata.Model
+      Gargantext.Database.Admin.Types.Hyperdata.Phylo
+      Gargantext.Database.Admin.Types.Hyperdata.Prelude
+      Gargantext.Database.Admin.Types.Hyperdata.Texts
+      Gargantext.Database.Admin.Types.Hyperdata.User
+      Gargantext.Database.Admin.Types.Metrics
+      Gargantext.Database.GargDB
+      Gargantext.Database.Query
+      Gargantext.Database.Query.Facet
+      Gargantext.Database.Query.Filter
+      Gargantext.Database.Query.Join
+      Gargantext.Database.Query.Prelude
+      Gargantext.Database.Query.Table.Context
+      Gargantext.Database.Query.Table.ContextNodeNgrams
+      Gargantext.Database.Query.Table.ContextNodeNgrams2
+      Gargantext.Database.Query.Table.Ngrams
+      Gargantext.Database.Query.Table.Node.Children
+      Gargantext.Database.Query.Table.Node.Contact
+      Gargantext.Database.Query.Table.Node.Document.Add
+      Gargantext.Database.Query.Table.Node.Document.Insert
+      Gargantext.Database.Query.Table.Node.Error
+      Gargantext.Database.Query.Table.Node.Select
+      Gargantext.Database.Query.Table.Node.Update
+      Gargantext.Database.Query.Table.Node.User
+      Gargantext.Database.Query.Table.Node_NodeNgramsNodeNgrams
+      Gargantext.Database.Query.Table.NodeContext
+      Gargantext.Database.Query.Table.NodeContext_NodeContext
+      Gargantext.Database.Query.Table.NodeNgrams
+      Gargantext.Database.Query.Table.NodeNode
+      Gargantext.Database.Query.Table.NodeNodeNgrams
+      Gargantext.Database.Query.Table.NodesNgramsRepo
+      Gargantext.Database.Query.Tree
+      Gargantext.Database.Query.Tree.Error
+      Gargantext.Database.Query.Tree.Root
+      Gargantext.Database.Schema.Context
+      Gargantext.Database.Schema.ContextNodeNgrams
+      Gargantext.Database.Schema.ContextNodeNgrams2
+      Gargantext.Database.Schema.NgramsPostag
+      Gargantext.Database.Schema.Node
+      Gargantext.Database.Schema.Node_NodeNgramsNodeNgrams
+      Gargantext.Database.Schema.NodeContext
+      Gargantext.Database.Schema.NodeContext_NodeContext
+      Gargantext.Database.Schema.NodeNgrams
+      Gargantext.Database.Schema.NodeNode
+      Gargantext.Database.Schema.NodeNodeNgrams
+      Gargantext.Database.Schema.NodeNodeNgrams2
+      Gargantext.Database.Schema.NodesNgramsRepo
+      Gargantext.Database.Schema.Prelude
+      Gargantext.Database.Schema.User
+      Gargantext.Database.Types
+      Gargantext.Utils.Aeson
+      Gargantext.Utils.JohnSnowNLP
+      Gargantext.Utils.Servant
+      Gargantext.Utils.UTCTime
+      Paths_gargantext
+  hs-source-dirs:
+      src
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wmissing-signatures -Wunused-binds -Wunused-imports -Werror -freduction-depth=300
+  build-depends:
+      HSvm
+    , KMP
+    , MissingH
+    , MonadRandom
+    , QuickCheck
+    , Unique
+    , accelerate
+    , accelerate-arithmetic
+    , accelerate-llvm-native
+    , accelerate-utility
+    , aeson
+    , aeson-lens
+    , aeson-pretty
+    , array
+    , async
+    , attoparsec
+    , auto-update
+    , base >=4.7 && <5
+    , base16-bytestring
+    , base64-bytestring
+    , blaze-html
+    , blaze-markup
+    , blaze-svg
+    , bytestring
+    , case-insensitive
+    , cassava
+    , cborg
+    , cereal
+    , conduit
+    , conduit-extra
+    , containers
+    , contravariant
+    , crawlerArxiv
+    , crawlerHAL
+    , crawlerISTEX
+    , crawlerIsidore
+    , crawlerPubMed
+    , cryptohash
+    , data-time-segment
+    , deepseq
+    , directory
+    , duckling
+    , ekg-core
+    , ekg-json
+    , exceptions
+    , extra
+    , fast-logger
+    , fclabels
+    , fgl
+    , filelock
+    , filepath
+    , formatting
+    , full-text-search
+    , fullstop
+    , gargantext-graph >=0.1.0.0
+    , gargantext-prelude
+    , graphviz
+    , hashable
+    , haskell-igraph
+    , hlcm
+    , hsinfomap
+    , hsparql
+    , hstatistics
+    , http-api-data
+    , http-client
+    , http-client-tls
+    , http-conduit
+    , http-media
+    , http-types
+    , hxt
+    , ihaskell
+    , ini
+    , insert-ordered-containers
+    , jose
+    , json-stream
+    , lens
+    , lifted-base
+    , listsafe
+    , located-base
+    , logging-effect
+    , matrix
+    , monad-control
+    , monad-logger
+    , monad-logger-aeson
+    , morpheus-graphql
+    , morpheus-graphql-app
+    , morpheus-graphql-core
+    , morpheus-graphql-subscriptions
+    , mtl
+    , natural-transformation
+    , opaleye
+    , pandoc
+    , parallel
+    , parsec
+    , patches-class
+    , patches-map
+    , path
+    , path-io
+    , postgresql-simple
+    , pretty-simple
+    , probability
+    , process
+    , product-profunctors
+    , profunctors
+    , protolude
+    , pureMD5
+    , quickcheck-instances
+    , rake
+    , random
+    , rdf4h
+    , regex-compat
+    , regex-tdfa
+    , resource-pool
+    , resourcet
+    , safe
+    , scientific
+    , semigroups
+    , serialise
+    , servant
+    , servant-auth
+    , servant-auth-client
+    , servant-auth-server >=0.4.4.0
+    , servant-auth-swagger
+    , servant-blaze
+    , servant-cassava
+    , servant-client
+    , servant-ekg
+    , servant-flatten
+    , servant-job
+    , servant-mock
+    , servant-multipart
+    , servant-server
+    , servant-static-th
+    , servant-swagger
+    , servant-swagger-ui
+    , servant-xml
+    , simple-reflect
+    , singletons
+    , split
+    , stemmer
+    , swagger2
+    , taggy-lens
+    , tagsoup
+    , template-haskell
+    , temporary
+    , text
+    , text-conversions
+    , text-metrics
+    , time
+    , time-locale-compat
+    , timezone-series
+    , transformers
+    , transformers-base
+    , tuple
+    , unordered-containers
+    , uri-encode
+    , utf8-string
+    , uuid
+    , validity
+    , vector
+    , wai
+    , wai-app-static
+    , wai-cors
+    , wai-extra
+    , wai-websockets
+    , warp
+    , websockets
+    , wikiparsec
+    , wreq
+    , xml-conduit
+    , xml-types
+    , xmlbf
+    , yaml
+    , zip
+    , zlib
+  default-language: Haskell2010
+
+executable gargantext-admin
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-admin
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      base
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , text
+  default-language: Haskell2010
+
+executable gargantext-cbor2json
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-cbor2json
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      aeson
+    , base
+    , bytestring
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , serialise
+    , text
+  default-language: Haskell2010
+
+executable gargantext-cli
+  main-is: Main.hs
+  other-modules:
+      CleanCsvCorpus
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-cli
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      aeson
+    , async
+    , base
+    , bytestring
+    , cassava
+    , containers
+    , extra
+    , full-text-search
+    , gargantext
+    , gargantext-prelude
+    , ini
+    , optparse-generic
+    , split
+    , text
+    , unordered-containers
+    , vector
+  default-language: Haskell2010
+
+executable gargantext-client
+  main-is: Main.hs
+  other-modules:
+      Auth
+      Core
+      Options
+      Script
+      Tracking
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-client
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      base
+    , ekg-json
+    , exceptions
+    , extra
+    , gargantext
+    , http-client
+    , optparse-generic
+    , servant
+    , servant-auth-client
+    , servant-client
+    , text
+  default-language: Haskell2010
+
+executable gargantext-import
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-import
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      base
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , servant-server
+    , text
+  default-language: Haskell2010
+
+executable gargantext-init
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-init
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      base
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , text
+  default-language: Haskell2010
+
+executable gargantext-invitations
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-invitations
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      base
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , text
+  default-language: Haskell2010
+
+executable gargantext-phylo
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-phylo
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      aeson
+    , async
+    , base
+    , bytestring
+    , cassava
+    , containers
+    , cryptohash
+    , directory
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , ini
+    , optparse-generic
+    , parallel
+    , split
+    , text
+    , time
+    , unordered-containers
+    , vector
+  default-language: Haskell2010
+
+executable gargantext-server
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-server
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -O2 -Wcompat -Wmissing-signatures -rtsopts -threaded -with-rtsopts=-N -with-rtsopts=-T -fprof-auto
+  build-depends:
+      base
+    , cassava
+    , containers
+    , extra
+    , full-text-search
+    , gargantext
+    , gargantext-prelude
+    , ini
+    , optparse-generic
+    , text
+    , unordered-containers
+    , vector
+  default-language: Haskell2010
+
+executable gargantext-upgrade
+  main-is: Main.hs
+  other-modules:
+      Paths_gargantext
+  hs-source-dirs:
+      bin/gargantext-upgrade
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 -Wmissing-signatures
+  build-depends:
+      base
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , postgresql-simple
+    , text
+  default-language: Haskell2010
+
+test-suite garg-test
+  type: exitcode-stdio-1.0
+  main-is: Main.hs
+  other-modules:
+      Core.Text
+      Core.Text.Examples
+      Core.Text.Flow
+      Graph.Clustering
+      Graph.Distance
+      Ngrams.Lang
+      Ngrams.Lang.En
+      Ngrams.Lang.Fr
+      Ngrams.Lang.Occurrences
+      Ngrams.Metrics
+      Parsers.Date
+      Parsers.Types
+      Parsers.WOS
+      Utils.Crypto
+      Paths_gargantext
+  hs-source-dirs:
+      src-test
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NamedFieldPuns
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+      RecordWildCards
+      DataKinds
+      DeriveGeneric
+      FlexibleContexts
+      FlexibleInstances
+      GeneralizedNewtypeDeriving
+      MultiParamTypeClasses
+      NoImplicitPrelude
+      OverloadedStrings
+      RankNTypes
+  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
+  build-depends:
+      QuickCheck
+    , base
+    , duckling
+    , extra
+    , gargantext
+    , gargantext-prelude
+    , hspec
+    , parsec
+    , quickcheck-instances
+    , text
+    , time
+    , unordered-containers
+  default-language: Haskell2010
diff --git a/src-test/Graph/Clustering.hs b/src-test/Graph/Clustering.hs
index 39e45f3852657663de7885a3301dea95cdfb1551..6c1adee148235ca271a1ebc5a7086518ef0348f5 100644
--- a/src-test/Graph/Clustering.hs
+++ b/src-test/Graph/Clustering.hs
@@ -15,7 +15,7 @@ module Graph.Clustering where
 
 import Gargantext.API.Ngrams.Types (NgramsTerm(..))
 import Gargantext.Core.Viz.Graph (Graph(..), Strength(..))
-import Gargantext.Core.Viz.Graph.Tools (doDistanceMap)
+import Gargantext.Core.Viz.Graph.Tools (doSimilarityMap)
 import Gargantext.Core.Viz.Graph.Tools.IGraph (spinglass)
 import Gargantext.Prelude
 import Test.Hspec
@@ -24,7 +24,7 @@ import qualified Data.HashMap.Strict as HashMap
 import qualified Data.List as List
 import Gargantext.Core.Viz.Graph.Tools (PartitionMethod(..))
 import Gargantext.Core.Viz.Graph.Tools.IGraph (spinglass)
-import Gargantext.Core.Methods.Distances (Distance(..))
+import Gargantext.Core.Methods.Similarities (Similarity(..))
 
 myCooc :: HashMap (NgramsTerm, NgramsTerm) Int
 myCooc = HashMap.fromList [((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "sqrt"}),12),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "data"}),8),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "transverse momentum"}),6),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "gev au"}),7),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "rhic"}),13),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "sqrt"}),27),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "s"}),8),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "p"}),27),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "s"}),10),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),5),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "gev"}),9),((NgramsTerm {unNgramsTerm = "phi"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "hadrons"}),4),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "gev"}),9),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "gev/c"}),3),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "nn"}),80),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "particle"}),3),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "p collisions"}),6),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "sqrt"}),88),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "gev/c"}),5),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "gev au"}),5),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "p_t"}),5),((NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "s_nn"}),12),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "p"}),21),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "sqrt"}),6),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "gev"}),12),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),8),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "rhic"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "eta"}),4),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "sqrt"}),9),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "particle"}),8),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "s_nn"}),12),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "particle"}),4),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "phenix experiment"}),4),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "nn"}),65),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "number"}),3),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "s_nn"}),11),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "not found"}),7),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "number"}),4),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "pi ^"}),7),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "spectra"}),3),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "s"}),9),((NgramsTerm {unNgramsTerm = "second part"},NgramsTerm {unNgramsTerm = "thesis"}),4),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "pi ^"}),5),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "p collisions"}),3),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "s_nn"}),13),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "s_nn"}),5),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "p collisions"}),3),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "number"}),4),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "s"}),8),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "p"}),6),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "rhic"}),4),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "pi ^"}),13),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "p"}),3),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "pi ^"}),3),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "nn"}),10),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),7),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "p_t"}),3),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "yields"}),7),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "phenix experiment"}),9),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "rhic"}),7),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "gev/c"}),6),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "pi ^"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "central collisions"}),3),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "not found"}),7),((NgramsTerm {unNgramsTerm = "s"},NgramsTerm {unNgramsTerm = "s_nn"}),7),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "phenix experiment"}),5),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "energy"}),3),((NgramsTerm {unNgramsTerm = "ratio"},NgramsTerm {unNgramsTerm = "s"}),4),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "nn"}),6),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "p"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "number"}),11),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "spectra"}),5),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "s_nn"}),3),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),4),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "nn"}),6),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "phenix experiment"}),8),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "not found"}),3),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "p collisions"}),3),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "not found"}),15),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "phenix experiment"}),9),((NgramsTerm {unNgramsTerm = "s_nn"},NgramsTerm {unNgramsTerm = "yields"}),3),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "s"}),14),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "s"}),18),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "phi"}),4),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "yields"}),3),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "rhic"}),5),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "gev au"}),3),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "phi"}),3),((NgramsTerm {unNgramsTerm = "phi"},NgramsTerm {unNgramsTerm = "s"}),9),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "midrapidity"}),4),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "function"}),6),((NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"},NgramsTerm {unNgramsTerm = "spectra"}),3),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "p"}),5),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "p_t"}),9),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "p_t"}),8),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "eta"}),3),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "spectra"}),6),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "ratio"}),5),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "p collisions"}),6),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "measurements"}),23),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),5),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "phi"}),10),((NgramsTerm {unNgramsTerm = "ratio"},NgramsTerm {unNgramsTerm = "sqrt"}),6),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "sqrt"}),25),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "sqrt"}),21),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "particle"}),5),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "rhic"}),10),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "particle"}),4),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "phenix experiment"}),3),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "hadrons"}),8),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "s"},NgramsTerm {unNgramsTerm = "yields"}),5),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "function"}),3),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "s"}),3),((NgramsTerm {unNgramsTerm = "phi"},NgramsTerm {unNgramsTerm = "sqrt"}),9),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "hadrons"}),3),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),3),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "spectra"}),3),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "pi ^"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "phi"}),7),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "p"}),4),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "measurements"}),14),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "ratio"}),7),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "suppression"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "s_nn"}),17),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "yields"}),5),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "yields"}),3),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "transverse momentum"}),5),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "d"}),3),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "gev"}),69),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "centralities"}),20),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "centrality dependence"}),8),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "rhic"}),6),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "nn"}),99),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "pi ^"}),22),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "nn"}),7),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "p"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "phi"}),6),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),18),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "midrapidity"}),13),((NgramsTerm {unNgramsTerm = "eu"},NgramsTerm {unNgramsTerm = "ph"}),5),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "suppression"}),5),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "gev/c"}),30),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "pi ^"}),4),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "s_nn"}),3),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "measurements"}),58),((NgramsTerm {unNgramsTerm = "yields"},NgramsTerm {unNgramsTerm = "yields"}),15),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "measurements"}),6),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "suppression"}),3),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "p collisions"}),3),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "p"}),50),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "data"}),44),((NgramsTerm {unNgramsTerm = "sqrt"},NgramsTerm {unNgramsTerm = "sqrt"}),118),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "particle"}),12),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "p"}),5),((NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),13),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "centrality dependence"}),18),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "gev au"}),14),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "s_nn"}),5),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "function"}),31),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "p collisions"}),20),((NgramsTerm {unNgramsTerm = "eu"},NgramsTerm {unNgramsTerm = "eu"}),9),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "central au"}),14),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "sqrt"}),98),((NgramsTerm {unNgramsTerm = "spectra"},NgramsTerm {unNgramsTerm = "spectra"}),16),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),3),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "nn"}),13),((NgramsTerm {unNgramsTerm = "particle"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "gev"}),125),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "d"}),32),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "nn"}),10),((NgramsTerm {unNgramsTerm = "s_nn"},NgramsTerm {unNgramsTerm = "s_nn"}),20),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),9),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "ratio"}),6),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "centralities"}),28),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "rhic"}),9),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "au"}),101),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "central collisions"}),9),((NgramsTerm {unNgramsTerm = "thesis"},NgramsTerm {unNgramsTerm = "thesis"}),13),((NgramsTerm {unNgramsTerm = "ph"},NgramsTerm {unNgramsTerm = "ph"}),12),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "eta"}),13),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "particle"}),8),((NgramsTerm {unNgramsTerm = "case study"},NgramsTerm {unNgramsTerm = "case study"}),24),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "rhic"}),66),((NgramsTerm {unNgramsTerm = "particle"},NgramsTerm {unNgramsTerm = "particle"}),27),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "number"}),32),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "au-au collisions"}),14),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "p"}),18),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),5),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "eta"}),3),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),4),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "sqrt"}),76),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "lambda"}),10),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "p"}),3),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "energy"}),25),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "yields"}),4),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "elliptic flow"}),14),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "gev"}),73),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "p"}),5),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "spectra"}),9),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "function"}),12),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "pi ^"}),5),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "number"}),4),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "p_t"}),4),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "s_nn"}),7),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "sqrt"}),11),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),3),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "suppression"}),3),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "measurements"}),3),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "rhic"}),15),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "rhic"}),6),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "rhic"}),8),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "sqrt"}),11),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "rhic"}),28),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "phenix experiment"}),13),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),7),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "s"}),16),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "pi ^"}),9),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "not found"}),6),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "s"}),9),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "central au"}),8),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),6),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "p"}),16),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "midrapidity"}),3),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "s"}),23),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "p_t"}),12),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "measurements"}),6),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "energy"}),7),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "p_t"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "pi ^"}),8),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "s"}),10),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "midrapidity"}),8),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "sqrt"}),8),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),5),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "s_nn"}),3),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "energy"}),3),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "p_t"}),5),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "measurements"}),3),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "function"}),3),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "yields"}),5),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "not found"}),3),((NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"},NgramsTerm {unNgramsTerm = "yields"}),3),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "transverse momentum"}),5),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "ratio"}),3),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),5),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),7),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "s"}),13),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "central au"}),14),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "nn"}),3),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "ratio"}),4),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "midrapidity"}),7),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),6),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "spectra"}),6),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "s_nn"}),8),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "function"}),6),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "sqrt"}),5),((NgramsTerm {unNgramsTerm = "s"},NgramsTerm {unNgramsTerm = "transverse momentum"}),9),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "yields"}),5),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "phenix experiment"}),3),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "phenix experiment"}),6),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "ratio"}),4),((NgramsTerm {unNgramsTerm = "s"},NgramsTerm {unNgramsTerm = "spectra"}),8),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "phi"}),9),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "phenix experiment"}),3),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "suppression"}),6),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "s_nn"}),5),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "s"}),6),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "s_nn"}),5),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "p collisions"}),4),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "s"}),8),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),6),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "hadrons"}),3),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "phi"}),3),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "eta"}),4),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "not found"}),5),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "phenix experiment"}),5),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "transverse momentum"}),5),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "measurements"}),4),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "spectra"}),3),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "measurements"}),7),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "data"}),5),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "ratio"}),3),((NgramsTerm {unNgramsTerm = "s_nn"},NgramsTerm {unNgramsTerm = "transverse momentum"}),4),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "suppression"}),6),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "rhic"}),28),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "phi"}),3),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "gev/c"}),9),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "measurements"}),3),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "nn"}),15),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "p"}),20),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "nn"}),13),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "elliptic flow"}),3),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "yields"}),4),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "ratio"}),6),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "gev au"}),4),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "sqrt"}),31),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "suppression"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "gev/c"}),15),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "nn"}),8),((NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"},NgramsTerm {unNgramsTerm = "s_nn"}),4),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "phenix experiment"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "transverse momentum"}),10),((NgramsTerm {unNgramsTerm = "particle"},NgramsTerm {unNgramsTerm = "rhic"}),5),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "rhic"}),23),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "s_nn"}),6),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "p"}),16),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "pi ^"}),5),((NgramsTerm {unNgramsTerm = "spectra"},NgramsTerm {unNgramsTerm = "yields"}),3),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "pi ^"}),5),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "p collisions"}),7),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "particle"}),3),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "p collisions"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "hadrons"}),10),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "p"}),4),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "gev/c"}),24),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "measurements"}),4),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "p_t"}),6),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "elliptic flow"}),10),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "not found"}),3),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "s"}),8),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "s"}),7),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "nn"}),11),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "s_nn"}),9),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "data"}),4),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "rhic"}),27),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "s_nn"}),4),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "pi ^"}),8),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "gev"}),11),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "sqrt"}),22),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "not found"}),61),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "hadrons"}),3),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),6),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "number"}),12),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "sqrt"}),19),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "phenix experiment"}),20),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "transverse momentum"}),4),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "p_t"}),16),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "s"}),64),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "nn"}),6),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "sqrt"}),62),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "not found"}),56),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "yields"}),3),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "rhic"}),5),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "number"}),10),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "rhic"}),8),((NgramsTerm {unNgramsTerm = "s"},NgramsTerm {unNgramsTerm = "sqrt"}),100),((NgramsTerm {unNgramsTerm = "phi"},NgramsTerm {unNgramsTerm = "yields"}),3),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "centralities"}),3),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "particle"}),4),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "measurements"}),3),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "pi ^"}),6),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "p_t"}),10),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "s"}),85),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "phenix experiment"}),16),((NgramsTerm {unNgramsTerm = "particle"},NgramsTerm {unNgramsTerm = "s"}),10),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "particle"}),3),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "p"}),6),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "sqrt"}),15),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "nn"}),6),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "spectra"}),4),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "gev"}),6),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "spectra"}),6),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "rhic"}),4),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "central collisions"}),5),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "phenix experiment"}),18),((NgramsTerm {unNgramsTerm = "s"},NgramsTerm {unNgramsTerm = "suppression"}),6),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "not found"}),55),((NgramsTerm {unNgramsTerm = "account"},NgramsTerm {unNgramsTerm = "number"}),3),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "yields"}),12),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "s"}),66),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "gev/c"}),5),((NgramsTerm {unNgramsTerm = "sqrt"},NgramsTerm {unNgramsTerm = "yields"}),9),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "nn"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "p_t"}),11),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),4),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "rhic"}),8),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "sqrt"}),5),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "suppression"}),3),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),6),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "p collisions"}),3),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "pi ^"}),4),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "suppression"}),5),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "number"}),7),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "p"}),5),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "yields"}),8),((NgramsTerm {unNgramsTerm = "midrapidity"},NgramsTerm {unNgramsTerm = "p"}),6),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "transverse momentum"}),4),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "gev"}),22),((NgramsTerm {unNgramsTerm = "sqrt"},NgramsTerm {unNgramsTerm = "suppression"}),6),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "transverse momentum"}),9),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "nn"}),10),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "measurements"}),3),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "pi ^"}),4),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),3),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),5),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "d"}),17),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "measurements"}),5),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "suppression"}),5),((NgramsTerm {unNgramsTerm = "particle"},NgramsTerm {unNgramsTerm = "suppression"}),3),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "ratio"}),3),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "spectra"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "centrality dependence"}),12),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "particle"}),11),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "sqrt"}),77),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "transverse momentum"}),4),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "p collisions"}),18),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "s_nn"}),8),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "s_nn"}),11),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "au collisions"}),76),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "suppression"}),7),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "p collisions"}),8),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "gev"}),12),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "gev/c"}),4),((NgramsTerm {unNgramsTerm = "stability"},NgramsTerm {unNgramsTerm = "stability"}),8),((NgramsTerm {unNgramsTerm = "second part"},NgramsTerm {unNgramsTerm = "second part"}),8),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "rhic"}),8),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "nn"}),9),((NgramsTerm {unNgramsTerm = "aspects"},NgramsTerm {unNgramsTerm = "aspects"}),9),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "s"}),9),((NgramsTerm {unNgramsTerm = "s_nn"},NgramsTerm {unNgramsTerm = "sqrt"}),20),((NgramsTerm {unNgramsTerm = "suppression"},NgramsTerm {unNgramsTerm = "suppression"}),16),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "s"}),64),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "not found"}),543),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "gev"}),14),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "hadrons"}),19),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "centrality dependence"}),12),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "sqrt"}),13),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),3),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "s"}),10),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "pi ^"}),4),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "phi"}),4),((NgramsTerm {unNgramsTerm = "particle"},NgramsTerm {unNgramsTerm = "s_nn"}),3),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "rhic"}),18),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "centralities"}),19),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "s"}),11),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "s_nn"}),19),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "suppression"}),9),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "nn"}),13),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "phenix experiment"}),8),((NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"},NgramsTerm {unNgramsTerm = "rhic"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "au collisions"}),102),((NgramsTerm {unNgramsTerm = "transverse momentum"},NgramsTerm {unNgramsTerm = "transverse momentum"}),15),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),3),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "gev/c"}),3),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "ph"}),3),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "ratio"}),4),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "phenix experiment"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "measurements"}),15),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "ratio"}),5),((NgramsTerm {unNgramsTerm = "phenix experiment"},NgramsTerm {unNgramsTerm = "phenix experiment"}),25),((NgramsTerm {unNgramsTerm = "phi"},NgramsTerm {unNgramsTerm = "phi"}),12),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "eu"}),4),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),5),((NgramsTerm {unNgramsTerm = "centrality dependence"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "ratio"},NgramsTerm {unNgramsTerm = "ratio"}),11),((NgramsTerm {unNgramsTerm = "account"},NgramsTerm {unNgramsTerm = "account"}),17),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "rhic"}),3),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "p"}),12),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "rhic"}),7),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "d"}),15),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "s_nn"}),15),((NgramsTerm {unNgramsTerm = "s"},NgramsTerm {unNgramsTerm = "s"}),118),((NgramsTerm {unNgramsTerm = "p_t"},NgramsTerm {unNgramsTerm = "p_t"}),17),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "transverse momentum"}),3),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "rhic"}),18),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "p_t"}),9),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "sqrt"}),14),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "s"}),10),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "s_nn"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "function"}),13),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "not found"}),63),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "s_nn"}),4),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "phi"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "lambda"}),7),((NgramsTerm {unNgramsTerm = "d"},NgramsTerm {unNgramsTerm = "pi ^"}),3),((NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"},NgramsTerm {unNgramsTerm = "s"}),6),((NgramsTerm {unNgramsTerm = "nuclear modification factors"},NgramsTerm {unNgramsTerm = "ratio"}),3),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "energy"}),7),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "p_t"}),6),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),4),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "nuclear modification factors"}),4),((NgramsTerm {unNgramsTerm = "spectra"},NgramsTerm {unNgramsTerm = "suppression"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),12),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "s"}),89),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "spectra"}),5),((NgramsTerm {unNgramsTerm = "lambda"},NgramsTerm {unNgramsTerm = "sqrt"}),7),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "phenix experiment"}),9),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "number"}),9),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "gev"}),10),((NgramsTerm {unNgramsTerm = "eta"},NgramsTerm {unNgramsTerm = "s"}),7),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "not found"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "midrapidity"}),7),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "phenix experiment"}),3),((NgramsTerm {unNgramsTerm = "data"},NgramsTerm {unNgramsTerm = "s"}),5),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "lambda"}),5),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "s"}),22),((NgramsTerm {unNgramsTerm = "au-au collisions"},NgramsTerm {unNgramsTerm = "not found"}),8),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "phenix experiment"}),13),((NgramsTerm {unNgramsTerm = "gev au"},NgramsTerm {unNgramsTerm = "s"}),8),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),15),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "energy"}),8),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "ratio"}),3),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "particle"}),6),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "function"}),13),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "particle"}),4),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "pi ^"}),8),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "yields"}),5),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "pi ^"}),5),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "spectra"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "mid-rapidity"}),13),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "lambda"}),5),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "gev"}),14),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "centralities"}),5),((NgramsTerm {unNgramsTerm = "rhic"},NgramsTerm {unNgramsTerm = "yields"}),4),((NgramsTerm {unNgramsTerm = "number"},NgramsTerm {unNgramsTerm = "p collisions"}),3),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "sqrt"}),12),((NgramsTerm {unNgramsTerm = "mid-rapidity"},NgramsTerm {unNgramsTerm = "phi"}),3),((NgramsTerm {unNgramsTerm = "spectra"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "pi ^"},NgramsTerm {unNgramsTerm = "suppression"}),3),((NgramsTerm {unNgramsTerm = "not found"},NgramsTerm {unNgramsTerm = "p collisions"}),6),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "sqrt"}),10),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "gev"}),9),((NgramsTerm {unNgramsTerm = "central collisions"},NgramsTerm {unNgramsTerm = "gev/c"}),4),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "number"}),3),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "spectra"}),9),((NgramsTerm {unNgramsTerm = "central au"},NgramsTerm {unNgramsTerm = "suppression"}),4),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "gev/c"}),18),((NgramsTerm {unNgramsTerm = "phi"},NgramsTerm {unNgramsTerm = "rhic"}),3),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "phenix experiment"}),9),((NgramsTerm {unNgramsTerm = "elliptic flow"},NgramsTerm {unNgramsTerm = "measurements"}),3),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "s"}),5),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "gev au"}),12),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "elliptic flow"}),10),((NgramsTerm {unNgramsTerm = "p"},NgramsTerm {unNgramsTerm = "suppression"}),5),((NgramsTerm {unNgramsTerm = "gev/c"},NgramsTerm {unNgramsTerm = "measurements"}),11),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "p collisions"}),11),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "eta"}),4),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "transverse momentum"}),14),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "hadrons"}),11),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "number"}),3),((NgramsTerm {unNgramsTerm = "energy"},NgramsTerm {unNgramsTerm = "s"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "data"}),6),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "relativistic heavy ion collider"}),7),((NgramsTerm {unNgramsTerm = "au collisions"},NgramsTerm {unNgramsTerm = "nn"}),67),((NgramsTerm {unNgramsTerm = "ratio"},NgramsTerm {unNgramsTerm = "rhic"}),4),((NgramsTerm {unNgramsTerm = "sqrt"},NgramsTerm {unNgramsTerm = "transverse momentum"}),13),((NgramsTerm {unNgramsTerm = "hadrons"},NgramsTerm {unNgramsTerm = "sqrt"}),11),((NgramsTerm {unNgramsTerm = "p collisions"},NgramsTerm {unNgramsTerm = "sqrt"}),16),((NgramsTerm {unNgramsTerm = "function"},NgramsTerm {unNgramsTerm = "p_t"}),6),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "p"}),10),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "p"}),14),((NgramsTerm {unNgramsTerm = "centralities"},NgramsTerm {unNgramsTerm = "rhic"}),6),((NgramsTerm {unNgramsTerm = "gev"},NgramsTerm {unNgramsTerm = "p collisions"}),15),((NgramsTerm {unNgramsTerm = "measurements"},NgramsTerm {unNgramsTerm = "rhic"}),15),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "transverse momentum"}),7),((NgramsTerm {unNgramsTerm = "au"},NgramsTerm {unNgramsTerm = "hadrons"}),8),((NgramsTerm {unNgramsTerm = "nn"},NgramsTerm {unNgramsTerm = "suppression"}),6)]
@@ -35,7 +35,7 @@ test :: IO ()
 test = hspec $ do
   describe "Cross" $ do
     let
-      (distanceMap,_,_) = doDistanceMap Conditional 0 Weak myCooc
+      (distanceMap,_,_) = doSimilarityMap Conditional 0 Weak myCooc
     it "Partition test" $ do
       partitions <- spinglass 1 distanceMap
       let
diff --git a/src/Gargantext/API/Ngrams/Tools.hs b/src/Gargantext/API/Ngrams/Tools.hs
index 145bc032adc75282f030e2066d1bbdc52c71dbbc..d7d11b8db217b45f53c5ae4941eab5045ce7ded9 100644
--- a/src/Gargantext/API/Ngrams/Tools.hs
+++ b/src/Gargantext/API/Ngrams/Tools.hs
@@ -195,7 +195,36 @@ getCoocByNgrams' f (Diagonal diag) m =
                                 listToCombi identity ks
               ]
 
-  where ks = HM.keys m
+  where 
+    ks = HM.keys m
+
+-- TODO k could be either k1 or k2 here
+getCoocByNgrams'' :: (Hashable k, Ord k, Ord contexts)
+                  => Diagonal
+                  -> (contextA -> Set contexts, contextB -> Set contexts)
+                  -> (HashMap k contextA, HashMap k contextB)
+                  -> HashMap (k, k) Int
+getCoocByNgrams'' (Diagonal diag) (f1,f2) (m1,m2) =
+  HM.fromList [( (t1,t2)
+               , maybe 0 Set.size $ Set.intersection
+                                 <$> (fmap f1 $ HM.lookup t1 m1)
+                                 <*> (fmap f2 $ HM.lookup t2 m2)
+               )
+              | (t1,t2) <- if diag
+                              then
+                                [ (x,y) | x <- ks1, y <- ks2, x <= y]
+                                   -- TODO if we keep a Data.Map here it might be
+                                   -- more efficient to enumerate all the y <= x.
+                              else
+                                [ (x,y) | x <- ks1, y <- ks2, x < y]
+                                -- TODO check optim
+                                -- listToCombi identity ks1
+              ]
+  where 
+    ks1 = HM.keys m1
+    ks2 = HM.keys m2
+
+
 
 ------------------------------------------
 
diff --git a/src/Gargantext/API/Node/Update.hs b/src/Gargantext/API/Node/Update.hs
index 4566183107c9349d3b2d0716e424f96652a7837f..3031c9be3b2e880aa34cc24568156392ce68c0fa 100644
--- a/src/Gargantext/API/Node/Update.hs
+++ b/src/Gargantext/API/Node/Update.hs
@@ -64,6 +64,8 @@ data UpdateNodeParams = UpdateNodeParamsList  { methodList  :: !Method      }
                       | UpdateNodeParamsGraph { methodGraphMetric        :: !GraphMetric
                                               , methodGraphClustering    :: !PartitionMethod
                                               , methodGraphEdgesStrength :: !Strength
+                                              , methodGraphNodeType1     :: !NgramsType
+                                              , methodGraphNodeType2     :: !NgramsType
                                               }
 
                       | UpdateNodeParamsTexts { methodTexts :: !Granularity }
@@ -104,7 +106,7 @@ updateNode :: (HasSettings env, FlowCmdM env err m)
     -> UpdateNodeParams
     -> (JobLog -> m ())
     -> m JobLog
-updateNode uId nId (UpdateNodeParamsGraph metric method strength) logStatus = do
+updateNode uId nId (UpdateNodeParamsGraph metric method strength nt1 nt2) logStatus = do
 
   logStatus JobLog { _scst_succeeded = Just 1
                    , _scst_failed    = Just 0
@@ -112,7 +114,7 @@ updateNode uId nId (UpdateNodeParamsGraph metric method strength) logStatus = do
                    , _scst_events    = Just []
                    }
   printDebug "Computing graph: " method
-  _ <- recomputeGraph uId nId method (Just metric) (Just strength) True
+  _ <- recomputeGraph uId nId method (Just metric) (Just strength) nt1 nt2 True
   printDebug "Graph computed: " method
 
   pure  JobLog { _scst_succeeded = Just 2
@@ -273,7 +275,7 @@ instance ToSchema  UpdateNodeParams
 instance Arbitrary UpdateNodeParams where
   arbitrary = do
     l <- UpdateNodeParamsList  <$> arbitrary
-    g <- UpdateNodeParamsGraph <$> arbitrary <*> arbitrary <*> arbitrary
+    g <- UpdateNodeParamsGraph <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
     t <- UpdateNodeParamsTexts <$> arbitrary
     b <- UpdateNodeParamsBoard <$> arbitrary
     elements [l,g,t,b]
diff --git a/src/Gargantext/Core/Viz/Graph.hs b/src/Gargantext/Core/Viz/Graph.hs
index aba000c57815bd028bd0c7bad9a873453751ebba..28dd22eae931db092e3ea02b1ad432f96dec49da 100644
--- a/src/Gargantext/Core/Viz/Graph.hs
+++ b/src/Gargantext/Core/Viz/Graph.hs
@@ -17,20 +17,20 @@ module Gargantext.Core.Viz.Graph
 
 import Data.ByteString.Lazy as DBL (readFile, writeFile)
 import Data.HashMap.Strict (HashMap, lookup)
+import Data.HashSet (HashSet)
 import Data.Text (pack)
 import GHC.IO (FilePath)
-
-import qualified Data.Aeson as DA
-import qualified Data.Text as T
-import qualified Text.Read as T
-
 import Gargantext.API.Ngrams.Types (NgramsTerm(..), NgramsRepoElement(..), mSetToList)
 import Gargantext.Core.Methods.Similarities (GraphMetric)
 import Gargantext.Core.Types (ListId)
 import Gargantext.Database.Admin.Types.Hyperdata.Prelude
 import Gargantext.Database.Admin.Types.Node (NodeId)
+import Gargantext.Database.Schema.Ngrams (NgramsType(..))
 import Gargantext.Prelude
-
+import qualified Data.Aeson   as DA
+import qualified Data.HashSet as HashSet
+import qualified Data.Text    as Text
+import qualified Text.Read    as Text
 
 data TypeNode = Terms | Unknown
   deriving (Show, Generic)
@@ -84,7 +84,34 @@ instance ToSchema LegendField where
   declareNamedSchema = genericDeclareNamedSchema (unPrefixSwagger "_lf_")
 
 makeLenses ''LegendField
+
+---------------------------------------------------------------
+data Partite = Partite { _partite_nodes :: HashSet NgramsTerm
+                       , _partite_type :: NgramsType
+                       }
+  deriving (Show, Generic)
+$(deriveJSON (unPrefix "_partite_") ''Partite)
+instance ToSchema Partite where
+  declareNamedSchema = genericDeclareNamedSchema (unPrefixSwagger "_partite_")
+makeLenses ''Partite
+
+
+data MultiPartite = MultiPartite { _multipartite_data1 :: Partite
+                                 , _multipartite_data2 :: Partite
+                                 }
+  deriving (Show, Generic)
+$(deriveJSON (unPrefix "_multipartite_") ''MultiPartite)
+instance ToSchema MultiPartite where
+  declareNamedSchema = genericDeclareNamedSchema (unPrefixSwagger "_multipartite_")
+makeLenses ''MultiPartite
+
+defaultMultipartite :: MultiPartite 
+defaultMultipartite = MultiPartite a a
+  where
+    a = Partite HashSet.empty NgramsTerms
+
 ---------------------------------------------------------------
+
 type Version = Int
 data ListForGraph =
   ListForGraph { _lfg_listId  :: ListId
@@ -117,6 +144,7 @@ data GraphMetadata =
                 , _gm_legend           :: [LegendField] -- legend of the Graph
                 , _gm_list             :: ListForGraph
                 , _gm_startForceAtlas  :: Bool
+                -- , _gm_nodesTypes       :: Maybe (NgramsType, NgramsType)
                 -- , _gm_version       :: Int
                 }
   deriving (Show, Generic)
@@ -248,7 +276,7 @@ graphV3ToGraph (GraphV3 links nodes) = Graph { _graph_nodes = map nodeV32node no
     linkV32edge n (EdgeV3 eo_s' eo_t' eo_w') =
       Edge { edge_source = cs $ show eo_s'
            , edge_target = cs $ show eo_t'
-           , edge_weight = (T.read $ T.unpack eo_w') :: Double
+           , edge_weight = (Text.read $ Text.unpack eo_w') :: Double
            , edge_confluence = 0.5
            , edge_id = cs $ show n }
 
@@ -258,7 +286,7 @@ graphV3ToGraphWithFiles g1 g2 = do
   -- GraphV3 <- IO Fichier
   graph <- DBL.readFile g1
   let newGraph = case DA.decode graph :: Maybe GraphV3 of
-        Nothing -> panic (T.pack "no graph")
+        Nothing -> panic (Text.pack "no graph")
         Just new -> new
 
   DBL.writeFile g2 (DA.encode $ graphV3ToGraph newGraph)
diff --git a/src/Gargantext/Core/Viz/Graph/API.hs b/src/Gargantext/Core/Viz/Graph/API.hs
index b58d9a00eaada56143bcf7b7824287eb0e522817..4f17285e1a341ac43d430352eb56ab427f5bf61c 100644
--- a/src/Gargantext/Core/Viz/Graph/API.hs
+++ b/src/Gargantext/Core/Viz/Graph/API.hs
@@ -107,7 +107,7 @@ getGraph _uId nId = do
         let defaultMetric          = Order1
         let defaultPartitionMethod = Spinglass
         let defaultEdgesStrength   = Strong
-        graph' <- computeGraph cId defaultPartitionMethod (withMetric defaultMetric) defaultEdgesStrength NgramsTerms repo
+        graph' <- computeGraph cId defaultPartitionMethod (withMetric defaultMetric) defaultEdgesStrength (NgramsTerms, NgramsTerms) repo
         mt     <- defaultGraphMetadata cId "Title" repo defaultMetric defaultEdgesStrength
         let
           graph'' = set graph_metadata (Just mt) graph'
@@ -127,9 +127,11 @@ recomputeGraph :: FlowCmdM env err m
                -> PartitionMethod
                -> Maybe GraphMetric
                -> Maybe Strength
+               -> NgramsType
+               -> NgramsType
                -> Bool
                -> m Graph
-recomputeGraph _uId nId method maybeSimilarity maybeStrength force = do
+recomputeGraph _uId nId method maybeSimilarity maybeStrength nt1 nt2 force = do
   nodeGraph <- getNodeWith nId (Proxy :: Proxy HyperdataGraph)
   let
     graph  = nodeGraph ^. node_hyperdata . hyperdataGraph
@@ -157,7 +159,7 @@ recomputeGraph _uId nId method maybeSimilarity maybeStrength force = do
   let v   = repo ^. unNodeStory . at listId . _Just . a_version
 
   let computeG mt = do
-        !g <- computeGraph cId method similarity strength NgramsTerms repo
+        !g <- computeGraph cId method similarity strength (nt1,nt2) repo
         let g' = set graph_metadata mt g
         _nentries <- updateHyperdata nId (HyperdataGraph (Just g') camera)
         pure g'
@@ -174,31 +176,53 @@ recomputeGraph _uId nId method maybeSimilarity maybeStrength force = do
                        pure $ trace "[G.V.G.API] Graph exists, recomputing" g
 
 
+-- TODO remove repo
 computeGraph :: FlowCmdM env err m
              => CorpusId
              -> PartitionMethod
              -> Similarity
              -> Strength
-             -> NgramsType
+             -> (NgramsType, NgramsType)
              -> NodeListStory
              -> m Graph
-computeGraph corpusId method similarity strength nt repo = do
+computeGraph corpusId method similarity strength (nt1,nt2) repo = do
+  -- Getting the Node parameters
   lId  <- defaultList corpusId
   lIds <- selectNodesWithUsername NodeList userMaster
-  let ngs = filterListWithRoot [MapTerm]
-          $ mapTermListRoot [lId] nt repo
 
-             -- Removing the hapax (ngrams with 1 cooc)
-  !myCooc <- HashMap.filter (>1)
-         <$> getCoocByNgrams (Diagonal True)
-         <$> groupNodesByNgrams ngs
-         <$> getContextsByNgramsOnlyUser corpusId (lIds <> [lId]) nt (HashMap.keys ngs)
-
-  graph <- liftBase $ cooc2graphWith method similarity 0 strength myCooc
+  -- Getting the Ngrams to compute with and grouping it according to the lists
+  let 
+    groupedContextsByNgrams nt corpusId' (lists_master, lists_user) = do
+      let
+        ngs = filterListWithRoot [MapTerm] $ mapTermListRoot lists_user nt repo
+      groupNodesByNgrams ngs <$> getContextsByNgramsOnlyUser corpusId'
+                                     (lists_user <> lists_master) nt (HashMap.keys ngs)
+
+  -- Optim if nt1 == nt2 : do not compute twice
+  (m1,m2) <- do
+    m1 <- groupedContextsByNgrams nt1 corpusId (lIds, [lId])
+    if nt1 == nt2
+      then 
+        pure (m1,m1)
+      else do
+        m2 <- groupedContextsByNgrams nt2 corpusId (lIds, [lId])
+        pure (m1,m2)
+
+            -- Removing the hapax (ngrams with 1 cooc)
+  let !myCooc = HashMap.filter (>1)
+              $ getCoocByNgrams'' (Diagonal True) (identity, identity) (m1,m2)
+
+  -- TODO MultiPartite Here
+  graph <- liftBase
+        $ cooc2graphWith method (MultiPartite (Partite (HashMap.keysSet m1) nt1)
+                                              (Partite (HashMap.keysSet m2) nt2)
+                                              )
+                                similarity 0 strength myCooc
 
   pure graph
 
 
+
 defaultGraphMetadata :: HasNodeError err
                      => CorpusId
                      -> Text
@@ -240,6 +264,7 @@ graphAsync u n =
 --               -> NodeId
 --               -> (JobLog -> GargNoServer ())
 --               -> GargNoServer JobLog
+-- TODO get Graph Metadata to recompute
 graphRecompute :: FlowCmdM env err m
                => UserId
                -> NodeId
@@ -251,7 +276,7 @@ graphRecompute u n logStatus = do
                    , _scst_remaining = Just 1
                    , _scst_events    = Just []
                    }
-  _g <- recomputeGraph u n Spinglass Nothing Nothing False
+  _g <- recomputeGraph u n Spinglass Nothing Nothing NgramsTerms NgramsTerms False
   pure  JobLog { _scst_succeeded = Just 1
                , _scst_failed    = Just 0
                , _scst_remaining = Just 0
@@ -306,7 +331,7 @@ recomputeVersions :: FlowCmdM env err m
                   => UserId
                   -> NodeId
                   -> m Graph
-recomputeVersions uId nId = recomputeGraph uId nId Spinglass Nothing Nothing False
+recomputeVersions uId nId = recomputeGraph uId nId Spinglass Nothing Nothing NgramsTerms NgramsTerms False
 
 ------------------------------------------------------------
 graphClone :: UserId
diff --git a/src/Gargantext/Core/Viz/Graph/Tools.hs b/src/Gargantext/Core/Viz/Graph/Tools.hs
index f43ef6b15958f780fd68b476117dc86d0b4c5684..195c6d5cc341de7af26bf5ad18782bfefb70ab9f 100644
--- a/src/Gargantext/Core/Viz/Graph/Tools.hs
+++ b/src/Gargantext/Core/Viz/Graph/Tools.hs
@@ -30,6 +30,7 @@ import Gargantext.Core.Viz.Graph.Bridgeness (bridgeness, Partitions, ToComId(..)
 import Gargantext.Core.Viz.Graph.Index (createIndices, toIndex, map2mat, mat2map, Index, MatrixShape(..))
 import Gargantext.Core.Viz.Graph.Tools.IGraph (mkGraphUfromEdges, spinglass)
 import Gargantext.Core.Viz.Graph.Tools.Infomap (infomap)
+import Gargantext.Database.Schema.Ngrams (NgramsType(..))
 import Gargantext.Core.Viz.Graph.Utils (edgesFilter, nodesFilter)
 import Gargantext.Prelude
 import Graph.Types (ClusterNode)
@@ -40,6 +41,7 @@ import qualified Data.HashMap.Strict      as HashMap
 import qualified Data.List                as List
 import qualified Data.Map                 as Map
 import qualified Data.Set                 as Set
+import qualified Data.HashSet             as HashSet
 import qualified Data.Text                as Text
 import qualified Data.Vector.Storable     as Vec
 import qualified Graph.BAC.ProxemyOptim   as BAC
@@ -87,6 +89,7 @@ cooc2graph' distance threshold myCooc
 
 -- coocurrences graph computation
 cooc2graphWith :: PartitionMethod
+               -> MultiPartite
                -> Similarity
                -> Threshold
                -> Strength
@@ -100,12 +103,13 @@ cooc2graphWith Infomap   = cooc2graphWith' (infomap "--silent --two-level -N2")
 
 cooc2graphWith' :: ToComId a
                => Partitions a
+               -> MultiPartite
                -> Similarity
                -> Threshold
                -> Strength
                -> HashMap (NgramsTerm, NgramsTerm) Int
                -> IO Graph
-cooc2graphWith' doPartitions similarity threshold strength myCooc = do
+cooc2graphWith' doPartitions multi similarity threshold strength myCooc = do
   let (distanceMap, diag, ti) = doSimilarityMap similarity threshold strength myCooc
   distanceMap `seq` diag `seq` ti `seq` return ()
 
@@ -130,7 +134,7 @@ cooc2graphWith' doPartitions similarity threshold strength myCooc = do
         n' = Set.size $ Set.fromList $ as <> bs
     !bridgeness' = bridgeness (fromIntegral nodesApprox) partitions distanceMap
     !confluence' = BAC.computeConfluences 3 (Map.keys bridgeness') True
-  pure $ data2graph ti diag bridgeness' confluence' partitions
+  pure $ data2graph multi ti diag bridgeness' confluence' partitions
 
 type Reverse = Bool
 
@@ -187,14 +191,26 @@ doSimilarityMap Conditional threshold strength myCooc = (distanceMap, toIndex ti
 
 type Occurrences      = Int
 
-data2graph :: ToComId a 
-           => Map NgramsTerm Int
+multiPartiteWith :: MultiPartite -> NgramsTerm -> TypeNode
+multiPartiteWith (MultiPartite (Partite s1 t1) (Partite _s2 t2)) t = 
+  if HashSet.member t s1
+     then typeNode t1
+     else typeNode t2
+
+typeNode :: NgramsType -> TypeNode
+typeNode NgramsTerms = Terms
+typeNode _           = Unknown
+
+
+data2graph :: ToComId a
+           => MultiPartite
+           -> Map NgramsTerm Int
            -> Map (Int, Int) Occurrences
            -> Map (Int, Int) Double
            -> Map (Int, Int) Double
            -> [a]
            -> Graph
-data2graph labels' occurences bridge conf partitions = Graph { _graph_nodes = nodes
+data2graph multi labels' occurences bridge conf partitions = Graph { _graph_nodes = nodes
                                                              , _graph_edges = edges
                                                              , _graph_metadata = Nothing
                                                              }
@@ -202,7 +218,7 @@ data2graph labels' occurences bridge conf partitions = Graph { _graph_nodes = no
 
     nodes = map (setCoord ForceAtlas labels bridge)
           [ (n, Node { node_size    = maybe 0 identity (Map.lookup (n,n) occurences)
-                     , node_type    = Terms -- or Unknown
+                     , node_type    = multiPartiteWith multi l
                      , node_id      = cs (show n)
                      , node_label   = unNgramsTerm l
                      , node_x_coord = 0
diff --git a/src/Gargantext/Database/Schema/Ngrams.hs b/src/Gargantext/Database/Schema/Ngrams.hs
index 8f6f00621f2c868af367255bbcb73232f3471c58..37c0b83167736ac0c1953fcee0d37f7c1cb54e06 100644
--- a/src/Gargantext/Database/Schema/Ngrams.hs
+++ b/src/Gargantext/Database/Schema/Ngrams.hs
@@ -23,20 +23,21 @@ module Gargantext.Database.Schema.Ngrams
 import Codec.Serialise (Serialise())
 import Control.Lens (over)
 import Control.Monad (mzero)
-import Data.Maybe (fromMaybe)
-import Data.HashMap.Strict (HashMap)
-import Data.Hashable (Hashable)
 import Data.Aeson
 import Data.Aeson.Types (toJSONKeyText)
+import Data.HashMap.Strict (HashMap)
+import Data.Hashable (Hashable)
 import Data.Map (fromList, lookup)
-import Database.PostgreSQL.Simple.FromField (returnError, ResultError(..))
+import Data.Maybe (fromMaybe)
 import Data.Text (Text, splitOn, pack, strip)
+import Database.PostgreSQL.Simple.FromField (returnError, ResultError(..))
+import Gargantext.Core (HasDBid(..))
 import Gargantext.Core.Types (TODO(..), Typed(..))
+import Gargantext.Database.Schema.Prelude
+import Gargantext.Database.Types
 import Gargantext.Prelude
 import Servant (FromHttpApiData(..), Proxy(..), ToHttpApiData(..))
-import Gargantext.Core (HasDBid(..))
-import Gargantext.Database.Types
-import Gargantext.Database.Schema.Prelude
+import Test.QuickCheck (elements)
 import Text.Read (read)
 import qualified Data.ByteString.Char8 as B
 import qualified Data.HashMap.Strict as HashMap
@@ -84,10 +85,19 @@ ngramsTable = Table "ngrams" (pNgramsDb NgramsDB { _ngrams_id    = optionalTable
 -- ngrams in text    fields of documents has Terms   Type (i.e. either title or abstract)
 data NgramsType = Authors | Institutes | Sources | NgramsTerms
   deriving (Eq, Show, Read, Ord, Enum, Bounded, Generic)
+
 instance Serialise NgramsType
 instance FromJSON NgramsType
+  where
+    parseJSON (String "Authors")    = pure Authors
+    parseJSON (String "Institutes") = pure Institutes
+    parseJSON (String "Sources")    = pure Sources
+    parseJSON (String "Terms")      = pure NgramsTerms
+    parseJSON _                     = mzero
+
 instance FromJSONKey NgramsType where
    fromJSONKey = FromJSONKeyTextParser (parseJSON . String)
+
 instance ToJSON NgramsType
 instance ToJSONKey NgramsType where
    toJSONKey = toJSONKeyText (pack . show)
@@ -97,6 +107,9 @@ instance ToHttpApiData NgramsType where
   toUrlPiece = pack . show
 instance ToParamSchema NgramsType where
   toParamSchema _ = toParamSchema (Proxy :: Proxy TODO)
+instance Arbitrary NgramsType where
+  arbitrary = elements [ minBound .. maxBound ]
+
 -- map NgramsType to its assigned id
 instance FromField NgramsType where
   fromField fld mdata =