Object-Oriented Architecture
PC AI - Glossary of Terms (Subjects A-C)
Where Intelligent Technology Meets the Real World Home Contents Search News Services Contact PC AI Subjects A-C CLOS Common LISP Object System - An object oriented extension to Common LISP (a dialect of LISP). LISP A programming language that manipulates lists of data which led to its heavy use in AI applications. Logic Programming A type of programming consisting of facts and relationships from which the programming language can draw a conclusion. Prolog A declarative programming language based on formal logic. Widely used in AI applications.
Loom
The Loom system implements a logic-based pattern matcher that drives a production rule facility and a pattern-directed method dispatching facility that supports the definition of object-oriented methods. The high degree of integration between Loom's declarative and procedural components permits programmers to utilize logic programming, production rule, and object-oriented programming paradigms in a single application. Loom can also be used as a deductive layer that overlays an ordinary CLOS network. In this mode, users can obtain many of the benefits of using Loom without impacting the function or performance of their CLOS-based applications. A Retrospective on Loom provides more details.
Harnessing error-prone chips
As transistors get smaller, they also grow less reliable. Increasing their operating voltage can help, but that means a corresponding increase in power consumption. With information technology consuming a steadily growing fraction of the world's energy supplies, some researchers and hardware manufacturers are exploring the possibility of simply letting chips botch the occasional computation. In many popular applications -- video rendering, for instance -- users probably wouldn't notice the difference, and it could significantly improve energy efficiency. At this year's Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) conference, researchers from MIT's Computer Science and Artificial Intelligence Laboratory presented a new system that lets programmers identify sections of their code that can tolerate a little error.
Structural Accommodation
A theme in my blogs is how the "structure" of data - rather than just the "content" - affects what that data can say and is capable of doing. In particular, I suggest that certain structures tend to reinforce certain contents; this means that a structural imposition can have an effect similar to a contextual imposition. Structure is an interesting conversation because, at first glance, arguably data has none. Structure is something that is attributed to physical things. But data normally has no physical existence - at least not in a tangible sense except maybe in relation to storage devices. Yet I am certain that almost everyone who has programmed in an object-oriented language has had to deal with multifarious data structures.
Hierarchical Object Representation for Open-Ended Object Category Learning and Recognition
Kasaei, Seyed Hamidreza, Tomé, Ana Maria, Lopes, Luís Seabra
Most robots lack the ability to learn new objects from past experiences. To migrate a robot to a new environment one must often completely re-generate the knowledge- base that it is running with. Since in open-ended domains the set of categories to be learned is not predefined, it is not feasible to assume that one can pre-program all object categories required by robots. Therefore, autonomous robots must have the ability to continuously execute learning and recognition in a concurrent and interleaved fashion. This paper proposes an open-ended 3D object recognition system which concurrently learns both the object categories and the statistical features for encoding objects. In particular, we propose an extension of Latent Dirichlet Allocation to learn structural semantic features (i.e. topics) from low-level feature co-occurrences for each category independently. Moreover, topics in each category are discovered in an unsupervised fashion and are updated incrementally using new object views. The approach contains similarities with the organization of the visual cortex and builds a hierarchy of increasingly sophisticated representations. Results show the fulfilling performance of this approach on different types of objects. Moreover, this system demonstrates the capability of learning from few training examples and competes with state-of-the-art systems.
Structural Accommodation
A theme in my blogs is how the "structure" of data - rather than just the "content" - affects what that data can say and is capable of doing. In particular, I suggest that certain structures tend to reinforce certain contents; this means that a structural imposition can have an effect similar to a contextual imposition. Structure is an interesting conversation because, at first glance, arguably data has none. Structure is something that is attributed to physical things. But data normally has no physical existence - at least not in a tangible sense except maybe in relation to storage devices. Yet I am certain that almost everyone who has programmed in an object-oriented language has had to deal with multifarious data structures.
Scrum at 21 with @KSchwaber @DevOpsSummit #Agile #AI #Scrum #DevOps
I'm told that it has been 21 years since Scrum became public when Jeff Sutherland and I presented it at an Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) workshop in Austin, TX, in October of 1995. I'm still in the same building and at the same company where I first formulated Scrum.[1] Initially nobody knew of Scrum, yet it is now an open source body of knowledge translated into more than 30 languages.[2] People use Scrum worldwide for developing software and other uses I never anticipated.[3] Scrum was born and initially used by Jeff and me to meet market demand at our respective companies.
Data analysis with DMelt
Data mining (sometimes called knowledge discovery) is the process of analyzing and summarizing data into useful information which can be used to understand common features, the origin of data and to extract hidden predictive information. Data mining is used in science, engineering,modeling and analysis of financial markets. In this article we will discuss a free data-analysis framework called DMelt (The DataMelt project, http://jwork.org/dmelt/) It is a great program for scientists, engineers and students who need numerical and statistical computations, data and function visualization and even symbolic computation. DMelt is a 100% Java package, which means it is fully object-oriented and runs on any Java Virtual Machine regardless of computer architecture.
GPflow: A Gaussian process library using TensorFlow
Matthews, Alexander G. de G., van der Wilk, Mark, Nickson, Tom, Fujii, Keisuke, Boukouvalas, Alexis, León-Villagrá, Pablo, Ghahramani, Zoubin, Hensman, James
There are now many publicly available Gaussian process libraries ranging in scale from personal projects to major community tools. We will therefore only consider a relevant subset of the existing libraries. The influential GPML toolbox (Rasmussen and Nickisch, 2010) uses MATLAB. It has been widely forked. A key reference for our particular contribution is the GPy library (GPy, since 2012), which is written primarily using Python and Numeric Python (NumPy). GPy has an intuitive object-oriented interface. Another relevant Gaussian process library is GPstuff (Vanhatalo et al., 2013) which is also a MATLAB library.
Python Design Patterns: For Sleek And Fashionable Code
Let's say it again: Python is a high-level programming language with dynamic typing and dynamic binding. I would describe it as a powerful, high-level dynamic language. Many developers are in love with Python because of its clear syntax, well structured modules and packages, and for its enormous flexibility and range of modern features. In Python, nothing obliges you to write classes and instantiate objects from them. If you don't need complex structures in your project, you can just write functions. Even better, you can write a flat script for executing some simple and quick task without structuring the code at all. At the same time Python is a 100 percent object-oriented language.