LogicBlox: Difference between revisions
Appearance
Content deleted Content added
Added chain of acquisitions from other companies |
m Formatted references for readability; first step to their correction and update |
||
Line 11: | Line 11: | ||
}} |
}} |
||
The '''LogicBlox system''' is a [[Commercial software|commercial]], [[Declarative programming|declarative]], [[Incremental computing|incremental]] [[logic programming language]] and [[deductive database]] inspired by [[Datalog]]. The LogiQL programming language extends Datalog with several features, including stratified negation, aggregation, and a module system. LogicBlox has been used to build [[Pointer analysis|pointer analyses]] for [[Java (programming language)|Java]].<ref>{{Cite book |
The '''LogicBlox system''' is a [[Commercial software|commercial]], [[Declarative programming|declarative]], [[Incremental computing|incremental]] [[logic programming language]] and [[deductive database]] inspired by [[Datalog]]. The LogiQL programming language extends Datalog with several features, including stratified negation, aggregation, and a module system. LogicBlox has been used to build [[Pointer analysis|pointer analyses]] for [[Java (programming language)|Java]].<ref>{{Cite book |
||
|last1 = Antoniadis |
|||
|first1 = Tony |
|||
|last2 = Triantafyllou |
|||
|first2 = Konstantinos |
|||
|last3 = Smaragdakis |
|||
|first3 = Yannis |
|||
|title = Proceedings of the 6th ACM SIGPLAN International Workshop on State of the Art in Program Analysis |
|||
|chapter = Porting doop to Soufflé |
|||
|date = 2017-06-18 |
|||
|chapter-url = https://doi.org/10.1145/3088515.3088522 |
|||
|series = SOAP 2017 |
|||
|location = New York, NY, USA |
|||
|publisher = Association for Computing Machinery |
|||
|pages = 25–30 |
|||
|doi = 10.1145/3088515.3088522 |
|||
|isbn = 978-1-4503-5072-3 |
|||
|s2cid = 3074689 |
|||
}}</ref> |
|||
On December 3, 2014 Predictix acquired LogicBlox.<ref>{{Cite web |
On December 3, 2014 Predictix acquired LogicBlox.<ref>{{Cite web |
||
|title = Predictix Acquires LogicBlox |
|||
|url = https://mergr.com/predictix-acquires-logicblox |
|||
|access-date = 2024-06-08 |
|||
|website = mergr.com |
|||
}}</ref> |
|||
On June 28, 2016 Infor acquires Predictix.<ref>{{Cite web |
|||
|title = Infor Acquires Predictix |
|||
|url = https://finance.yahoo.com/news/infor-acquires-predictix-120000577.html |
|||
|access-date = 2024-06-08 |
|||
|website = finance.yahoo.com |
|||
}}</ref> |
|||
== Features == |
== Features == |
||
* [[Stratification (mathematics)|Stratified]] negation<ref>{{Cite web |
* [[Stratification (mathematics)|Stratified]] negation<ref>{{Cite web |
||
|title = 6.4. Negation - LogicBlox 3.10 Reference Manual |
|||
|url = https://developer.logicblox.com/content/docs/core-reference/webhelp/formula-negation.html |
|||
|access-date = 2023-03-04 |
|||
|website = developer.logicblox.com |
|||
}} |
|||
"'Additionally, negation is only allowed when the platform can determine a way to stratify all rules and constraints that use negation.'" |
|||
</ref> |
|||
* [[Aggregate function|Aggregate functions]]<ref>{{Cite web |
* [[Aggregate function|Aggregate functions]]<ref>{{Cite web |
||
|title = Chapter 7. Rules - LogicBlox 3.10 Reference Manual |
|||
|url = https://developer.logicblox.com/content/docs/core-reference/webhelp/rules.html#rules-aggregation |
|||
|access-date = 2023-03-04 |
|||
|website = developer.logicblox.com |
|||
}}</ref> |
|||
* Evaluation using a novel worst-case optimal [[join algorithm]].<ref>{{Cite arXiv |
|||
* Evaluation using a novel worst-case optimal [[join algorithm]].<ref>{{Cite arXiv |last=Veldhuizen |first=Todd L. |date=2013-12-20 |title=Leapfrog Triejoin: a worst-case optimal join algorithm |class=cs.DB |eprint=1210.0481 }}</ref><ref>{{Cite book |last1=Aberger |first1=Christopher R. |last2=Tu |first2=Susan |last3=Olukotun |first3=Kunle |last4=Ré |first4=Christopher |title=2016 IEEE 32nd International Conference on Data Engineering Workshops (ICDEW) |chapter=Old techniques for new join algorithms: A case study in RDF processing |date=May 2016 |chapter-url=https://ieeexplore.ieee.org/document/7495625 |pages=97–102 |doi=10.1109/ICDEW.2016.7495625|arxiv=1602.03557 |isbn=978-1-5090-2109-3 |s2cid=10016546 }}</ref> |
|||
|last = Veldhuizen |
|||
|first = Todd L. |
|||
|date = 2013-12-20 |
|||
|title = Leapfrog Triejoin: a worst-case optimal join algorithm |
|||
|class = cs.DB |
|||
|eprint = 1210.0481 |
|||
}}</ref> |
|||
<ref>{{Cite book |
|||
|last1 = Aberger |
|||
|first1 = Christopher R. |
|||
|last2 = Tu |
|||
|first2 = Susan |
|||
|last3 = Olukotun |
|||
|first3 = Kunle |
|||
|last4 = Ré |
|||
|first4 = Christopher |
|||
|title = 2016 IEEE 32nd International Conference on Data Engineering Workshops (ICDEW) |
|||
|chapter = Old techniques for new join algorithms: A case study in RDF processing |
|||
|date = May 2016 |
|||
|chapter-url = https://ieeexplore.ieee.org/document/7495625 |
|||
|pages = 97–102 |
|||
|doi = 10.1109/ICDEW.2016.7495625 |
|||
|arxiv = 1602.03557 |
|||
|isbn = 978-1-5090-2109-3 |
|||
|s2cid = 10016546 |
|||
}}</ref> |
|||
* [[Data constructor]]s |
* [[Data constructor]]s |
||
* Static typing<ref>{{Cite book |
|||
* Static typing<ref>{{Cite book |last1=Zook |first1=David |last2=Pasalic |first2=Emir |last3=Sarna-Starosta |first3=Beata |date=2009 |editor-last=Gill |editor-first=Andy |editor2-last=Swift |editor2-first=Terrance |title=Typed Datalog |url=https://link.springer.com/chapter/10.1007/978-3-540-92995-6_12 |journal=Practical Aspects of Declarative Languages |series=Lecture Notes in Computer Science |volume=5418 |language=en |location=Berlin, Heidelberg |publisher=Springer |pages=168–182 |doi=10.1007/978-3-540-92995-6_12 |isbn=978-3-540-92995-6}} "Our type system has been implemented as a part of the LogicBlox development environment."</ref> |
|||
|last1 = Zook |
|||
|first1 = David |
|||
|last2 = Pasalic |
|||
|first2 = Emir |
|||
|last3 = Sarna-Starosta |
|||
|first3 = Beata |
|||
|date = 2009 |
|||
|editor-last = Gill |
|||
|editor-first = Andy |
|||
|editor2-last = Swift |
|||
|editor2-first = Terrance |
|||
|title = Typed Datalog |
|||
|url = https://link.springer.com/chapter/10.1007/978-3-540-92995-6_12 |
|||
|journal = Practical Aspects of Declarative Languages |
|||
|series = Lecture Notes in Computer Science |
|||
|volume = 5418 |
|||
|language = en |
|||
|location = Berlin, Heidelberg |
|||
|publisher = Springer |
|||
|pages = 168–182 |
|||
|doi = 10.1007/978-3-540-92995-6_12 |
|||
|isbn = 978-3-540-92995-6 |
|||
}} |
|||
"'Our type system has been implemented as a part of the LogicBlox development environment.'" |
|||
</ref> |
|||
* A [[Modular programming|module]] system |
* A [[Modular programming|module]] system |
||
* [[Probabilistic programming]] features |
* [[Probabilistic programming]] features |
||
* [[Incremental computing|Incremental computation]]<ref>{{Cite book |
|||
* [[Incremental computing|Incremental computation]]<ref>{{Cite book |last1=Singh |first1=Shikha |last2=Madaminov |first2=Sergey |last3=Bender |first3=Michael A. |last4=Ferdman |first4=Michael |last5=Johnson |first5=Ryan |last6=Moseley |first6=Benjamin |last7=Ngo |first7=Hung |last8=Nguyen |first8=Dung |last9=Olesen |first9=Soeren |last10=Stirewalt |first10=Kurt |last11=Washburn |first11=Geoffrey |title=2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS) |chapter=A Scheduling Approach to Incremental Maintenance of Datalog Programs |date=May 2020 |chapter-url=https://ieeexplore.ieee.org/document/9139794 |pages=864–873 |doi=10.1109/IPDPS47924.2020.00093|isbn=978-1-7281-6876-0 |s2cid=216513350 }}</ref> |
|||
|last1 = Singh |
|||
* Debugging with provenance<ref>{{Cite book |last1=Köhler |first1=Sven |last2=Ludäscher |first2=Bertram |last3=Smaragdakis |first3=Yannis |date=2012 |editor-last=Barceló |editor-first=Pablo |editor2-last=Pichler |editor2-first=Reinhard |title=Declarative Datalog Debugging for Mere Mortals |url=https://link.springer.com/chapter/10.1007/978-3-642-32925-8_12 |journal=Datalog in Academia and Industry |series=Lecture Notes in Computer Science |volume=7494 |language=en |location=Berlin, Heidelberg |publisher=Springer |pages=111–122 |doi=10.1007/978-3-642-32925-8_12 |isbn=978-3-642-32925-8}}</ref><ref>{{Cite web |title=Chapter 17. Provenance |url=https://developer.logicblox.com/content/docs/core-reference/webhelp/provenance.html |access-date=2023-03-11 |website=LogicBlox 3.10 Reference Manual}}</ref> |
|||
|first1 = Shikha |
|||
|last2 = Madaminov |
|||
|first2 = Sergey |
|||
|last3 = Bender |
|||
|first3 = Michael A. |
|||
|last4 = Ferdman |
|||
|first4 = Michael |
|||
|last5 = Johnson |
|||
|first5 = Ryan |
|||
|last6 = Moseley |
|||
|first6 = Benjamin |
|||
|last7 = Ngo |
|||
|first7 = Hung |
|||
|last8 = Nguyen |
|||
|first8 = Dung |
|||
|last9 = Olesen |
|||
|first9 = Soeren |
|||
|last10 = Stirewalt |
|||
|first10 = Kurt |
|||
|last11 = Washburn |
|||
|first11 = Geoffrey |
|||
|title = 2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS) |
|||
|chapter = A Scheduling Approach to Incremental Maintenance of Datalog Programs |
|||
|date = May 2020 |
|||
|chapter-url = https://ieeexplore.ieee.org/document/9139794 |
|||
|pages = 864–873 |
|||
|doi = 10.1109/IPDPS47924.2020.00093|isbn=978-1-7281-6876-0 |
|||
|s2cid = 216513350 |
|||
}}</ref> |
|||
* Debugging with provenance<ref>{{Cite book |
|||
|last1 = Köhler |
|||
|first1 = Sven |
|||
|last2 = Ludäscher |
|||
|first2 = Bertram |
|||
|last3 = Smaragdakis |
|||
|first3 = Yannis |
|||
|date = 2012 |
|||
|editor-last = Barceló |
|||
|editor-first = Pablo |
|||
|editor2-last = Pichler |
|||
|editor2-first = Reinhard |
|||
|title = Declarative Datalog Debugging for Mere Mortals |
|||
|url = https://link.springer.com/chapter/10.1007/978-3-642-32925-8_12 |
|||
|journal = Datalog in Academia and Industry |
|||
|series = Lecture Notes in Computer Science |
|||
|volume = 7494 |
|||
|language = en |
|||
|location = Berlin, Heidelberg |
|||
|publisher = Springer |
|||
|pages = 111–122 |
|||
|doi = 10.1007/978-3-642-32925-8_12 |
|||
|isbn = 978-3-642-32925-8 |
|||
}}</ref> |
|||
<ref>{{Cite web |
|||
|title = Chapter 17. Provenance |
|||
|url = https://developer.logicblox.com/content/docs/core-reference/webhelp/provenance.html |
|||
|access-date = 2023-03-11 |
|||
|website = LogicBlox 3.10 Reference Manual |
|||
}}</ref> |
|||
== References == |
== References == |
||
Line 32: | Line 183: | ||
=== Sources === |
=== Sources === |
||
* {{Cite book |
|||
* {{Cite book |last1=Green |first1=Todd J. |last2=Aref |first2=Molham |last3=Karvounarakis |first3=Grigoris |date=2012 |editor-last=Barceló |editor-first=Pablo |editor2-last=Pichler |editor2-first=Reinhard |title=LogicBlox, Platform and Language: A Tutorial |url=https://link.springer.com/chapter/10.1007/978-3-642-32925-8_1 |journal=Datalog in Academia and Industry |series=Lecture Notes in Computer Science |volume=7494 |language=en |location=Berlin, Heidelberg |publisher=Springer |pages=1–8 |doi=10.1007/978-3-642-32925-8_1 |isbn=978-3-642-32925-8}} |
|||
|last1 = Green |
|||
* {{Cite book |last1=Aref |first1=Molham |last2=ten Cate |first2=Balder |last3=Green |first3=Todd J. |last4=Kimelfeld |first4=Benny |last5=Olteanu |first5=Dan |last6=Pasalic |first6=Emir |last7=Veldhuizen |first7=Todd L. |last8=Washburn |first8=Geoffrey |title=Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data |chapter=Design and Implementation of the LogicBlox System |date=2015-05-27 |chapter-url=https://doi.org/10.1145/2723372.2742796 |series=SIGMOD '15 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=1371–1382 |doi=10.1145/2723372.2742796 |isbn=978-1-4503-2758-9|s2cid=2161070 }} |
|||
|first1 = Todd J. |
|||
* {{Cite book |last1=Kifer |first1=Michael |url=https://books.google.com/books?id=q6dwDwAAQBAJ&dq=%22LogicBlox%22+-wikipedia&pg=PA335 |title=Declarative Logic Programming: Theory, Systems, and Applications |last2=Liu |first2=Yanhong Annie |date=2018-09-19 |publisher=Morgan & Claypool |isbn=978-1-970001-97-6 |language=en|pages=345}} |
|||
|last2 = Aref |
|||
|first2 = Molham |
|||
|last3 = Karvounarakis |
|||
|first3 = Grigoris |
|||
|date = 2012 |
|||
|editor-last = Barceló |
|||
|editor-first = Pablo |
|||
|editor2-last = Pichler |
|||
|editor2-first = Reinhard |
|||
|title = LogicBlox, Platform and Language: A Tutorial |
|||
|url = https://link.springer.com/chapter/10.1007/978-3-642-32925-8_1 |
|||
|journal = Datalog in Academia and Industry |
|||
|series = Lecture Notes in Computer Science |
|||
|volume = 7494 |
|||
|language = en |
|||
|location = Berlin, Heidelberg |
|||
|publisher = Springer |
|||
|pages = 1–8 |
|||
|doi = 10.1007/978-3-642-32925-8_1 |
|||
|isbn = 978-3-642-32925-8 |
|||
}} |
|||
* {{Cite book |
|||
|last1 = Aref |
|||
|first1 = Molham |
|||
|last2 = ten Cate |
|||
|first2 = Balder |
|||
|last3 = Green |
|||
|first3 = Todd J. |
|||
|last4 = Kimelfeld |
|||
|first4 = Benny |
|||
|last5 = Olteanu |
|||
|first5 = Dan |
|||
|last6 = Pasalic |
|||
|first6 = Emir |
|||
|last7 = Veldhuizen |
|||
|first7 = Todd L. |
|||
|last8 = Washburn |
|||
|first8 = Geoffrey |
|||
|title = Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data |
|||
|chapter = Design and Implementation of the LogicBlox System |
|||
|date = 2015-05-27 |
|||
|chapter-url = https://doi.org/10.1145/2723372.2742796 |
|||
|series = SIGMOD '15 |
|||
|location = New York, NY, USA |
|||
|publisher = Association for Computing Machinery |
|||
|pages = 1371–1382 |
|||
|doi = 10.1145/2723372.2742796 |
|||
|isbn = 978-1-4503-2758-9 |
|||
|s2cid = 2161070 |
|||
}} |
|||
* {{Cite book |
|||
|last1 = Kifer |
|||
|first1 = Michael |
|||
|url = https://books.google.com/books?id=q6dwDwAAQBAJ&dq=%22LogicBlox%22+-wikipedia&pg=PA335 |
|||
|title = Declarative Logic Programming: Theory, Systems, and Applications |
|||
|last2 = Liu |
|||
|first2 = Yanhong Annie |
|||
|date = 2018-09-19 |
|||
|publisher = Morgan & Claypool |
|||
|isbn = 978-1-970001-97-6 |
|||
|language = en |
|||
|pages = 345 |
|||
}} |
|||
== Further reading == |
== Further reading == |
||
* {{Cite book |
|||
* {{Cite book |last1=Halpin |first1=Terry |url=https://books.google.com/books?id=UBYeBQAAQBAJ&dq=logicblox&pg=PP1 |title=LogiQL: A Query Language for Smart Databases |last2=Rugaber |first2=Spencer |date=2014-11-13 |publisher=CRC Press |isbn=978-1-4822-4493-9 |language=en}} |
|||
|last1 = Halpin |
|||
|first1 = Terry |
|||
|url = https://books.google.com/books?id=UBYeBQAAQBAJ&dq=logicblox&pg=PP1 |
|||
|title = LogiQL: A Query Language for Smart Databases |
|||
|last2 = Rugaber |
|||
|first2 = Spencer |
|||
|date = 2014-11-13 |
|||
|publisher = CRC Press |
|||
|isbn = 978-1-4822-4493-9 |
|||
|language = en |
|||
}} |
|||
== See also == |
== See also == |
Revision as of 17:22, 8 June 2024
![]() | The topic of this article may not meet Wikipedia's general notability guideline. (March 2023) |
Paradigms | Declarative, Logic programming |
---|---|
Family | Datalog |
Typing discipline | Static |
License | Commercial |
Website | logicblox |
Influenced by | |
Datalog |
The LogicBlox system is a commercial, declarative, incremental logic programming language and deductive database inspired by Datalog. The LogiQL programming language extends Datalog with several features, including stratified negation, aggregation, and a module system. LogicBlox has been used to build pointer analyses for Java.[1]
On December 3, 2014 Predictix acquired LogicBlox.[2] On June 28, 2016 Infor acquires Predictix.[3]
Features
- Stratified negation[4]
- Aggregate functions[5]
- Evaluation using a novel worst-case optimal join algorithm.[6]
- Data constructors
- Static typing[8]
- A module system
- Probabilistic programming features
- Incremental computation[9]
- Debugging with provenance[10]
References
Notes
- ^ Antoniadis, Tony; Triantafyllou, Konstantinos; Smaragdakis, Yannis (2017-06-18). "Porting doop to Soufflé". Proceedings of the 6th ACM SIGPLAN International Workshop on State of the Art in Program Analysis. SOAP 2017. New York, NY, USA: Association for Computing Machinery. pp. 25–30. doi:10.1145/3088515.3088522. ISBN 978-1-4503-5072-3. S2CID 3074689.
- ^ "Predictix Acquires LogicBlox". mergr.com. Retrieved 2024-06-08.
- ^ "Infor Acquires Predictix". finance.yahoo.com. Retrieved 2024-06-08.
- ^ "6.4. Negation - LogicBlox 3.10 Reference Manual". developer.logicblox.com. Retrieved 2023-03-04. "'Additionally, negation is only allowed when the platform can determine a way to stratify all rules and constraints that use negation.'"
- ^ "Chapter 7. Rules - LogicBlox 3.10 Reference Manual". developer.logicblox.com. Retrieved 2023-03-04.
- ^ Veldhuizen, Todd L. (2013-12-20). "Leapfrog Triejoin: a worst-case optimal join algorithm". arXiv:1210.0481 [cs.DB].
- ^ Aberger, Christopher R.; Tu, Susan; Olukotun, Kunle; Ré, Christopher (May 2016). "Old techniques for new join algorithms: A case study in RDF processing". 2016 IEEE 32nd International Conference on Data Engineering Workshops (ICDEW). pp. 97–102. arXiv:1602.03557. doi:10.1109/ICDEW.2016.7495625. ISBN 978-1-5090-2109-3. S2CID 10016546.
- ^ Zook, David; Pasalic, Emir; Sarna-Starosta, Beata (2009). Gill, Andy; Swift, Terrance (eds.). Typed Datalog. Lecture Notes in Computer Science. Vol. 5418. Berlin, Heidelberg: Springer. pp. 168–182. doi:10.1007/978-3-540-92995-6_12. ISBN 978-3-540-92995-6.
{{cite book}}
:|journal=
ignored (help) "'Our type system has been implemented as a part of the LogicBlox development environment.'" - ^ Singh, Shikha; Madaminov, Sergey; Bender, Michael A.; Ferdman, Michael; Johnson, Ryan; Moseley, Benjamin; Ngo, Hung; Nguyen, Dung; Olesen, Soeren; Stirewalt, Kurt; Washburn, Geoffrey (May 2020). "A Scheduling Approach to Incremental Maintenance of Datalog Programs". 2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS). pp. 864–873. doi:10.1109/IPDPS47924.2020.00093. ISBN 978-1-7281-6876-0. S2CID 216513350.
- ^ Köhler, Sven; Ludäscher, Bertram; Smaragdakis, Yannis (2012). Barceló, Pablo; Pichler, Reinhard (eds.). Declarative Datalog Debugging for Mere Mortals. Lecture Notes in Computer Science. Vol. 7494. Berlin, Heidelberg: Springer. pp. 111–122. doi:10.1007/978-3-642-32925-8_12. ISBN 978-3-642-32925-8.
{{cite book}}
:|journal=
ignored (help) - ^ "Chapter 17. Provenance". LogicBlox 3.10 Reference Manual. Retrieved 2023-03-11.
Sources
- Green, Todd J.; Aref, Molham; Karvounarakis, Grigoris (2012). Barceló, Pablo; Pichler, Reinhard (eds.). LogicBlox, Platform and Language: A Tutorial. Lecture Notes in Computer Science. Vol. 7494. Berlin, Heidelberg: Springer. pp. 1–8. doi:10.1007/978-3-642-32925-8_1. ISBN 978-3-642-32925-8.
{{cite book}}
:|journal=
ignored (help) - Aref, Molham; ten Cate, Balder; Green, Todd J.; Kimelfeld, Benny; Olteanu, Dan; Pasalic, Emir; Veldhuizen, Todd L.; Washburn, Geoffrey (2015-05-27). "Design and Implementation of the LogicBlox System". Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. SIGMOD '15. New York, NY, USA: Association for Computing Machinery. pp. 1371–1382. doi:10.1145/2723372.2742796. ISBN 978-1-4503-2758-9. S2CID 2161070.
- Kifer, Michael; Liu, Yanhong Annie (2018-09-19). Declarative Logic Programming: Theory, Systems, and Applications. Morgan & Claypool. p. 345. ISBN 978-1-970001-97-6.
Further reading
- Halpin, Terry; Rugaber, Spencer (2014-11-13). LogiQL: A Query Language for Smart Databases. CRC Press. ISBN 978-1-4822-4493-9.