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 =