Ole-Christoffer Granmo

265 papers A* 10A 1B 9C 25Misc 9Journal 128Unranked 80
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Svein Anders Tunheim, Yujin Zheng, Lei Jiao, Rishad A. Shafik, Alex Yakovlev, Ole-Christoffer Granmo
2026 J jnl
CoRR
Vojtech Halenka, Mohammadreza Amini, Per-Arne Andersen, Ole-Christoffer Granmo, Burak Kantarci
2026 Misc conf
COMSNETS
Charitha Gadari, Sreenivasa Reddy Yeduri, Ole-Christoffer Granmo, Linga Reddy Cenkeramaddi
2026 J jnl
Pattern Recognit.
Olga Tarasyuk, Anatoliy Gorbenko, Tousif Rahman, Lei Jiao, Ole-Christoffer Granmo, Rishad A. Shafik, Alex Yakovlev
2026 Misc conf
COMSNETS
Bhumika Salvi, Sreenivasa Reddy Yeduri, Ole-Christoffer Granmo, Linga Reddy Cenkeramaddi
2025 conf
AI (1)
Vojtech Halenka, Ole-Christoffer Granmo, Lei Jiao, Per-Arne Andersen
2025 J jnl
CoRR
Vojtech Halenka, Ole-Christoffer Granmo, Lei Jiao, Per-Arne Andersen
2025 J jnl
CoRR
Mayur Kishor Shende, Ole-Christoffer Granmo, Runar Helin, Vladimir I. Zadorozhny, Rishad A. Shafik
2025 J jnl
CoRR
Ahmed K. Kadhim, Lei Jiao, Rishad A. Shafik, Ole-Christoffer Granmo
2025 J jnl
CoRR
Svein Anders Tunheim, Yujin Zheng, Lei Jiao, Rishad A. Shafik, Alex Yakovlev, Ole-Christoffer Granmo
2025 A* conf
AAAI
Mohamed-Bachir Belaid, Jivitesh Sharma, Lei Jiao, Ole-Christoffer Granmo, Per-Arne Andersen, Anis Yazidi
2025 J jnl
IEEE Internet Things J.
Sindhusha Jeeru, Rebekka Olsson Omslandseter, Per-Arne Andersen, Aiden J. Morrison, Nadezda Sokolova, Ole-Christoffer Granmo, Lei Jiao
2025 J jnl
CoRR
Ahmed K. Kadhim, Lei Jiao, Rishad A. Shafik, Ole-Christoffer Granmo
2025 J jnl
CoRR
Kunal Ganesh Dumbre, Lei Jiao, Ole-Christoffer Granmo
2025 J jnl
CoRR
Ahmed K. Kadhim, Lei Jiao, Rishad A. Shafik, Ole-Christoffer Granmo, Bimal Bhattarai
2025 J jnl
CoRR
Ole-Christoffer Granmo, Youmna Abdelwahab, Per-Arne Andersen, Paul F. A. Clarke, Kunal Ganesh Dumbre, Ylva Grønningsæter, Vojtech Halenka, Runar Helin, Lei Jiao, Ahmed Khalid, Rebekka Olsson Omslandseter, Rupsa Saha, Mayur Shende, Xuan Zhang
2025 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Svein Anders Tunheim, Lei Jiao, Rishad A. Shafik, Alex Yakovlev, Ole-Christoffer Granmo
2025 J jnl
CoRR
Runar Helin, Ole-Christoffer Granmo, Mayur Kishor Shende, Lei Jiao, Vladimir I. Zadorozhny, Kunal Ganesh Dumbre, Rishad A. Shafik, Alex Yakovlev
2024 J jnl
CoRR
Ylva Grønningsæter, Halvor S. Smørvik, Ole-Christoffer Granmo
2024 J jnl
CoRR
Vojtech Halenka, Ahmed K. Kadhim, Paul F. A. Clarke, Bimal Bhattarai, Rupsa Saha, Ole-Christoffer Granmo, Lei Jiao, Per-Arne Andersen
2024 J jnl
CoRR
Ahmed K. Kadhim, Ole-Christoffer Granmo, Lei Jiao, Rishad A. Shafik
2024 conf
SGAI Conf. (1)
Daniel Biermann, Fabrizio Palumbo, Morten Goodwin, Ole-Christoffer Granmo
2024 J jnl
J. Comput. Soc. Sci.
Ahmed Abouzeid, Ole-Christoffer Granmo, Morten Goodwin, Christian Webersik
2024 J jnl
Inf. Sci.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2024 conf
EACL (Findings)
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao, Rohan Kumar Yadav, Jivitesh Sharma
2023 conf
NMR
Bimal Bhattarai, Rupsa Saha, Ole-Christoffer Granmo, Vladimir Zadorozhny, Jiawei Xu
2023 J jnl
Expert Syst. J. Knowl. Eng.
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Rishad A. Shafik, Lei Jiao, Adrian Wheeldon, Alex Yakovlev, Jie Lei, Morten Goodwin
2023 J jnl
CoRR
Samuel Prescott, Adrian Wheeldon, Rishad A. Shafik, Tousif Rahman, Alex Yakovlev, Ole-Christoffer Granmo
2023 conf
ECIR (1)
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2023 A* conf
IJCAI
Kuruge Darshana Abeyrathna, Ahmed Abdulrahem Othman Abouzeid, Bimal Bhattarai, Charul Giri, Sondre Glimsdal, Ole-Christoffer Granmo, Lei Jiao, Rupsa Saha, Jivitesh Sharma, Svein Anders Tunheim, Xuan Zhang
2023 J jnl
CoRR
Kuruge Darshana Abeyrathna, Ahmed Abdulrahem Othman Abouzeid, Bimal Bhattarai, Charul Giri, Sondre Glimsdal, Ole-Christoffer Granmo, Lei Jiao, Rupsa Saha, Jivitesh Sharma, Svein Anders Tunheim, Xuan Zhang
2023 J jnl
BMC Medical Informatics Decis. Mak.
Geir Thore Berge, Ole-Christoffer Granmo, Tor Oddbjørn Tveit, Anna Linda Ruthjersen, Jivitesh Sharma
2023 J jnl
CoRR
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao, Per-Arne Andersen, Svein Anders Tunheim, Rishad A. Shafik, Alex Yakovlev
2023 J jnl
Microprocess. Microsystems
Svein Anders Tunheim, Lei Jiao, Rishad A. Shafik, Alex Yakovlev, Ole-Christoffer Granmo
2023 A* conf
AAAI
Jivitesh Sharma, Rohan Kumar Yadav, Ole-Christoffer Granmo, Lei Jiao
2023 J jnl
CoRR
Rupsa Saha, Vladimir I. Zadorozhny, Ole-Christoffer Granmo
2023 J jnl
CoRR
Rishad A. Shafik, Tousif Rahman, Adrian Wheeldon, Ole-Christoffer Granmo, Alex Yakovlev
2023 B conf
RuleML+RR
Kuruge Darshana Abeyrathna, Sara El Mekkaoui, L. Yi Edward, Andreas Hafver, Ole-Christoffer Granmo
2023 J jnl
CoRR
Mohamed-Bachir Belaid, Jivitesh Sharma, Lei Jiao, Ole-Christoffer Granmo, Per-Arne Andersen, Anis Yazidi
2023 J jnl
CoRR
Daniel Biermann, Fabrizio Palumbo, Morten Goodwin, Ole-Christoffer Granmo
2023 J jnl
CoRR
Jinbao Zhang, Xuan Zhang, Lei Jiao, Ole-Christoffer Granmo, Yongjun Qian, Fan Pan
2023 J jnl
CoRR
Ole-Christoffer Granmo, Per-Arne Andersen, Lei Jiao, Xuan Zhang, Christian D. Blakely, Tor Oddbjørn Tveit
2023 J jnl
BMC Medical Informatics Decis. Mak.
Geir Thore Berge, Ole-Christoffer Granmo, Tor Oddbjørn Tveit, Bjørn Erik Munkvold, Anna Linda Ruthjersen, Jivitesh Sharma
2023 conf
IEA/AIE (2)
Saeed Rahimi Gorji, Ole-Christoffer Granmo, Morten Goodwin
2023 J jnl
Appl. Intell.
Saeed Rahimi Gorji, Ole-Christoffer Granmo
2023 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Lei Jiao, Xuan Zhang, Ole-Christoffer Granmo, Kuruge Darshana Abeyrathna
2023 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Sidharth Maheshwari, Tousif Rahman, Rishad A. Shafik, Alex Yakovlev, Ashur Rafiev, Lei Jiao, Ole-Christoffer Granmo
2023 J jnl
CoRR
Ole-Christoffer Granmo
2023 J jnl
AI Ethics
Ajay Vishwanath, Einar Duenger Bøhn, Ole-Christoffer Granmo, Charl Maree, Christian W. Omlin
2023 conf
AIAI (2)
Daniel Biermann, Morten Goodwin, Ole-Christoffer Granmo
2023 J jnl
CoRR
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao, Rohan Kumar Yadav, Jivitesh Sharma
2023 J jnl
Expert Syst. J. Knowl. Eng.
Rupsa Saha, Ole-Christoffer Granmo, Morten Goodwin
2023 J jnl
CoRR
Emilia Przybysz, Bimal Bhattarai, Cosimo Persia, Ana Ozaki, Ole-Christoffer Granmo, Jivitesh Sharma
2022 J jnl
J. Intell. Inf. Syst.
Rupsa Saha, Ole-Christoffer Granmo, Vladimir I. Zadorozhny, Morten Goodwin
2022 C conf
CoG
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2022 J jnl
CoRR
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2022 B conf
LREC
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2022 J jnl
CoRR
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2022 C conf
IEA/AIE
Svein Anders Tunheim, Rohan Kumar Yadav, Lei Jiao, Rishad A. Shafik, Ole-Christoffer Granmo
2022 B conf
LREC
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2022 ed.
INTAP
Filippo Sanfilippo, Ole-Christoffer Granmo, Sule Yildirim Yayilgan, Imran Sarwar Bajwa
2022 J jnl
CoRR
Per-Arne Andersen, Ole-Christoffer Granmo, Morten Goodwin
2022 conf
NAIS
Daniel Biermann, Morten Goodwin, Ole-Christoffer Granmo
2022 B conf
IJCNN
Charul Giri, Ole-Christoffer Granmo, Herke van Hoof, Christian D. Blakely
2022 J jnl
CoRR
Charul Giri, Ole-Christoffer Granmo, Herke van Hoof, Christian D. Blakely
2022 J jnl
Softw. Impacts
Ahmed Abouzeid, Ole-Christoffer Granmo
2022 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Xuan Zhang, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2022 J jnl
CoRR
Jivitesh Sharma, Ole-Christoffer Granmo, Lei Jiao
2022 A* conf
IJCAI
Rohan Kumar Yadav, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2022 A* conf
AAAI
Ahmed Abouzeid, Ole-Christoffer Granmo, Christian Webersik, Morten Goodwin
2022 J jnl
CoRR
Ahmed Abouzeid, Ole-Christoffer Granmo, Christian Webersik, Morten Goodwin
2022 A* conf
NeurIPS
Raihan Seraj, Jivitesh Sharma, Ole-Christoffer Granmo
2022 J jnl
CoRR
Raihan Seraj, Jivitesh Sharma, Ole-Christoffer Granmo
2022 J jnl
Appl. Intell.
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2021 J jnl
CoRR
Rupsa Saha, Ole-Christoffer Granmo, Vladimir I. Zadorozhny, Morten Goodwin
2021 conf
ICAART (Revised Selected Papers)
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2021 conf
ICAART (Revised Selected Papers)
Rohan Kumar Yadav, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2021 conf
IEA/AIE (1)
Christian D. Blakely, Ole-Christoffer Granmo
2021 J jnl
CoRR
Sondre Glimsdal, Ole-Christoffer Granmo
2021 conf
ICMLT
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2021 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jivitesh Sharma, Per-Arne Andersen, Ole-Christoffer Granmo, Morten Goodwin
2021 J jnl
CoRR
Rohan Kumar Yadav, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2021 conf
IEA/AIE (1)
Jivitesh Sharma, Ole-Christoffer Granmo, Morten Goodwin
2021 conf
BlackboxNLP@EMNLP
Rohan Kumar Yadav, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2021 conf
IEA/AIE (1)
Saeed Rahimi Gorji, Ole-Christoffer Granmo, Marco A. Wiering
2021 J jnl
CoRR
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2021 J jnl
IEEE Access
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2021 J jnl
CoRR
Jivitesh Sharma, Rohan Kumar Yadav, Ole-Christoffer Granmo, Lei Jiao
2021 A* conf
AAAI
Rohan Kumar Yadav, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2021 J jnl
Expert Syst. J. Knowl. Eng.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2021 conf
ICAART (2)
Rohan Kumar Yadav, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2021 J jnl
Inf. Syst. Frontiers
Ahmed Abouzeid, Ole-Christoffer Granmo, Christian Webersik, Morten Goodwin
2021 J jnl
CoRR
Jie Lei, Tousif Rahman, Rishad A. Shafik, Adrian Wheeldon, Alex Yakovlev, Ole-Christoffer Granmo, Fahim Kawsar, Akhil Mathur
2021 A* conf
ICML
Kuruge Darshana Abeyrathna, Bimal Bhattarai, Morten Goodwin, Saeed Rahimi Gorji, Ole-Christoffer Granmo, Lei Jiao, Rupsa Saha, Rohan Kumar Yadav
2021 conf
ICAART (2)
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2021 conf
SGAI Conf.
Ahmed Abouzeid, Ole-Christoffer Granmo, Morten Goodwin
2021 conf
SGAI Conf.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2021 J jnl
CoRR
Lei Jiao, Xuan Zhang, Ole-Christoffer Granmo
2021 J jnl
CoRR
Lei Jiao, Xuan Zhang, Ole-Christoffer Granmo, Kuruge Darshana Abeyrathna
2021 J jnl
Knowl. Based Syst.
Rohan Kumar Yadav, Lei Jiao, Morten Goodwin, Ole-Christoffer Granmo
2021 J jnl
CoRR
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2020 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Xuan Zhang, Lei Jiao, B. John Oommen, Ole-Christoffer Granmo
2020 J jnl
CoRR
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Rishad A. Shafik, Alex Yakovlev, Adrian Wheeldon, Jie Lei, Morten Goodwin
2020 conf
SGAI Conf.
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Rishad A. Shafik, Alex Yakovlev, Adrian Wheeldon, Jie Lei, Morten Goodwin
2020 J jnl
CoRR
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2020 conf
SSCI
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Xuan Zhang, Morten Goodwin
2020 ed.
CONVERSATIONS
Asbjørn Følstad, Theo B. Araujo, Symeon Papadopoulos, Effie Lai-Chong Law, Ole-Christoffer Granmo, Ewa Luger, Petter Bae Brandtzæg
2020 J jnl
CoRR
Christian D. Blakely, Ole-Christoffer Granmo
2020 J jnl
Comput. Speech Lang.
Mehdi Ben Lazreg, Morten Goodwin, Ole-Christoffer Granmo
2020 conf
SGAI Conf.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2020 A conf
INTERSPEECH
Jivitesh Sharma, Ole-Christoffer Granmo, Morten Goodwin
2020 J jnl
CoRR
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2020 conf
ICECS
Jie Lei, Adrian Wheeldon, Rishad A. Shafik, Alex Yakovlev, Ole-Christoffer Granmo
2020 C conf
IEA/AIE
Saeed Rahimi Gorji, Ole-Christoffer Granmo, Sondre Glimsdal, Jonathan Edwards, Morten Goodwin
2020 J jnl
CoRR
Saeed Rahimi Gorji, Ole-Christoffer Granmo, Sondre Glimsdal, Jonathan Edwards, Morten Goodwin
2020 C conf
IEA/AIE
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2020 conf
INTAP
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2020 conf
SSCI
Kuruge Darshana Abeyrathna, Harsha S. Gardiyawasam Pussewalage, Sasanka N. Ranasinghe, Vladimir A. Oleshchuk, Ole-Christoffer Granmo
2020 J jnl
CoRR
Kuruge Darshana Abeyrathna, Bimal Bhattarai, Morten Goodwin, Saeed Rahimi Gorji, Ole-Christoffer Granmo, Lei Jiao, Rupsa Saha, Rohan Kumar Yadav
2020 J jnl
CoRR
Bimal Bhattarai, Ole-Christoffer Granmo, Lei Jiao
2020 conf
SGAI Conf.
Rupsa Saha, Ole-Christoffer Granmo, Morten Goodwin
2020 conf
SSCI
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2020 J jnl
CoRR
Xuan Zhang, Lei Jiao, Ole-Christoffer Granmo, Morten Goodwin
2020 conf
LOD (2)
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2020 J jnl
Inf. Sci.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2019 J jnl
CoRR
Mehdi Ben Lazreg, Morten Goodwin, Ole-Christoffer Granmo
2019 C conf
IEA/AIE
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Xuan Zhang, Morten Goodwin
2019 J jnl
CoRR
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Xuan Zhang, Morten Goodwin
2019 conf
SGAI Conf.
Saeed Rahimi Gorji, Ole-Christoffer Granmo, Adrian Phoulady, Morten Goodwin
2019 J jnl
CoRR
Saeed Rahimi Gorji, Ole-Christoffer Granmo, Adrian Phoulady, Morten Goodwin
2019 conf
ICT-DM
Mehdi Ben Lazreg, Morten Goodwin, Ole-Christoffer Granmo
2019 Misc conf
FRUCT
Ahmed Abouzeid, Ole-Christoffer Granmo, Christian Webersik, Morten Goodwin
2019 J jnl
CoRR
Jivitesh Sharma, Per-Arne Andersen, Ole-Christoffer Granmo, Morten Goodwin
2019 C conf
IEA/AIE
Bernt Viggo Matheussen, Ole-Christoffer Granmo, Jivitesh Sharma
2019 C conf
ICMLA
Jivitesh Sharma, Bernt Viggo Matheussen, Sondre Glimsdal, Ole-Christoffer Granmo
2019 J jnl
EURASIP J. Inf. Secur.
Jivitesh Sharma, Charul Giri, Ole-Christoffer Granmo, Morten Goodwin
2019 C conf
IEA/AIE
Jessica Havelock, B. John Oommen, Ole-Christoffer Granmo
2019 J jnl
CoRR
Ole-Christoffer Granmo, Sondre Glimsdal, Lei Jiao, Morten Goodwin, Christian W. Omlin, Geir Thore Berge
2019 conf
EPIA (2)
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Lei Jiao, Morten Goodwin
2019 J jnl
CoRR
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Lei Jiao, Morten Goodwin
2019 J jnl
CoRR
Adrian Phoulady, Ole-Christoffer Granmo, Saeed Rahimi Gorji, Hady Ahmady Phoulady
2019 C conf
IEA/AIE
Sondre Glimsdal, Ole-Christoffer Granmo
2019 J jnl
J. Mach. Learn. Res.
Sondre Glimsdal, Ole-Christoffer Granmo
2019 conf
SGAI Conf.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2019 J jnl
CoRR
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2019 J jnl
IEEE Access
Geir Thore Berge, Ole-Christoffer Granmo, Tor Oddbjørn Tveit, Morten Goodwin, Lei Jiao, Bernt Viggo Matheussen
2018 J jnl
Appl. Intell.
Sondre Glimsdal, Ole-Christoffer Granmo
2018 B conf
ICTAI
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2018 conf
ICANN (3)
Jivitesh Sharma, Ole-Christoffer Granmo, Morten Goodwin
2018 conf
CIG
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2018 J jnl
CoRR
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2018 conf
NIK
Kuruge Darshana Abeyrathna, Ole-Christoffer Granmo, Morten Goodwin
2018 J jnl
CoRR
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2018 J jnl
IEEE Access
Jessica Havelock, B. John Oommen, Ole-Christoffer Granmo
2018 C conf
IEA/AIE
Jessica Havelock, B. John Oommen, Ole-Christoffer Granmo
2018 conf
ACIIDS (2)
Sina Razvarz, Raheleh Jafari, Ole-Christoffer Granmo, Alexander E. Gegov
2018 conf
SGAI Conf.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2018 J jnl
CoRR
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2018 J jnl
CoRR
Ole-Christoffer Granmo
2018 J jnl
CoRR
Geir Thore Berge, Ole-Christoffer Granmo, Tor Oddbjørn Tveit, Morten Goodwin, Lei Jiao, Bernt Viggo Matheussen
2017 conf
SGAI Conf.
Jahn Thomas Fidje, Christian Kråkevik Haraldseid, Ole-Christoffer Granmo, Morten Goodwin, Bernt Viggo Matheussen
2017 J jnl
CoRR
Sondre Glimsdal, Ole-Christoffer Granmo
2017 J jnl
CoRR
Ole-Christoffer Granmo
2017 conf
ISD
Geir Thore Berge, Ole-Christoffer Granmo, Tor Oddbjørn Tveit
2017 C conf
EANN
Jivitesh Sharma, Ole-Christoffer Granmo, Morten Goodwin, Jahn Thomas Fidje
2017 conf
NIK
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2017 J jnl
Pattern Anal. Appl.
Xuan Zhang, B. John Oommen, Ole-Christoffer Granmo
2017 J jnl
CoRR
Sondre Glimsdal, Ole-Christoffer Granmo
2017 conf
INSCI Workshops
Åsmund Kamphaug, Ole-Christoffer Granmo, Morten Goodwin, Vladimir Zadorozhny
2017 conf
SGAI Conf.
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2017 J jnl
CoRR
Per-Arne Andersen, Morten Goodwin, Ole-Christoffer Granmo
2017 B conf
CEC
Mehdi Ben Lazreg, Morten Goodwin, Ole-Christoffer Granmo
2016 J jnl
Appl. Intell.
Xuan Zhang, B. John Oommen, Ole-Christoffer Granmo, Lei Jiao
2016 C conf
ICMLA
Ole-Christoffer Granmo
2016 conf
SAIS
Mehdi Ben Lazreg, Morten Goodwin, Ole-Christoffer Granmo
2016 Misc conf
AIAI
Mehdi Ben Lazreg, Morten Goodwin, Ole-Christoffer Granmo
2016 J jnl
Appl. Intell.
Lei Jiao, Xuan Zhang, B. John Oommen, Ole-Christoffer Granmo
2016 J jnl
Pattern Recognit.
Anis Yazidi, B. John Oommen, Geir Horn, Ole-Christoffer Granmo
2016 conf
SAIS
Bjørnar Hansen, Leonard Loland, Morten Goodwin, Ole-Christoffer Granmo
2015 conf
MOD
Mehdi Ben Lazreg, Jaziar Radianti, Ole-Christoffer Granmo
2015 conf
ICT-DM
Simin Rasouli, Ole-Christoffer Granmo, Jaziar Radianti
2015 J jnl
Appl. Intell.
Jaziar Radianti, Ole-Christoffer Granmo, Parvaneh Sarshar, Morten Goodwin Olsen, Julie Dugdale, Jose J. Gonzalez
2015 J jnl
Appl. Intell.
Morten Goodwin Olsen, Ole-Christoffer Granmo, Jaziar Radianti
2015 J jnl
Eng. Appl. Artif. Intell.
Jaziar Radianti, Mehdi Ben Lazreg, Ole-Christoffer Granmo
2015 C conf
IEA/AIE
Bernt Viggo Matheussen, Ole-Christoffer Granmo
2015 conf
ISCRAM
Mehdi Ben Lazreg, Jaziar Radianti, Ole-Christoffer Granmo
2015 Misc conf
AIAI
Sondre Glimsdal, Ole-Christoffer Granmo
2015 C conf
ICMLA
Sondre Glimsdal, Ole-Christoffer Granmo
2014 conf
IEA/AIE (2)
Lei Jiao, Xuan Zhang, Ole-Christoffer Granmo, B. John Oommen
2014 C conf
ICMLA
Sondre Glimsdal, Ole-Christoffer Granmo
2014 J jnl
IEEE Trans. Cybern.
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen, Morten Goodwin Olsen
2014 J jnl
Trans. Comput. Collect. Intell.
Vegard Haugland, Marius Kjølleberg, Svein-Erik Larsen, Ole-Christoffer Granmo
2014 J jnl
Appl. Intell.
Xuan Zhang, Ole-Christoffer Granmo, B. John Oommen, Lei Jiao
2014 J jnl
Int. J. Inf. Syst. Crisis Response Manag.
Jaziar Radianti, Ole-Christoffer Granmo, Noureddine Bouhmala, Parvaneh Sarshar, Jose J. Gonzalez
2014 conf
CSE
Anis Yazidi, B. John Oommen, Ole-Christoffer Granmo, Morten Goodwin
2014 conf
PerCom Workshops
Jaziar Radianti, Jose J. Gonzalez, Ole-Christoffer Granmo
2014 conf
ISCRAM
Jaziar Radianti, Julie Dugdale, Jose J. Gonzalez, Ole-Christoffer Granmo
2014 J jnl
CoRR
Jaziar Radianti, Julie Dugdale, Jose J. Gonzalez, Ole-Christoffer Granmo
2014 conf
IEA/AIE (1)
Xuan Zhang, B. John Oommen, Ole-Christoffer Granmo, Lei Jiao
2013 conf
CIDUE
Parvaneh Sarshar, Jaziar Radianti, Ole-Christoffer Granmo, Jose J. Gonzalez
2013 C conf
IEA/AIE
Ole-Christoffer Granmo, Jaziar Radianti, Morten Goodwin Olsen, Julie Dugdale, Parvaneh Sarshar, Sondre Glimsdal, Jose J. Gonzalez
2013 J jnl
Appl. Intell.
Ole-Christoffer Granmo, Sondre Glimsdal
2013 C conf
IEA/AIE
Morten Goodwin Olsen, Ole-Christoffer Granmo, Jaziar Radianti, Parvaneh Sarshar, Sondre Glimsdal
2013 conf
ICMLA (1)
Neha Gupta, Ole-Christoffer Granmo, Ashok K. Agrawala
2013 B conf
PIMRC
Xuan Zhang, Lei Jiao, Ole-Christoffer Granmo, B. John Oommen
2013 conf
HICSS
Jaziar Radianti, Ole-Christoffer Granmo, Noureddine Bouhmala, Parvaneh Sarshar, Anis Yazidi, Jose J. Gonzalez
2013 conf
MAICS
Sondre Glimsdal, Ole-Christoffer Granmo
2013 J jnl
IEEE Trans. Cybern.
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen
2013 C conf
IEA/AIE
Xuan Zhang, Ole-Christoffer Granmo, B. John Oommen, Lei Jiao
2013 J jnl
Appl. Intell.
Xuan Zhang, Ole-Christoffer Granmo, B. John Oommen
2013 J jnl
Int. J. Pattern Recognit. Artif. Intell.
Aleksander Stensby, B. John Oommen, Ole-Christoffer Granmo
2012 C conf
IEA/AIE
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen, Morten Goodwin Olsen
2012 C conf
IEA/AIE
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen
2012 Misc conf
ICNC
Anis Yazidi, B. John Oommen, Ole-Christoffer Granmo
2012 J jnl
J. Inf. Process. Syst.
B. John Oommen, Anis Yazidi, Ole-Christoffer Granmo
2012 C conf
IEA/AIE
Xuan Zhang, Ole-Christoffer Granmo, B. John Oommen
2012 conf
ISCRAM
Jose J. Gonzalez, Ole-Christoffer Granmo, Bjørn Erik Munkvold, Frank Y. Li, Julie Dugdale
2012 J jnl
Appl. Intell.
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen
2011 conf
HAIS (1)
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen
2011 conf
IEA/AIE (2)
Ole-Christoffer Granmo, Sondre Glimsdal
2011 conf
ICCCI (1)
Vegard Haugland, Marius Kjølleberg, Svein-Erik Larsen, Ole-Christoffer Granmo
2011 J jnl
Wirel. Pers. Commun.
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen, Martin Gerdes, Frank Reichert
2011 Misc conf
AIAI
Xuan Zhang, B. John Oommen, Ole-Christoffer Granmo
2011 J jnl
Eng. Appl. Artif. Intell.
Ole-Christoffer Granmo, B. John Oommen
2011 conf
CCECE
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen
2011 conf
SGAI Conf.
Neha Gupta, Ole-Christoffer Granmo, Ashok K. Agrawala
2011 conf
IEA/AIE (2)
Xuan Zhang, Ole-Christoffer Granmo, B. John Oommen
2011 conf
ICMLA (1)
Neha Gupta, Ole-Christoffer Granmo, Ashok K. Agrawala
2011 conf
Australasian Conference on Artificial Intelligence
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen
2010 conf
ICAART (1)
Thomas Norheim, Terje Brådland, Ole-Christoffer Granmo, B. John Oommen
2010 conf
IEA/AIE (3)
Anis Yazidi, Ole-Christoffer Granmo, B. John Oommen
2010 J jnl
Eng. Appl. Artif. Intell.
Noureddine Bouhmala, Ole-Christoffer Granmo
2010 conf
ICAART (1)
Ole-Christoffer Granmo, Noureddine Bouhmala
2010 conf
SSPR/SPR
Aleksander Stensby, B. John Oommen, Ole-Christoffer Granmo
2010 B conf
PRICAI
Anis Yazidi, Ole-Christoffer Granmo, Min Lin, Xifeng Wen, B. John Oommen, Martin Gerdes, Frank Reichert
2010 J jnl
Appl. Intell.
Ole-Christoffer Granmo, B. John Oommen
2010 conf
IEA/AIE (3)
Ole-Christoffer Granmo, Stian Berg
2010 J jnl
IEEE Trans. Computers
Ole-Christoffer Granmo, B. John Oommen
2010 J jnl
Int. J. Intell. Comput. Cybern.
Ole-Christoffer Granmo
2010 J jnl
Int. J. Appl. Metaheuristic Comput.
Noureddine Bouhmala, Ole-Christoffer Granmo
2009 C conf
IEA/AIE
Ole-Christoffer Granmo, B. John Oommen
2009 ch.
Intelligent Systems for Knowledge Management
Ole-Christoffer Granmo, B. John Oommen
2008 C conf
ICMLA
Ole-Christoffer Granmo
2008 C conf
IEA/AIE
Ole-Christoffer Granmo, B. John Oommen
2008 J jnl
IEEE Trans. Syst. Man Cybern. Part B
B. John Oommen, Sang-Woon Kim, M. T. Samuel, Ole-Christoffer Granmo
2008 B conf
EvoCOP
Noureddine Bouhmala, Ole-Christoffer Granmo
2008 conf
SGAI Conf.
Ole-Christoffer Granmo
2007 J jnl
IEEE Trans. Syst. Man Cybern. Part B
Ole-Christoffer Granmo, B. John Oommen, Svein Arild Myrer, Morten Goodwin Olsen
2007 conf
Australian Conference on Artificial Intelligence
Ole-Christoffer Granmo, B. John Oommen
2007 J jnl
IEEE Trans. Computers
B. John Oommen, Sudip Misra, Ole-Christoffer Granmo
2007 J jnl
Int. J. Comput. Sci. Appl.
Ole-Christoffer Granmo, Noureddine Bouhmala
2007 C conf
IEA/AIE
B. John Oommen, Sang-Woon Kim, Mathew Samuel, Ole-Christoffer Granmo
2007 conf
CIG
B. John Oommen, Ole-Christoffer Granmo, Asle Pedersen
2006 A* conf
INFOCOM
B. John Oommen, Sudip Misra, Ole-Christoffer Granmo
2006 conf
Australian Conference on Artificial Intelligence
B. John Oommen, Ole-Christoffer Granmo, Asle Pedersen
2006 conf
Intelligent Information Systems
Ole-Christoffer Granmo, B. John Oommen
2006 J jnl
ACM Trans. Multim. Comput. Commun. Appl.
Viktor S. Wold Eide, Ole-Christoffer Granmo, Frank Eliassen, Jørgen Andreas Michaelsen
2004 Misc conf
SAC
Ole-Christoffer Granmo
2003 A* conf
ACM Multimedia
Viktor S. Wold Eide, Frank Eliassen, Ole-Christoffer Granmo, Olav Lysne
2003 conf
SCIA
Ole-Christoffer Granmo, Frank Eliassen, Olav Lysne, Viktor S. Wold Eide
2003 conf
HCI (4)
Ole-Christoffer Granmo, Vladimir A. Oleshchuk, Mikael Snaprud
2002 conf
PRIS
Ole-Christoffer Granmo
2002 conf
ICDCS Workshops
Viktor S. Wold Eide, Frank Eliassen, Olav Lysne, Ole-Christoffer Granmo
2002 Misc conf
PDPTA
Ole-Christoffer Granmo, Finn Verner Jensen
2002 conf
IDMS/PROMS
Viktor S. Wold Eide, Frank Eliassen, Ole-Christoffer Granmo, Olav Lysne
docs/new-code-binja-schema.md
← Index docs/new-code-binja-schema.md markdown
#################################
###### CODE RELATED TABLES ######
#################################

### CREATE FULL REDB DATABASE
def create_decompiled_binja_with_all_tables(client):
    create_phase1_decompiled_binja_tables(client)

#### CREATE FULL TABLES
def create_phase1_decompiled_binja_tables(client):
    create_function_analysis_error_dbtable(client)
    create_binja_decompiled_dbtable(client)
    create_binja_disassembly_dbtable(client)
    create_binja_cfg_dbtable(client)

#################################
### DECOMPILED BINJA INDIVIDUAL TABLES
#################################
def create_function_analysis_error_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS function_analysis_errors_binja (
        sha256 FixedString(64),
        function_name Nullable(String) CODEC(ZSTD(3)),
        function_address UInt64,
        error_location LowCardinality(String) CODEC(ZSTD(3)),
        error_message Nullable(String) CODEC(ZSTD(3)),
        error_details Nullable(String) CODEC(ZSTD(3)),
        error_type Nullable(String) CODEC(ZSTD(3)),
        error_hash FixedString(32), -- MD5, To help identify duplicate errors
        status Enum8('new' = 1, 'investigating' = 2, 'fixed' = 3, 'wontfix' = 4) DEFAULT 'new',
        analysis_date DateTime64(3, 'UTC'),
        PRIMARY KEY (sha256, function_address, error_location)
    )
    ENGINE = MergeTree()
    ORDER BY (sha256, function_address, error_location);
    """)

def create_binja_decompiled_dbtable(client):
    # Create decompiled_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_content (
        decompiled_function_hash FixedString(64),
        decompiled_function String CODEC(ZSTD(3)),
        decompiled_function_lower String MATERIALIZED lower(decompiled_function) CODEC(ZSTD(3)),
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL
        flattened_score Nullable(Float64),
        mba_score Nullable(Float64),
        analysis_date DateTime64(3, 'UTC'),

        INDEX idx_function_content_token lower(decompiled_function) TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_text_decompiled_function decompiled_function TYPE text(tokenizer = 'splitByNonAlpha', preprocessor = lower(decompiled_function)) GRANULARITY 64,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
    ) ENGINE = ReplacingMergeTree(analysis_date)
    PRIMARY KEY decompiled_function_hash -- TODO: remove is redundant
    ORDER BY decompiled_function_hash;
    """)

    # Create decompiled_functions_references table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        decompiled_function_hash FixedString(64),
        disassembled_function_hash Nullable(FixedString(64)),
        decompiled_function_name LowCardinality(String),
        decompiled_function_prototype LowCardinality(String),
        decompiled_function_address UInt64,
        functions_caller Array(String),
        functions_call Array(String),

        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name decompiled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_func_addr decompiled_function_address TYPE minmax GRANULARITY 1,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, decompiled_function_hash);
    """)

def create_binja_disassembly_dbtable(client):
    # Create disassembly_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_disassembled_functions_content (
        -- Content hashes for each normalization level
        disassembled_function_hash FixedString(64),             -- This is the hash of the disassembled function without addresses
        
        -- The actual function content at different normalization levels
        disassembled_function String CODEC(ZSTD(3)),
        disassembled_function_no_addresses String CODEC(ZSTD(3)),

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_count UInt32,
        instructions_types Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count UInt32,                      -- Number of control flow instructions
        memory_access_pattern Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage Array(LowCardinality(String)),         -- Types of registers used
        data_references_count UInt32,                   -- Number of data references
        opcode_frequency_vector Array(Float32),-- Not computed yet
        api_calls_vector Array(Float32),-- Not computed yet
        minhash_signature Array(UInt64),-- Not computed yet
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        instruction_type_ratios Array(Float32), -- Not computed yet
        instruction_embedding Array(Float32), -- Not computed yet
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX idx_disasm_ngram disassembled_function TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        INDEX idx_function_type function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (disassembled_function_hash);
    """)

    client.command("""
    CREATE TABLE code_binja_disassembled_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        disassembled_function_hash FixedString(64),
        decompiled_function_hash Nullable(FixedString(64)),

        disassembled_function_name LowCardinality(String),
        disassembled_function_address UInt64,
        analysis_date DateTime64(3, 'UTC'),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_func_addr disassembled_function_address TYPE minmax GRANULARITY 1,
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_norm ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name disassembled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 2
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, disassembled_function_hash)
    SETTINGS index_granularity = 8192
    """)

def create_binja_llil_dbtable(client):
    # Create llil_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_llil_functions_content (
        -- Content hashes for each normalization level
        llil_function_hash FixedString(64),             -- sha256_llil This is the hash of the disassembled function without addresses

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_types_llil Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count_llil UInt32,                      -- Number of control flow instructions
        memory_access_pattern_llil Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage_llil Map(LowCardinality(String), Tuple(UInt32, UInt32)),         -- Types of registers used
        total_reg_reads UInt32,
        total_reg_written UInt32,
        data_references_count UInt32,                   -- Number of data references
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        body_llil_vector Array(Tuple(UInt32, Array(UInt16))),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX function_type_idx function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_reg_usage mapKeys(register_usage_llil) TYPE bloom_filter(0.01) GRANULARITY 1

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY llil_function_hash;
    """)

    client.command("""
    CREATE TABLE code_binja_llil_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        llil_function_hash Nullable(FixedString(64)),
        disassembled_function_hash FixedString(64),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),

        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, function_address)
    SETTINGS index_granularity = 8192
    """)

def create_binja_cfg_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_content (
        block_instructions_hash FixedString(64), -- PK
        block_size UInt32,
        instructions_count UInt16,
        branch_type Enum8('DIRECT'=1, 'CONDITIONAL'=2, 'CALL'=3, 'RETURN'=4, 'FALLTHROUGH'=5, 'INDIRECT'=6, 'UNKNOWN'=7),
        block_type Enum8('CODE'=1, 'DATA'=2, 'THUNK'=3),
        flags Array(String),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for filtering/analysis
        INDEX idx_branch_type branch_type TYPE set(10) GRANULARITY 4,
        INDEX idx_block_type block_type TYPE set(5) GRANULARITY 4,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4,
        INDEX idx_block_size block_size TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (block_instructions_hash);
    """)
  
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        block_instructions_hash FixedString(64),
        disassembled_function_hash FixedString(64),
        
        -- Address information (for CFG traversal and debugging)
        function_address UInt64,
        block_start_address UInt64,
        block_end_address UInt64,
        
        -- CFG structure (addresses refer to block_start_address)
        predecessor_blocks Array(UInt64),
        successor_blocks Array(UInt64),
        depth UInt16,
        position UInt32,
        
        -- Dominator analysis
        dominators Array(UInt16),
        post_dominators Array(UInt16),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES based on query patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_block_hash block_instructions_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash disassembled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_addr function_address TYPE minmax GRANULARITY 1,
        INDEX idx_block_start block_start_address TYPE minmax GRANULARITY 1,
        INDEX idx_depth depth TYPE minmax GRANULARITY 4,
        INDEX idx_position position TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, function_address, block_start_address)
    SETTINGS index_granularity = 8192;
    """)

def create_binja_strings_dbtable(client):
    # 1. Raw table - INSERT target
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_raw (
        sha256 FixedString(64),
        string String CODEC(ZSTD(3)),              -- Decoded UTF-8 string (for searching)
        string_raw String CODEC(ZSTD(3)),          -- Raw bytes from binary (ground truth)
        string_encoding LowCardinality(String),    -- Detected/guessed encoding by binja
        string_offset UInt64,
        string_length UInt32,                      -- Length of decoded string
        string_raw_length UInt32,                  -- Length of raw bytes
        string_entropy Float32
    )
    ENGINE = Null;
    """)
   
    # 3a. Target table for reverse lookup (with indexes)
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_by_binary (
        sha256 FixedString(64),
        string_offset UInt64,
        string String CODEC(ZSTD(3)),
        string_raw String CODEC(ZSTD(3)),
        string_encoding LowCardinality(String),
        string_length UInt32,
        string_raw_length UInt32,
        string_entropy Float32,
        
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_string_ngram lower(string) TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string string TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string_raw string_raw TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_entropy string_entropy TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree()
    ORDER BY (sha256, string_offset);
    """)
    
    # 3b. Materialized view -> target table
    client.command("""
    CREATE MATERIALIZED VIEW IF NOT EXISTS code_binja_strings_by_binary_mv
    TO code_binja_strings_by_binary
    AS SELECT
        sha256,
        string_offset,
        string,
        string_raw,
        string_encoding,
        string_length,
        string_raw_length,
        string_entropy
    FROM code_binja_strings_raw;
    """)

    client.command("""
    -- 1. Create the new public-only popularity table
    CREATE TABLE mv_string_popularity_public_table (
        string_xxhash64 UInt64,
        sample_count AggregateFunction(uniq, FixedString(64))
    ) ENGINE = AggregatingMergeTree()
    ORDER BY string_xxhash64;
    """)

    client.command("""
    -- 2. Create the MV for new data going forward
    CREATE MATERIALIZED VIEW mv_string_popularity_public
    TO mv_string_popularity_public_table AS
    SELECT
        xxHash64(s.string) AS string_xxhash64,
        uniqState(s.sha256) AS sample_count
    FROM code_binja_strings_raw s
    INNER JOIN catalog_visibility_lookup_v2 v 
        ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    GROUP BY string_xxhash64;
    """)

    # client.command("""
    # INSERT INTO mv_string_popularity_public_table
    # SELECT
    #     xxHash64(s.string) AS string_xxhash64,
    #     uniqState(s.sha256) AS sample_count
    # FROM code_binja_strings_by_binary s
    # INNER JOIN catalog_visibility_lookup_v2 v 
    #     ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    # GROUP BY string_xxhash64;
    # """)

def create_binja_function_similarity_metrics_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_function_similarity_metrics (
        disassembled_function_hash FixedString(64),
        
        -- Complexity metrics
        cyclomatic_complexity Nullable(UInt16),
        
        -- Fuzzy hashes (duplicated from reference tables for performance)
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- Similarity hashes
        minhash Array(UInt8),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- Indexes
        INDEX idx_complexity cyclomatic_complexity TYPE minmax GRANULARITY 4,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY disassembled_function_hash;
    """)

def create_golang_metadata_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS redb_golang_metadata (
        sha256 FixedString(64),
        goresym JSON,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY sha256
    """)