Ouri Wolfson

217 papers A* 17A 6B 30C 5Journal 70Unranked 75
YearRankTypeTitle / Venue / Authors
2026 J jnl
Frontiers Comput. Sci.
Mengyi Liu, Xieyang Wang, Jianqiu Xu, Weijia Yi, Ouri Wolfson
2025 B conf
SSTD
Weijia Yi, Xieyang Wang, Jianqiu Xu, Shuai Xu, Mahmoud Attia Sakr, Ouri Wolfson
2025 conf
KDD (2)
Yuxuan Liang, Yu Zheng, Chuishi Meng, Yanhua Li, Jieping Ye, Philip S. Yu, Ouri Wolfson
2025 conf
AGI (2)
Ouri Wolfson
2024 A* conf
KDD
Yuxuan Liang, Chuishi Meng, Yanhua Li, Yu Zheng, Jieping Ye, Qiang Yang, Philip S. Yu, Ouri Wolfson
2023 B conf
MDM
Prabin Giri, Marcus Jakubowsky, Jaden Forde, Joseph Edeker, Rowan Collin, Jacob Houts, Thomas Glass, Goce Trajcevski, Ouri Wolfson
2023 J jnl
ACM Trans. Spatial Algorithms Syst.
Ouri Wolfson, Prabin Giri, Sushil Jajodia, Goce Trajcevski
2023 A* conf
KDD
Chuishi Meng, Yanhua Li, Yu Zheng, Jieping Ye, Qiang Yang, Philip S. Yu, Ouri Wolfson
2022 A* conf
KDD
Chuishi Meng, Yanhua Li, Yu Zheng, Jieping Ye, Qiang Yang, Philip S. Yu, Ouri Wolfson
2021 J jnl
J. Artif. Intell. Conscious.
Ouri Wolfson
2021 conf
SIGSPATIAL/GIS
Ouri Wolfson, Prabin Giri, Sushil Jajodia, Goce Trajcevski
2021 J jnl
GeoInformatica
Luca Foti, Jane Lin, Ouri Wolfson
2020 J jnl
J. Spatial Inf. Sci.
Leye Wang, Ouri Wolfson
2020 conf
SMDS
Jane Lin, Ouri Wolfson
2019 J jnl
J. Comput. Sci. Technol.
Jianqiu Xu, Ralf Hartmut Güting, Yu Zheng, Ouri Wolfson
2018 ch.
Encyclopedia of Database Systems (2nd ed.)
Goce Trajcevski, Ouri Wolfson, Peter Scheuermann
2018 ch.
Encyclopedia of Database Systems (2nd ed.)
Yan Luo, Ouri Wolfson
2018 ch.
Encyclopedia of Database Systems (2nd ed.)
Ouri Wolfson
2018 J jnl
GeoInformatica
Qing Guo, Ouri Wolfson
2018 J jnl
ACM Trans. Spatial Algorithms Syst.
Daniel Ayala, Ouri Wolfson, Bhaskar DasGupta, Jie Lin, Bo Xu
2018 J jnl
Brain Informatics
Mengqi Xing, Johnson J. GadElkarim, Olusola Ajilore, Ouri Wolfson, Angus G. Forbes, K. Luan Phan, Heide Klumpp, Alex D. Leow
2018 conf
SIGSPATIAL/GIS
Ouri Wolfson
2017 B conf
MDM
Ouri Wolfson, Piotr Szczurek, Aishwarya Vijayan, Alex D. Leow, Olusola Ajilore
2017 B conf
MDM
Ouri Wolfson, Jane Lin
2017 ch.
Encyclopedia of GIS
Yan Luo, Ouri Wolfson
2017 conf
SIGSPATIAL/GIS
Luca Foti, Jane Lin, Ouri Wolfson, Naphtali David Rishe
2016 B conf
MDM
Jane Lin, Sandeep Sasidharan, Shuo Ma, Ouri Wolfson
2016 conf
SIGSPATIAL/GIS
Niels A. H. Agatz, Ana L. C. Bazzan, Ronny J. Kutadinata, Dirk Christian Mattfeld, Monika Sester, Stephan Winter, Ouri Wolfson
2016 B conf
MDM
Qing Guo, Ouri Wolfson
2015 B conf
IWCMC
Qing Guo, Ouri Wolfson, Daniel Ayala
2015 J jnl
VLDB J.
A. Prasad Sistla, Ouri Wolfson, Bo Xu
2015 conf
WISE (2)
Guangqiang Zhao, Mingjin Zhang, Tao Li, Shu-Ching Chen, Ouri Wolfson, Naphtali Rishe
2015 conf
SIGSPATIAL/GIS
Qing Guo, Ouri Wolfson
2015 J jnl
IEEE Trans. Knowl. Data Eng.
Shuo Ma, Yu Zheng, Ouri Wolfson
2015 J jnl
Appl. Artif. Intell.
Joel Booth, Barbara Di Eugenio, Isabel F. Cruz, Ouri Wolfson
2014 J jnl
IEEE Multim.
Ouri Wolfson, Bo Xu
2014 conf
IWCTS@SIGSPATIAL
Ouri Wolfson, Jane Lin
2014 J jnl
IEEE Data Eng. Bull.
Sergio Ilarri, Ouri Wolfson, Thierry Delot
2014 conf
MDM (1)
Nilesh Padhariya, Ouri Wolfson, Anirban Mondal, Varun Gandhi, Sanjay Kumar Madria
2014 J jnl
ACM Trans. Intell. Syst. Technol.
Yu Zheng, Licia Capra, Ouri Wolfson, Hai Yang
2014 conf
IWCTS@SIGSPATIAL
Shuo Ma, Ouri Wolfson, Bo Xu
2014 J jnl
ACM Trans. Intell. Syst. Technol.
Yu Zheng, Licia Capra, Ouri Wolfson, Hai Yang
2013 conf
SIGSPATIAL/GIS
Shuo Ma, Ouri Wolfson
2013 conf
MDM (1)
Bo Xu, Ouri Wolfson, Jie Yang, Leon Stenneth, Philip S. Yu, Peter C. Nelson
2013 J jnl
Dagstuhl Reports
Glenn Geers, Monika Sester, Stephan Winter, Ouri Wolfson
2013 C conf
TIME
Ouri Wolfson
2013 A* conf
ICDE
Shuo Ma, Yu Zheng, Ouri Wolfson
2013 conf
CTS@SIGSPATIAL
Roland Varriale, Shuo Ma, Ouri Wolfson
2012 conf
VANET@MOBICOM
Piotr Szczurek, Bo Xu, Ouri Wolfson, Jie Lin
2012 B conf
Intelligent Vehicles Symposium
Piotr Szczurek, Bo Xu, Ouri Wolfson, Jie Lin
2012 J jnl
IEEE Trans. Intell. Transp. Syst.
Piotr Szczurek, Bo Xu, Ouri Wolfson, Jie Lin
2012 B conf
MDM
Daniel Ayala, Ouri Wolfson, Bo Xu, Bhaskar DasGupta, Jie Lin
2012 B conf
MDM
Leon Stenneth, Ouri Wolfson, Bo Xu, Philip S. Yu
2012 conf
SIGSPATIAL/GIS
Daniel Ayala, Ouri Wolfson, Bo Xu, Bhaskar DasGupta, Jie Lin
2012 J jnl
NII Shonan Meet. Rep.
Ouri Wolfson, Monika Sester, Stephan Winter, Glenn Geers, Masaaki Tanizaki
2012 conf
SIGSPATIAL/GIS
Daniel Ayala, Ouri Wolfson, Bo Xu, Bhaskar DasGupta, Jie Lin
2011 conf
CTS@GIS
Shuo Ma, Ouri Wolfson, Jie Lin
2011 conf
FOMC
A. Prasad Sistla, Ouri Wolfson, Bo Xu, Naphtali Rishe
2011 C conf
WOWMOM
Piotr Szczurek, Bo Xu, Ouri Wolfson, Jie Lin
2011 conf
GIS
Daniel Ayala, Ouri Wolfson, Bo Xu, Bhaskar DasGupta, Jie Lin
2011 J jnl
J. Spatial Inf. Sci.
Stephan Winter, Monika Sester, Ouri Wolfson, Glenn Geers
2011 conf
GIS
Leon Stenneth, Ouri Wolfson, Philip S. Yu, Bo Xu
2010 conf
Computational Transportation Science
Glenn Geers, Monika Sester, Stephan Winter, Ouri Wolfson
2010 conf
Computational Transportation Science
Glenn Geers, Monika Sester, Stephan Winter, Ouri Wolfson
2010 B conf
SRDS
Bo Xu, Mark Linderman, Sanjay Madria, Ouri Wolfson
2010 ed.
Computational Transportation Science
Glenn Geers, Monika Sester, Stephan Winter, Ouri Wolfson
2010 B conf
SSDBM
Ariel Cary, Ouri Wolfson, Naphtali Rishe
2010 conf
Computational Transportation Science
Shuo Ma, Ouri Wolfson, Jie Lin
2010 conf
Vehicular Ad Hoc Networks
Piotr Szczurek, Bo Xu, Ouri Wolfson, Jie Lin, Naphtali Rishe
2010 B conf
WiMob
Leon Stenneth, Philip S. Yu, Ouri Wolfson
2010 C conf
MoMM
Bo Xu, Ouri Wolfson, Jie Lin
2010 conf
CSNDSP
Piotr Szczurek, Bo Xu, Ouri Wolfson, Jie Lin, Naphtali Rishe
2010 ch.
Handbook of Social Network Technologies
Lester Melendez, Ouri Wolfson, Malek Adjouadi, Naphtali Rishe
2010 J jnl
IEEE Data Eng. Bull.
Ouri Wolfson, Bo Xu
2010 J jnl
Int. J. Next Gener. Comput.
Piotr Szczurek, Bo Xu, Jie Lin, Ouri Wolfson
2010 J jnl
SIGMOD Rec.
Stephan Winter, Monika Sester, Ouri Wolfson, Glenn Geers
2010 J jnl
Int. J. Next Gener. Comput.
Oliviu Ghica, Goce Trajcevski, Ouri Wolfson, Ugo A. Buy, Peter Scheuermann, Fan Zhou, Dennis Vaccaro
2010 B conf
Mobile Data Management
Goce Trajcevski, Alok N. Choudhary, Ouri Wolfson, Li Ye, Gang Li
2009 ed.
GIS
Divyakant Agrawal, Walid G. Aref, Chang-Tien Lu, Mohamed F. Mokbel, Peter Scheuermann, Cyrus Shahabi, Ouri Wolfson
2009 B conf
EDBT
Joel Booth, A. Prasad Sistla, Ouri Wolfson, Isabel F. Cruz
2009 B conf
EDBT
Sergio Ilarri, Ouri Wolfson, Eduardo Mena, Arantza Illarramendi, A. Prasad Sistla
2009 ch.
Encyclopedia of Database Systems
Goce Trajcevski, Ouri Wolfson, Peter Scheuermann
2009 conf
GIS
Bo Xu, Fatemeh Vafaee, Ouri Wolfson
2009 ch.
Encyclopedia of Database Systems
Yan Luo, Ouri Wolfson
2009 conf
GIS-IWCTS
Piotr Szczurek, Bo Xu, Jie Lin, Ouri Wolfson
2009 J jnl
ACM Trans. Auton. Adapt. Syst.
Bo Xu, Ouri Wolfson, Channah Naiman
2009 ch.
Encyclopedia of Database Systems
Ouri Wolfson
2009 conf
GIS
Ouri Wolfson, Bo Xu, Hyung Ju Cho
2009 conf
ICSC
Joel Booth, Barbara Di Eugenio, Isabel F. Cruz, Ouri Wolfson
2008 conf
Uncertainty Management in Information Systems
Hidir Aras, Clemens Beckstein, Sonja Buchegger, Peter Dittrich, Thomas Hubauer, Friederike Klan, Birgitta König-Ries, Ouri Wolfson
2008 ch.
Encyclopedia of GIS
Yan Luo, Ouri Wolfson
2008 conf
GIS
Xinjuan Zhu, Bo Xu, Ouri Wolfson
2008 conf
ICDE Workshops
Yan Luo, Ouri Wolfson, Bo Xu
2007 conf
Enterprise Information Systems and Web Technologies
Armando Barreto, Ben Wongsaroj, Tariq M. King, Tuan Cameron, Suzette V. Diaz, Joseph Cilli, Abdul Muqueet, Sean D. Bullard, Malek Adjouadi, Ouri Wolfson, Scott Graham, Naphtali Rishe
2007 B conf
MDM
Ouri Wolfson, Bo Xu, Robert Michael Tanner
2007 conf
GIS
Masaaki Tanizaki, Ouri Wolfson
2007 conf
Enterprise Information Systems and Web Technologies
Naphtali Rishe, Ouri Wolfson, Ben Wongsaroj, Damian Small, Mauricio Alarcon, Naidel Lorenzo, Ricardo Koller, Sajib Kundu, Scott Graham, Kevin Alexander, Malek Adjouadi
2006 B conf
MDM
Ouri Wolfson
2006 conf
HICSS
Bo Xu, Ouri Wolfson, Naphtali Rishe
2006 B conf
MDM
Juhong Liu, Ouri Wolfson, Huabei Yin
2006 conf
MobiDE
Goce Trajcevski, Hu Cao, Peter Scheuermann, Ouri Wolfson, Dennis Vaccaro
2006 J jnl
Comput. Syst. Sci. Eng.
Tadao Murata, Jaegeol Yim, Huabei Yin, Ouri Wolfson
2006 conf
HICSS
Sergio Ilarri, Ouri Wolfson, Eduardo Mena, Arantza Illarramendi, Naphtali Rishe
2006 A conf
ICDCS
Ouri Wolfson, Bo Xu, Huabei Yin, Hu Cao
2006 A* conf
ICDE
Ouri Wolfson, Bo Xu, Huabei Yin, Hu Cao
2006 J jnl
VLDB J.
Hu Cao, Ouri Wolfson, Goce Trajcevski
2005 ch.
Spatial Databases
Ouri Wolfson, Eduardo Mena
2005 J jnl
IEEE Data Eng. Bull.
Hu Cao, Ouri Wolfson, Bo Xu, Huabei Yin
2005 A conf
ICDT
Hu Cao, Ouri Wolfson
2005 conf
ICEIS (1)
Naphtali Rishe, Armando Barreto, Maxim Chekmasov, Dmitry Vasilevsky, Scott Graham, Sonal Sood, Ouri Wolfson
2005 B conf
SSTD
A. Prasad Sistla, Ouri Wolfson, Bo Xu
2005 conf
Vehicular Ad Hoc Networks
Ouri Wolfson, Bo Xu, Huabei Yin
2005 C conf
W2GIS
Ouri Wolfson, Bo Xu, Huabei Yin, Naphtali Rishe
2005 conf
ICEIS (1)
Naphtali Rishe, Armando Barreto, Maxim Chekmasov, Dmitry Vasilevsky, Scott Graham, Sonal Sood, Ouri Wolfson
2005 conf
ICEIS (1)
Naphtali Rishe, Malek Adjouadi, Maxim Chekmasov, Dmitry Vasilevsky, Scott Graham, Dayanara Hernandez, Ouri Wolfson
2005 conf
ICEIS (1)
Naphtali Rishe, Malek Adjouadi, Maxim Chekmasov, Dmitry Vasilevsky, Scott Graham, Dayanara Hernandez, Ouri Wolfson
2004 B conf
SSDBM
Huabei Yin, Ouri Wolfson
2004 B conf
SSDBM
Ouri Wolfson, Bo Xu, A. Prasad Sistla
2004 B conf
EDBT
Goce Trajcevski, Peter Scheuermann, Ouri Wolfson, Nimesh Nedungadi
2004 conf
DBISP2P
Bo Xu, Ouri Wolfson
2004 conf
DBISP2P
Ouri Wolfson, Bo Xu, Huabei Yin
2004 J jnl
ACM Trans. Database Syst.
Goce Trajcevski, Ouri Wolfson, Klaus H. Hinrichs, Sam Chamberlain
2004 conf
DEXA Workshops
Ouri Wolfson, Bo Xu
2004 B conf
Mobile Data Management
Bo Xu, Aris M. Ouksel, Ouri Wolfson
2003 B conf
SSTD
Ouri Wolfson, Huabei Yin
2003 J jnl
Mob. Networks Appl.
Kian-Lee Tan, Ouri Wolfson
2003 conf
DIALM-POMC
Hu Cao, Ouri Wolfson, Goce Trajcevski
2003 conf
MobiDE
Bo Xu, Ouri Wolfson
2002 J jnl
ACM Comput. Surv.
Pankaj K. Agarwal, Leonidas J. Guibas, Herbert Edelsbrunner, Jeff Erickson, Michael Isard, Sariel Har-Peled, John Hershberger, Christian S. Jensen, Lydia E. Kavraki, Patrice Koehl, Ming C. Lin, Dinesh Manocha, Dimitris N. Metaxas, Brian Mirtich, David M. Mount, S. Muthukrishnan, Dinesh K. Pai, Elisha Sacks, Jack Snoeyink, Subhash Suri, Ouri Wolfson
2002 J jnl
Mob. Networks Appl.
Bo Xu, Ouri Wolfson, Sam Chamberlain, Naphtali Rishe
2002 B conf
EDBT
Ouri Wolfson, Hu Cao, Hai Lin, Goce Trajcevski, Fengli Zhang, Naphtali Rishe
2002 conf
ICEIS
Goce Trajcevski, Ouri Wolfson, Hu Cao, Hai Lin, Fengli Zhang, Naphtali Rishe
2002 conf
NGITS
Ouri Wolfson
2002 ed.
Workshop Mobile Commerce
Marisa S. Viveros, Hui Lei, Ouri Wolfson
2002 conf
DEXA Workshops
Goce Trajcevski, Ouri Wolfson, Bo Xu, Peter C. Nelson
2002 J jnl
SIGMOD Rec.
Birgitta König-Ries, Kia Makki, S. A. M. Makki, Charles E. Perkins, Niki Pissinou, Peter L. Reiher, Peter Scheuermann, Jari Veijalainen, Ouri Wolfson
2002 J jnl
SIGMOD Rec.
Isabel F. Cruz, Ashfaq A. Khokhar, Bing Liu, A. Prasad Sistla, Ouri Wolfson, Clement T. Yu
2002 B conf
EDBT
Goce Trajcevski, Ouri Wolfson, Fengli Zhang, Sam Chamberlain
2001 B conf
SSTD
Michalis Vazirgiannis, Ouri Wolfson
2001 conf
ISAS-SCI (1)
Martha E. Gutierrez, Naphtali Rishe, Scott Graham, Ginanina G. Rocha, Xiangyu Ye, Ouri Wolfson
2001 conf
ISAS-SCI (1)
Artyom Shaposhnikov, Naphtali Rishe, Daniel Mendez, Ouri Wolfson
2001 A conf
ICDT
Bo Xu, Ouri Wolfson, Sam Chamberlain
2001 conf
Infrastructure for Mobile and Wireless Systems
Ouri Wolfson, Sam Chamberlain, Konstantinos Kalpakis, Yelena Yesha
2001 J jnl
IEEE Trans. Parallel Distributed Syst.
Konstantinos Kalpakis, Koustuv Dasgupta, Ouri Wolfson
2001 conf
Infrastructure for Mobile and Wireless Systems
Birgitta König-Ries, Kia Makki, S. A. M. Makki, Charles E. Perkins, Niki Pissinou, Peter L. Reiher, Peter Scheuermann, Jari Veijalainen, Alexander L. Wolf, Ouri Wolfson
2001 C conf
IDEAS
Konstantinos Kalpakis, Koustuv Dasgupta, Ouri Wolfson
2000 A* conf
ICDE
Ouri Wolfson, Bo Xu, Sam Chamberlain
2000 J jnl
ACM SIGMOD Digit. Rev.
Ouri Wolfson
2000 J jnl
ACM SIGMOD Digit. Rev.
Ouri Wolfson
2000 J jnl
ACM SIGMOD Digit. Rev.
Ouri Wolfson
2000 J jnl
ACM SIGMOD Digit. Rev.
Ouri Wolfson
2000 conf
ACM-GIS
Bo Xu, Ouri Wolfson, Sam Chamberlain
1999 conf
SPIRE/CRIWG
Ana Lelescu, Ouri Wolfson, Bo Xu
1999 conf
SIGMOD Conference
Ouri Wolfson, A. Prasad Sistla, Bo Xu, Jutai Zhou, Sam Chamberlain
1999 A conf
ICDT
Ouri Wolfson, Liqin Jiang, A. Prasad Sistla, Sam Chamberlain, Naphtali Rishe, Minglin Deng
1999 J jnl
ACM Comput. Surv.
Son Dao, Eddie C. Shek, Asha Vellaikal, Richard R. Muntz, Lixia Zhang, Miodrag Potkonjak, Ouri Wolfson
1999 conf
NGITS
Ouri Wolfson, A. Prasad Sistla, Bo Xu, Jutai Zhou, Sam Chamberlain, Yelena Yesha, Naphtali Rishe
1999 J jnl
Distributed Parallel Databases
Ouri Wolfson, A. Prasad Sistla, Sam Chamberlain, Yelena Yesha
1998 J jnl
Comput. J.
Jamel Tayeb, Özgür Ulusoy, Ouri Wolfson
1998 J jnl
IEEE Trans. Parallel Distributed Syst.
Ouri Wolfson, Yixiu Huang
1998 A* conf
ICDE
Ouri Wolfson, Sam Chamberlain, Son Dao, Liqin Jiang, Gisela Mendez
1998 J jnl
IEEE Trans. Parallel Distributed Syst.
A. Prasad Sistla, Ouri Wolfson, Yixiu Huang
1998 B conf
SSDBM
Ouri Wolfson, Bo Xu, Sam Chamberlain, Liqin Jiang
1998 J jnl
ACM Trans. Database Syst.
A. Prasad Sistla, Ouri Wolfson, Yelena Yesha, Robert H. Sloan
1997 J jnl
ACM Trans. Database Syst.
Ouri Wolfson, Sushil Jajodia, Yixiu Huang
1997 J jnl
Mob. Networks Appl.
Ouri Wolfson
1997 A* conf
ICDE
A. Prasad Sistla, Ouri Wolfson, Sam Chamberlain, Son Dao
1997 conf
Temporal Databases, Dagstuhl
A. Prasad Sistla, Ouri Wolfson, Sam Chamberlain, Son Dao
1996 conf
RIDE-NDS
A. Prasad Sistla, Ouri Wolfson, Son Dao, Kailash Narayanan, Ramya Raj
1996 J jnl
Distributed Syst. Eng.
Lucian Russell, Ouri Wolfson, Clement T. Yu
1996 J jnl
ACM Comput. Surv.
Ouri Wolfson
1995 J jnl
Inf. Process. Lett.
Ouri Wolfson, Sushil Jajodia
1995 conf
SIGMOD Conference
A. Prasad Sistla, Ouri Wolfson
1995 conf
ARTDB
Minglin Deng, A. Prasad Sistla, Ouri Wolfson
1995 J jnl
IEEE Trans. Knowl. Data Eng.
A. Prasad Sistla, Ouri Wolfson
1995 J jnl
SIGMOD Rec.
Ouri Wolfson, A. Prasad Sistla, Son Dao, Kailash Narayanan, Ramya Raj
1994 conf
SIGMOD Conference
Yixiu Huang, A. Prasad Sistla, Ouri Wolfson
1994 conf
PDIS
Yixiu Huang, Robert H. Sloan, Ouri Wolfson
1994 A* conf
ICDE
Yixiu Huang, Ouri Wolfson
1993 A* conf
ICDE
Yixiu Huang, Ouri Wolfson
1993 conf
PDIS
Ouri Wolfson, Weining Zhang, Harish Butani, Akira Kawaguchi, Kui W. Mok
1993 J jnl
IEEE Trans. Knowl. Data Eng.
Ouri Wolfson, Aya Ozeri
1993 J jnl
J. Comput. Syst. Sci.
Simona Rabinovici-Cohen, Ouri Wolfson
1992 conf
Workshop on the Management of Replicated Data
Ouri Wolfson, Sushil Jajodia
1992 A* conf
PODS
Ouri Wolfson, Sushil Jajodia
1992 J jnl
J. Intell. Inf. Syst.
Hasanat M. Dewan, David Ohsie, Salvatore J. Stolfo, Ouri Wolfson, Sushil Da Silva
1992 J jnl
J. Log. Program.
Ouri Wolfson
1992 J jnl
Int. J. Parallel Program.
Ouri Wolfson, Weining Zhang, Harish Butani, Akira Kawaguchi, Kui W. Mok
1992 J jnl
IEEE Data Eng. Bull.
A. Prasad Sistla, Ouri Wolfson
1991 J jnl
J. Log. Program.
Ouri Wolfson, Abraham Silberschatz
1991 conf
SIGMOD Conference
Ouri Wolfson, Hasanat M. Dewan, Salvatore J. Stolfo, Yechiam Yemini
1991 J jnl
IEEE Trans. Software Eng.
Ouri Wolfson, Soumitra Sengupta, Yechiam Yemini
1991 J jnl
IEEE Netw.
Alexander Dupay, Soumitra Sengupta, Ouri Wolfson, Yechiam Yemini
1991 conf
PDIS
Yechiam Yemini, Ouri Wolfson
1991 J jnl
J. Parallel Distributed Comput.
Salvatore J. Stolfo, Ouri Wolfson, Philip K. Chan, Hasanat M. Dewan, Leland Woodbury, Jason S. Glazier, David Ohsie
1991 J jnl
SIAM J. Comput.
Ouri Wolfson, Adrian Segall
1991 J jnl
ACM Trans. Database Syst.
Ouri Wolfson, Amir Milo
1991 conf
ICPP (2)
Salvatore J. Stolfo, Hasanat M. Dewan, Ouri Wolfson
1990 A conf
ICDT
Ouri Wolfson
1990 conf
SIGMOD Conference
Ouri Wolfson, Aya Ozeri
1989 J jnl
IEEE Data Eng. Bull.
Ouri Wolfson
1989 A* conf
PODS
Simona Rabinovici-Cohen, Ouri Wolfson
1988 conf
SIGMOD Conference
Ouri Wolfson, Abraham Silberschatz
1988 A* conf
ICDE
Adrian Segall, Ouri Wolfson
1988 B conf
EDBT
Amir Milo, Ouri Wolfson
1988 conf
DPDS
Ouri Wolfson
1987 J jnl
Inf. Process. Lett.
Ouri Wolfson
1987 J jnl
ACM Trans. Database Syst.
Ouri Wolfson
1987 A* conf
ICDE
Ouri Wolfson
1987 J jnl
J. Algorithms
Ouri Wolfson
1987 A* conf
PODS
Adrian Segall, Ouri Wolfson
1986 A conf
ICDT
Ouri Wolfson
1986 J jnl
J. Algorithms
Ouri Wolfson
1986 J jnl
J. Comput. Syst. Sci.
Ouri Wolfson, Mihalis Yannakakis
1985 A* conf
PODS
Ouri Wolfson, Mihalis Yannakakis
1984
Concurrency Control using Locks in Distributed Databases.
Ouri Wolfson
1984 A* conf
ICDE
Ouri Wolfson
tests/integration/test_elf_extractors.py
← Index tests/integration/test_elf_extractors.py python
"""
Integration tests for ELF-specific extractors.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock

pytestmark = [pytest.mark.integration, pytest.mark.elf]


# ============================================================================
# ELFFeaturesExtractor Tests
# ============================================================================

class TestELFFeaturesExtractor:
    """Tests for ELFFeaturesExtractor class."""

    def test_extract_valid_elf(self, elf_binary_path, mock_logger):
        """Test extracting features from valid ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.models.dataclasses import ELFFeatures

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, ELFFeatures)

    def test_extract_header_data(self, elf_binary_path, mock_logger):
        """Test ELF header data extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Check header fields
            assert isinstance(result.ei_class, int)
            assert isinstance(result.ei_data, int)
            assert isinstance(result.e_type, int)
            assert isinstance(result.e_machine, int)
            assert isinstance(result.e_entry, int)

    def test_extract_human_readable_strings(self, elf_binary_path, mock_logger):
        """Test human-readable string fields."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.ei_class_str in ['32-bit', '64-bit', 'unknown']
            assert result.ei_data_str in ['Little-endian', 'Big-endian', 'unknown']
            assert result.e_type_str is not None
            assert result.e_machine_str is not None

    def test_extract_security_properties(self, elf_binary_path, mock_logger):
        """Test security property extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Security flags should be 0 or 1
            assert result.is_pie in [0, 1]
            assert result.has_canary in [0, 1]
            assert result.has_nx in [0, 1]
            assert result.has_relro in [0, 1]
            assert result.has_fortify in [0, 1]

    def test_extract_counts(self, elf_binary_path, mock_logger):
        """Test section/segment/symbol counts."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.number_of_segments >= 0
            assert result.number_of_sections >= 0
            assert result.number_of_symbols >= 0
            assert result.number_of_dynamic_symbols >= 0
            assert result.number_of_relocations >= 0
            assert result.number_of_dependencies >= 0

    def test_extract_build_info(self, elf_binary_path, mock_logger):
        """Test build information extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Build ID may or may not be present
            if result.build_id is not None:
                assert isinstance(result.build_id, str)
            assert result.gnu_hash_present in [0, 1]
            assert result.has_debug_info in [0, 1]

    def test_extract_invalid_elf(self, pe_binary_path, mock_logger):
        """Test extraction with non-ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(pe_binary_path, mock_logger)

            result = extractor.extract()

            # Should return None for invalid ELF
            assert result is None


# ============================================================================
# ELFSectionExtractor Tests
# ============================================================================

class TestELFSectionExtractor:
    """Tests for ELFSectionExtractor class."""

    def test_extract_sections(self, elf_binary_path, mock_logger):
        """Test section extraction."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, list)
            assert len(result) > 0

    def test_section_properties(self, elf_binary_path, mock_logger):
        """Test section property extraction."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.models.dataclasses import ELFSection

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                section = result[0]
                assert isinstance(section, ELFSection)
                assert section.section_name is not None
                assert isinstance(section.section_type, int)
                assert isinstance(section.section_flags, int)
                assert section.section_entropy >= 0

    def test_section_hashes(self, elf_binary_path, mock_logger):
        """Test section hash computation."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                for section in result:
                    if section.section_sha256:
                        assert len(section.section_sha256) == 64
                    if section.section_md5:
                        assert len(section.section_md5) == 32


# ============================================================================
# ELFSegmentExtractor Tests
# ============================================================================

class TestELFSegmentExtractor:
    """Tests for ELFSegmentExtractor class."""

    def test_extract_segments(self, elf_binary_path, mock_logger):
        """Test segment extraction."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, list)

    def test_segment_properties(self, elf_binary_path, mock_logger):
        """Test segment property extraction."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor
        from redb.models.dataclasses import ELFSegment

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                segment = result[0]
                assert isinstance(segment, ELFSegment)
                assert isinstance(segment.segment_type, int)
                assert isinstance(segment.segment_flags, int)


# ============================================================================
# ELFSymbolExtractor Tests
# ============================================================================

class TestELFSymbolExtractor:
    """Tests for ELFSymbolExtractor class."""

    def test_extract_symbols(self, elf_binary_path, mock_logger):
        """Test symbol extraction."""
        from redb.extractors.elf_extractors.elf_symbols import ELFSymbolExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSymbolExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if stripped
            if result is not None:
                assert isinstance(result, list)

    def test_symbol_properties(self, elf_binary_path, mock_logger):
        """Test symbol property extraction."""
        from redb.extractors.elf_extractors.elf_symbols import ELFSymbolExtractor
        from redb.models.dataclasses import ELFSymbol

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSymbolExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                symbol = result[0]
                assert isinstance(symbol, ELFSymbol)
                assert symbol.symbol_name is not None
                assert isinstance(symbol.symbol_type, int)
                assert isinstance(symbol.symbol_bind, int)


# ============================================================================
# ELFImportExtractor Tests
# ============================================================================

class TestELFImportExtractor:
    """Tests for ELFImportExtractor class."""

    def test_extract_imports(self, elf_binary_path, mock_logger):
        """Test import extraction."""
        from redb.extractors.elf_extractors.elf_imports import ELFImportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFImportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no imports
            if result is not None:
                assert hasattr(result, 'elf_imports_total')

    def test_import_functions(self, elf_binary_path, mock_logger):
        """Test import function extraction."""
        from redb.extractors.elf_extractors.elf_imports import ELFImportExtractor
        from redb.models.dataclasses import ELFImport

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFImportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None:
                assert isinstance(result, ELFImport)
                assert isinstance(result.elf_imports_total, int)


# ============================================================================
# ELFExportExtractor Tests
# ============================================================================

class TestELFExportExtractor:
    """Tests for ELFExportExtractor class."""

    def test_extract_exports(self, elf_binary_path, mock_logger):
        """Test export extraction."""
        from redb.extractors.elf_extractors.elf_exports import ELFExportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFExportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no exports
            if result is not None:
                assert hasattr(result, 'elf_exports_total')

    def test_export_functions(self, elf_binary_path, mock_logger):
        """Test export function extraction."""
        from redb.extractors.elf_extractors.elf_exports import ELFExportExtractor
        from redb.models.dataclasses import ELFExport

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFExportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None:
                assert isinstance(result, ELFExport)


# ============================================================================
# ELFDependencyExtractor Tests
# ============================================================================

class TestELFDependencyExtractor:
    """Tests for ELFDependencyExtractor class."""

    def test_extract_dependencies(self, elf_binary_path, mock_logger):
        """Test dependency extraction."""
        from redb.extractors.elf_extractors.elf_dependencies import ELFDependencyExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFDependencyExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no dependencies
            if result is not None:
                assert isinstance(result, list)

    def test_dependency_properties(self, elf_binary_path, mock_logger):
        """Test dependency property extraction."""
        from redb.extractors.elf_extractors.elf_dependencies import ELFDependencyExtractor
        from redb.models.dataclasses import ELFDependency

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFDependencyExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                dep = result[0]
                assert isinstance(dep, ELFDependency)
                assert dep.dependency_name is not None


# ============================================================================
# ELFRelocationExtractor Tests
# ============================================================================

class TestELFRelocationExtractor:
    """Tests for ELFRelocationExtractor class."""

    def test_extract_relocations(self, elf_binary_path, mock_logger):
        """Test relocation extraction."""
        from redb.extractors.elf_extractors.elf_relocations import ELFRelocationExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFRelocationExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no relocations
            if result is not None:
                assert isinstance(result, list)

    def test_relocation_properties(self, elf_binary_path, mock_logger):
        """Test relocation property extraction."""
        from redb.extractors.elf_extractors.elf_relocations import ELFRelocationExtractor
        from redb.models.dataclasses import ELFRelocation

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFRelocationExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                reloc = result[0]
                assert isinstance(reloc, ELFRelocation)
                assert isinstance(reloc.relocation_offset, int)
                assert isinstance(reloc.relocation_type, int)


# ============================================================================
# ELFNotesExtractor Tests
# ============================================================================

class TestELFNotesExtractor:
    """Tests for ELFNotesExtractor class."""

    def test_extract_notes(self, elf_binary_path, mock_logger):
        """Test notes extraction."""
        from redb.extractors.elf_extractors.elf_notes import ELFNotesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFNotesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no notes
            if result is not None:
                assert isinstance(result, list)

    def test_note_properties(self, elf_binary_path, mock_logger):
        """Test note property extraction."""
        from redb.extractors.elf_extractors.elf_notes import ELFNotesExtractor
        from redb.models.dataclasses import ELFNote

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFNotesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                note = result[0]
                assert isinstance(note, ELFNote)
                assert note.note_name is not None
                assert isinstance(note.note_type, int)


# ============================================================================
# Integration Tests
# ============================================================================

class TestELFExtractorIntegration:
    """Integration tests for ELF extractors."""

    def test_all_extractors_valid_elf(self, elf_binary_path, mock_logger):
        """Test all ELF extractors with valid ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)
            segments_ext = ELFSegmentExtractor(elf_binary_path, mock_logger)

            features_result = features_ext.extract()
            sections_result = sections_ext.extract()
            segments_result = segments_ext.extract()

            # All should extract something
            assert features_result is not None
            assert sections_result is not None
            assert segments_result is not None

    def test_hash_consistency_across_extractors(self, elf_binary_path, mock_logger):
        """Test that hashes are consistent across all extractors."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)

            # Hashes should be the same
            assert features_ext.sha256 == sections_ext.sha256
            assert features_ext.md5 == sections_ext.md5
            assert features_ext.sha1 == sections_ext.sha1

    def test_clickhouse_tables_unique(self, elf_binary_path, mock_logger):
        """Test that each extractor has a unique ClickHouse table."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)
            segments_ext = ELFSegmentExtractor(elf_binary_path, mock_logger)

            tables = {
                features_ext.get_clickhouse_table(),
                sections_ext.get_clickhouse_table(),
                segments_ext.get_clickhouse_table(),
            }

            # All tables should be unique
            assert len(tables) == 3


# ============================================================================
# Advanced Binary Tests
# ============================================================================

class TestELFAdvancedBinary:
    """Tests using the hello_advanced binary."""

    def test_advanced_features_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test feature extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.number_of_sections > 0

    def test_advanced_sections_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test section extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert len(result) > 0

            # Check for common ELF sections
            section_names = [s.section_name for s in result]
            # Most ELF files have .text section
            assert any('.text' in name for name in section_names)

    def test_advanced_segments_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test segment extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert len(result) > 0


# ============================================================================
# Export Data Tests
# ============================================================================

class TestELFExtractorExportData:
    """Tests for export data preparation."""

    def test_features_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for features."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            assert result is not None
            data, column_names, column_type_names = result

            assert 'sha256' in column_names
            assert 'ei_class' in column_names
            assert 'e_machine' in column_names
            assert 'is_pie' in column_names

    def test_sections_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for sections."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            if result is not None:
                data, column_names, column_type_names = result
                assert 'section_name' in column_names
                assert 'section_entropy' in column_names

    def test_segments_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for segments."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            if result is not None:
                data, column_names, column_type_names = result
                assert 'segment_type' in column_names