Wednesday, December 30, 2009

Conference on Brain Informatics (BI)

I frequently receive conference announcements in my in-box and rarely do they inspire me much at all, but the announcement for a conference on "Brain Informatics" certainly caught my attention. The announcement for "2010 International Conference on Brain Informatics (BI 2010)" or "Brain Informatics 2010" tells us that:

Brain Informatics (BI) has recently emerged as an interdisciplinary research field that focuses on studying the mechanisms underlying the human information processing system (HIPS). It investigates the essential functions of the brain, ranging from perception to thinking, and encompassing such areas as multi-perception, attention, memory, language, computation, heuristic search, reasoning, planning, decision-making, problem-solving, learning, discovery, and creativity. The goal of BI is to develop and demonstrate a systematic approach to achieving an integrated understanding of both macroscopic and microscopic level working principles of the brain, by means of experimental, computational, and cognitive neuroscience studies, as well as utilizing advanced Web Intelligence (WI) centric information technologies.

It goes on to say that:

BI represents a potentially revolutionary shift in the way that research is undertaken. It attempts to capture new forms of collaborative and interdisciplinary work. In this vision, new kinds of BI methods and global research communities will emerge, through infrastructure on the wisdom Web and knowledge grids that enables high speed and distributed, large-scale analysis and computations, and radically new ways of sharing data/knowledge.

And:

Brain Informatics 2010 provides a leading international forum to bring together researchers and practitioners from diverse fields, such as computer science, information technology, artificial intelligence, Web intelligence, cognitive science, neuroscience, medical science, life science, economics, data mining, data and knowledge engineering, intelligent agent technology, human computer interation, complex systems, and system science, to explore the main research problems in BI lie in the interplay between the studies of human brain and the research of informatics. On the one hand, one models and characterizes the functions of the human brain based on the notions of information processing systems. WI centric information technologies are applied to support brain science studies. For instance, the wisdom Web and knowledge grids enable high-speed, large-scale analysis, simulation, and computation as well as new ways of sharing research data and scientific discoveries. On the other hand, informatics-enabled brain studies, e.g., based on fMRI, EEG, MEG significantly broaden the spectrum of theories and models of brain sciences and offer new insights into the development of human-level intelligence on the wisdom Web and knowledge grids.

The announcement provides another summary for "Brain Informatics (BI)":

Brain Informatics (BI) is an emerging interdisciplinary and multi-disciplinary research field that focuses on studying the mechanisms underlying the human information  processing system (HIPS). BI investigates the essential functions of the brain, ranging from perception to thinking, and encompassing such areas as multi-perception, attention, memory, language, computation, heuristic search, reasoning, planning, decision-making, problem-solving, learning, discovery, and creativity.  One goal of BI research is to develop and demonstrate a systematic approach to an integrated understanding of macroscopic and microscopic level working principles of the brain, by means of experimental, computational, and cognitive neuroscience studies, as well as utilizing advanced Web Intelligence (WI) centric information technologies.  Another goal is to promote new forms of collaborative and interdisciplinary work.  New kinds of BI methods and global research communities will emerge, through infrastructure on the wisdom Web and knowledge grids that enables high speed and distributed, large-scale analysis and computations, and radically new ways of data/knowledge sharing.

Conference topics include:

  • Thinking and perception-centric investigations of HIPS:
    • Human reasoning mechanisms (e.g., principles of human deductive/inductive reasoning, common-sense reasoning, decision making, and problem solving)
    • Human learning mechanisms (e.g., stability, personalized user/student models)
    • Emotion, heuristic search, information granularity, and autonomy related issues in human reasoning and problem solving
    • Human higher cognitive functions and their relationships
    • Human multi-perception mechanisms and visual, auditory, and tactile information processing
    • Methodologies for systematic design of cognitive experiments
    • Investigating spatiotemporal characteristics and flow in HIPS and the related neural structures and neurobiological process
    • Cognitive architectures; their relations to fMRI/EEG/MEG
    • HIPS meets complex systems
    • Modeling brain information processing mechanisms (e.g., neuro-mechanism, mathematical, cognitive and computational models of HIPS).
  • Information technologies for the management and use of brain data:
    • Human brain data collection, pre-processing, management, and analysis
    • Databasing the brain and constructing data brain models
    • Data brain modeling and formal conceptual models of human brain data
    • Multi-media brain data mining and reasoning
    • Multi-aspect analysis in fMRI/EEG/MEG activations
    • Simulating spatiotemporal characteristics and flow in HIPS
    • Developing brain data grids and brain research support portals
    • Knowledge representation and discovery in neuroimaging
    • Multimodal information fusion for brain image interpretation
    • Statistical analysis and pattern recognition in neuroimaging
  • Applications
    • Neuro-economics and neuro-marketing
    • Brain-Computer-Interface (BCI)
    • Brain/Cognition inspired artificial systems
    • Wisdom Web systems based on new cognitive and computational models
    • MCI and AD diagnosis
    • e-Science and e-Medicine

-- Jack Krupansky

 

Sunday, November 01, 2009

Philosophy and Ethics of Social Reality

I just ran across an interesting conference announcement, SOCREAL 2010: Second International Workshop on Philosophy and Ethics of Social Reality. The conference summary is:

In the past two decades, a number of logics and game theoretical analyses have been proposed and combined to model various aspects of social interaction among agents including individual agents, organizations, and individuals representing organizations. The aim of SOCREAL Workshop is to bring together researchers working on diverse aspects of such interaction in logic, philosophy, ethics, computer science, cognitive science and related fields in order to share issues, ideas, techniques, and results.

Topics will include:

  • Language (or communication) as part of social reality
  • Speech acts (or communicative acts) as what shape social reality
  • Moral commitments (and conflicts) in social interaction
  • Logic and game theory as tools for studying social reality
  • (Organized) collective agency
  • Norms and normative systems
  • Social institutional facts and their dynamics

From my own perspective, presently, software agents operate at a rather primitive level with little more than basic data transfer and simple control, but eventually software agents will evolve into intelligent agents whose activity is more in the line of social behavior, including ethics and the behavior of groups and even organizations and institutions of software agents. And, of course, software agents are acting as agents for other entities, whether computational, or human. There certainly is a lot of ground to be broken. It is at least heartening that people are beginning to scratch the surface of the potential for social reality of computational entities.

Eventually, somebody will realize that these social agents are communicating in a language and that language has semantics and that there is a potential for a great semantic abyss between the various communities of social agents, as well as a vast semantic abyss between these computational agents and their real world "masters".

Great challenges and great opportunities.

-- Jack Krupansky

Friday, October 16, 2009

Quantum artificial life

Just a note to myself to eventually look into the concept of quantum artificial life. Not sure what it really is. Doesn't even have a Wikipedia page yet. And a Google search yields little.

Assuming that it really does have some basis in quantum mechanics, two questions pop up:

  1. How can you model and "work" with a system at such a small scale that its characteristics are indeterminate.
  2. In theory, scaling up a quantum-scale system to a macro-scale system means that we flip from that absolute indeterminism to a relative statistical determinism.

Hmmm...

-- Jack Krupansky

Wednesday, September 09, 2009

Interesting conference workshop on Complexity, Evolution, and Emergent Intelligence

I was just reading the call for papers announcement for a workshop entitled "Workshop on Complexity, Evolution and Emergent Intelligence" at the AI*IA 09 Eleventh Conference of the Italian Association of Artificial Intelligence scheduled on December 12, 2009 in Reggio Emilia, Italy which covers a variety of topics related to complex systems and "aims at bringing together scientists who work from different perspectives, from basic science to applications, on the common theme of systems composed by many components that interact non-linearly."

The focus is on complex systems which "very often exhibit interesting features, as self-organisation, robustness, surprising collective processes and occasionally intelligence."

A workshop goal is to achieve closer interactions between the communities of Complex Systems Science (CSS) and Artificial Intelligence (AI):

Recent developments -- for example in the context of agent-based modelling, distributed and/or evolutionary computation -- represent new opportunities for further exploring and strengthening these scientific interactions and connections.

The workshop will pay close attention to the combination of intelligence and complex interactions:

As already suggested, the contemporary presence of intelligence and complex interactions may not be casual but, instead, able to disclose deeper links between the two characteristics. Are there universal patterns of organization in complex systems, from pre-biotic replicators to evolved beings, to artificial objects? Do these structures allow effective computational processes to develop?

Key questions are how robust structures which develop in such systems are, how information is incorporated into these structures and how computation emerges. The study of complex systems is also interested in determining the contributions of selection, chance and self-organization to the functioning and evolution of complex structures.

Topics of interest for the workshop include:

  • Agent based models
  • Cellular automata
  • Evolutionary computation
  • Information processing
  • Network properties
  • Self-organisation, emergent behaviours
  • Tangled hierarchies, description levels, reciprocal causality
  • Adaptation/exaptation
  • Evolution and co-evolution
  • Robustness, criticality
  • Pattern formation, pattern recognition, collective intelligence
  • Non linear dynamics, edge of chaos
  • The emergence of mind
  • Bio-inspired methods

I am most intrigued with tangled hierarchies and the emergence of mind, but it is all quite fascinating stuff.

-- Jack Krupansky

Wednesday, August 26, 2009

Coordination paradigm for modeling ensembles of software agents

Just a mental bookmark to look into the so-called coordination paradigm for modeling the interaction of ensembles of software agents. I do not have a great definition yet, but it involves the modeling of concurrent
and distributed computations and systems based on the concept of coordination which enables the parts to act as a whole.

My hunch is that the trick is that we are not trying to model the agents per se but some "the whole is greater than the sum of the parts" functional capability that is emergent from the ensemble and not strictly present and observable in the individual agents of the ensemble.

I have another hunch that we need to differentiate between explicit coordination where the agents know about the greater function of the ensemble and how theay each fit into "the big picture" versus implicit coordination where the greater function is truly an emergent phenomenon that none of the agents could have known about in advance and may not even know about as it is in progress.

-- Jack Krupansky

Thursday, June 25, 2009

Plant intelligence

Although it is tempting to posit that human-level intelligence might be the be-all and end-all for intelligent software agents, there is the possibility that more primitive levels of "intelligence" may have significant utility and other benefits, in much the manner that varying levels of intelligence are useful in human social organizations. Besides human-level intelligence, we could also consider non-human animal-level intellugence, especially for more primitive operations. After all, is "searching" that much different from "hunting", and are humans really that much better at hunting than many animal species? Taking this progression to the next (lower) level, does the plant kingdom have anything to offer in terms of capabilities that might be useful in software agents? My hunch is that the answer is yes, or at least maybe.

I am not suggesting that plants could provide a model for matching or exceeding human-level intelligence, but there are plenty or lower-level operations and infrastructure needs that might in fact benefit from what we might learn from study of the plant kingdom. After all, plants root, grow, reproduce, disperse seeds, and co-operate with other plants in a fashion, suggesting forms of networking and distributed processing, at least at a primitive level. Besides, plant have mastered the process of harnessing the energy of the sun, a feat that we continue to struggle with.

Whether plants have a human-like or animal-like "mind" or "brain" is debatable, but maybe irrelevant. What is relevant is the forms of processing that plants can perform and how that processing is controlled.

The real potential may be not for the more "intelligent" of agent needs, but in the need for more robust, durable, and resilient "grunt" agent needs and needs within the infrastructure to support the intelligent agents.

The plant kingdom may be able to provide some interesting metaphors for information processing.

The more interesting angle might be that we could construct hybrid metaphors that combine aspects of human, animal, and plant "intelligence" that might not be possible or practical in the "real" world.

Whether or not we are able to use plant-like capabilities in agents themselves, my hunch is that the infrastructure and environment in which agents operate could very well benefit from being more plant-like. Visualize that as agents as animals in a jungle.

I have not dug too deeply into this area, yet.

Here are a couple of references I have stumbled across:

-- Jack Krupansky

Friday, May 08, 2009

Second edition of An Introduction to MultiAgent Systems by Michael Wooldridge coming soon

Professor Michael Wooldridge of the University of Liverpool is about to come out with the Second edition of An Introduction to MultiAgent Systems.

It is listed on Amazon, but as "This title has not yet been released. You may pre-order it now and we will deliver it to you when it arrives." with a suggested release date of July 7, 2009. It is also listed on Wiley's web site. I would love to leaf through the book, but I am not going to pay $60 for a book.

The description from Wiley:

The study of multi-agent systems (MAS) focuses on systems in which many intelligent agents interact with each other.  These agents are considered to be autonomous entities such as software programs or robots.  Their interactions can either be cooperative (for example as in an ant colony) or selfish (as in a free market economy).  This book assumes only basic knowledge of algorithms and discrete maths, both of which are taught as standard in the first or second year of computer science degree programmes.  A basic knowledge of artificial intelligence would useful to help understand some of the issues, but is not essential.

The book's main aims are:

  • To introduce the student to the concept of agents and multi-agent systems, and the main applications for which they are appropriate
  • To introduce the main issues surrounding the design of intelligent agents
  • To introduce the main issues surrounding the design of a multi-agent society
  • To introduce a number of typical applications for agent technology

Michael has emailed out a blurb for the book (also available on his web page) that introduces it as follows:

Multiagent systems are an important paradigm for understanding and building distributed systems, where it is assumed that the computational components are autonomous: able to control their own behaviour in the furtherance of their own goals.  The first edition of An Introduction to Multiagent Systems was the first contemporary textbook in the area, and became the standard undergraduate reference work for the field. This second edition has been extended with substantial new material on recent developments in the field, and has been revised and updated throughout. It provides a comprehensive, coherent, and readable introduction to the theory and practice of multiagent systems, while presenting a wealth of discussion topics and pointers into more advanced issues for those wanting to dig deeper.

The blurb notes some key new features:

  • dedicated new chapters on recent research directions and results:
    • ontologies
    • computational social choice/voting
    • coalition formation
    • auctions
    • bargaining
    • argumentation;
  • "mind maps" for every chapter, to illustrate key concepts and ideas
    • an essential study and revision aid
  • 590 literature references, revised, updated, and extended to reflect the state of the art in agent research and development;
  • extensive glossary of terms.

I took a brief look at the table of contents and arrived at the following tentative conclusions:

  1. There has been a lot of progress in the past seven years.
  2. Software agent technology has still not matured to the stage where it is ready for prime time general use. I continue to believe that much of the technologies need to be transparently embedded in the underlying infrastructure to simplify development of much more robust large-scale applications.
  3. Open multi-agent systems are still an unresolved challenge.
  4. Although Semantic Web technologies are covered to some extent in Chapter 6 ("Understanding Each Other") on ontologies (XML, RDF, OWL, etc.), the centrality of the world-wide Semantic Web and Linked Data to the longer-term future of software agent technology not elaborated in any great detail and is still much further out in the future. The Semantic Web needs to evolve as well.

The main sections of the book are:

  • Part I Setting the Scene
    • Chapter 1 Introduction
  • Part II Intelligent Autonomous Agents
    • Chapter 2 Intelligent Agents
    • Chapter 3 Deductive Reasoning Agents
    • Chapter 4 Practical Reasoning Agents
    • Chapter 5 Reactive and Hybrid Agents
  • Part III Communication and Cooperation
    • Chapter 6 Understanding Each Other
    • Chapter 7 Communicating
    • Chapter 8 Working Together
    • Chapter 9 Methodologies
    • Chapter 10 Applications
  • Part IV Multiagent Decision Making
    • Chapter 11 Multiagent Interactions
    • Chapter 12 Making Group Decisions
    • Chapter 13 Forming Coalitions
    • Chapter 14 Allocating Scarce Resources
    • Chapter 15 Bargaining
    • Chapter 16 Arguing
    • Chapter 17 Logical Foundations
  • Coda
  • Appendix A -- A History Lesson
  • Appendix B -- Afterword 

The blurb tells us that the book is:

Designed and written specifically for computing undergraduates, the book comes with a rich repository of online teaching materials, including lecture slides.

Overall, the book is a great introduction to the current state of the art of software agent technology, both in theory and practice.

Need to go check out those lecture slides!

-- Jack Krupansky

Monday, April 20, 2009

Software agents for virtual browsing and virtual presence

With so many places to go and so many things to see and do on the Web, it is getting almost impossible to keep up with the proliferation of interesting information out there. We need some help. A hefty productivity boost is simply not good enough. We need a lot of help. Browser add-ons, better search engines, and filtering tools are simply not enough. Unfortunately, the next few years holds more of the same.

But, longer term we should finally start to see credible advances in software agent technology which help to extend our own minds so that we can engage in virtual browsing and have a virtual presence on the Web so that we can effectively reach and touch a far broader, deeper, and richer lode of information than we can with personal browsing and our personal presence.

Twitter asks us what we are doing right now, but our online activity and presence with the aid of software agents will be a thousand or ten thousand or even a million or ten million times greater than we can personally achieve today. What are each of us interested in? How about everything?! Why not?

The gradual evolution of the W3C conception of the Semantic Web will eventually reach a critical mass where even relatively dumb software agents can finally appear to behave in a relatively intelligent manner that begins to approximate our own personal activity and personal presence on the Web.

It may take another five to ten years, but the long march in that direction is well underway.

The biggest obstacle right now is not the intelligence of an individual software agent per se, but the need to encode a rich enough density of information in the Semantic Web so that we can realistically develop intelligent software agents that can work with that data. We will also need an infrastructure that mediates between the actual data and the agents.

-- Jack Krupansky

Saturday, March 14, 2009

What are the biological requirements for intelligence?

For some time I have wondered about the differences between plants and animals, two distinct "kingdoms." Maybe someday I'll have enough spare time to look into the matter (so to speak.) A variation of that question popped into my mind today: What are the biological requirements for intelligence? Man evolved intelligence in the animal kingdom. What specifically enabled that evolution of intelligence in man? Not the "pop", superficial explanations, but what exactly is it that permits man to exhibit intelligence? Put another way, why were plants unable to evolve in a parallel manner into "intelligent" individuals? Are there in fact biological requirements for intelligence that only the animal kingdom has to offer? Or, could intelligence, in theory, occur in plants through some path of evolution within the plant kingdom? In any case, in short, what exactly are the biological requirements for intelligence? And I do mean intelligence in the sense of human-level intelligence. That does beg the question of other forms of "intelligence" that may be wholly incomparable to human intelligence.

Now, this also broaches on the question of machine intelligence, computational intelligence, or artificial intelligence. If in fact there are biological requirements for intelligence, can those requirements in fact be met by non-biological entities such as computers as we know them. Of course that does beg the question of whether we could simply develop a computer program which is a simulator for biological life. That then raises the question of whether plants could evolve a machine-like structure which in fact was such a simulator for animal life.

In any case, we are left with the question of what the requirements would be for human-level intelligence in machines, and whether there may be biological functions that cannot easily (or maybe even possibly) be simulated in machines.

By "machines", I mean computers as we know them today, a device which can execute what we call computer programs or computer software.

That begs two questions. First, are there radically difference computer software architectures that might enable programming of human-level intelligence? Second, are there radically different device architectures which would permit software architectures that cannot easily (or maybe even possibly at all) be developed with computer devices as we know them.

To phrase the initial question another way, could we in theory genetically engineer plants to develop forms of intelligence?

More abstractly, could another "kingdom" develop which was neither plant nor animal, but capable of exhibiting human-level intelligence? Maybe in another solar system, another galaxy, or a parallel universe? Or, is there in fact some fundamentally basic requirement for intelligence which even in theory can only be satisfied within the animal kingdom?

One final question... What biological requirements would need to be met for artificial devices, presumably capable of reproduction by themselves, to in fact be considered "biological" and a new "kingdom" paralleling the animal and plant kingdoms?

-- Jack Krupansky

Sunday, March 01, 2009

Amazon Kindle - if a software agent reads a book aloud is that a performance or the creation of a derivative work?

The recent uproar over the read-aloud feature of the new Amazon Kindle book reading device has raised some fascinating questions related to the definition and interpretation of the concepts of a performance and a derivative work, as well as the concept of licensed use. I would add that this dispute also raises the issue of the role and status of software agents.

An article in Ars Technica by Julian Sanchez entitled "Kindles and "creative machines" blur boundaries of copyright" does a decent jobs of covering both the pros and cons and legal nuances of the "rights" for electronically reading a book aloud.

I have read a lot of the pro and con arguments, but I am not prepared to utter a definitive position at this time.

I would note that there is a "special" context for the entire debate: the ongoing "culture war" between the traditional world view of people, places, and things and the so-called "digital" world view, whether it be online with the Web or interactive within a computer system. Clearly there are parallels between the real and "virtual" worlds, but also there are differences. Rational people will recognize and respect the parallels even as they recognize and respect the differences. Alas, there is a point of view that insists that the virtual worlds (online and interactive) should not be constrained in any way by the real-world world view.

The simple truth is that the real and virtual worlds can in fact coexist separately, but the problem comes when we try to blend the two worlds and pass artifacts between them. Then, the separateness breaks down. The Kindle is a great example, with real-world books being "passed" into the digital world and then the act of electronically reading them aloud passing back from the digital world to the real world.

It is also interesting to note that many books are now actually created in the virtual world (word processing, storage, transmission, digital printing) even if not intended specifically as so-called e-books, so that physical books themselves in fact typically originated in a virtual world. Clearly the conception of the book occurs in the mind of the author and the editors, but the actual "assembly" of all of the fragments from the minds of authors and editors into the image of the book occurs in the virtual world.

In any case, my interest is in the role of software agents. A software agent is a computer program which possesses the quality of agency or acting for another entity. The Kindle read-aloud feature is clearly a software agent. Now, the issue is whose agent is it. The consumer? Amazon? The book author? The publisher?

The superficially simple question is who "owns" the software agent.

We speak of "buying" books, even e-books, but although the consumer does in fact "buy" the physical manifestation, they are in fact only licensing the "use" of the intellectual property embodied in that physical representation. You do in fact "own" the ones and zeros of the e-book or the paper and ink of the meatspace book, but you do not own all uses except as covered by the license that you agreed to at the time of acquisition of the bits. Clearly not everyone likes or agrees with that model, but a license is a contract and there are laws related to contracts. Clearly there are also disputes about what the contract actually covers or what provisions are enforceable. That is why we have courts.

So, the consumer owns the bits of the read-aloud software agent, and the consumer may have some amount of control over the behavior of that software agent, but ownership and interaction are not the same thing.

I would suggest that the read-aloud software agent still belongs to Amazon since it remains a component of the Kindle product. A Kindle reading a book aloud is not the same as a parent reading a book to a child or a teacher reading to a class (or the reading in the movie The Reader), in particular because it is Amazon's agent that is doing the reading.

An interesting variation would be an open source or public domain version of Kindle as downloadable software for the PC, or software with features different from Kindle for that matter. Who "owns" any software agents embedded in that software? Whose agent is doing the performance? Whose agent is creating derivative works? To me, the immediate answer is who retains the intellectual property rights to the agent. In the Kindle case, Amazon is not attempting to transfer all rights. Even if they did, there is the same question as with file-sharing software, whether there is some lingering implied liability that goes along even when ownership is transferred.

Another open issue would be software agents which completely generate content from scratch dynamically, not from some input such as an e-book data stream. Who owns that content? I would suggest that the superficial answer is that the owner of the agent owns "created" (non-derivative) content, except as they may have licensed transfer of ownership of such content.

Another issue is whether a "stream" can be considered a representation. I would think so. One could also consider it a performance of an implied representation. Whether each increment of data in the stream is stored may not be particularly relevant. The stream has most of the "effect" of a full representation.

Another issue is trying to discover the intent or spirit of the law as opposed to the exact letter of the law. Sure, there are plenty of loopholes and gotchas that do in fact matter when in a courtroom, but ultimately I would think that it is the intentions that matter the most to society. Unless, you are a proponent of a "free" digital world that is unencumbered by any constraints of the real world and seeks to exploit loopholes simply because "they are there."

In any case, my point is not to settle the matter, but to raise the issues of performances and creation of derivative works in the realm of software agents, both for developers of software agent technology and those who seek to deploy it. And we have this issue of what lingering liability tail connects software agents and their creators.

-- Jack Krupansky

Tuesday, February 10, 2009

Oops... definition of social agent

The good news is that somehow, I have managed to be result #1 in Google for the term social agent. The bad news is that my Web page that purports to define that term simply said "A social agent is ... TBD." How lame! DOH! That page has gotten a fair number of hits, probably mostly by academic researchers in software agent technology and their students. One finally sent me an email sarcastically complimenting me for saving him so much effort and that my mother should be proud of me. Well, I fixed the problem. I did some research and derived my own definition for the term social agent. Actually, there are two somewhat distinct uses:

  • (1) A social agent is a software agent which exhibits a significant degree of interdependence with other software agents which results in or from the formation of communities of software agents within the full population of software agents to which the social agents belong, where each community has rules for behavior within the community.

  • (2) A social agent is a software agent or robot which is capable of social communication with human beings.

See: http://www.agtivity.com/def/social_agent.htm

What is frustrating about this is that by failing to have a reasonable definition on that Web page I have been losing out on opportunities to be cited as a source for definition of that term. There is not even a Wikipedia article for it.

-- Jack Krupansky

Sunday, January 25, 2009

Computational social choice, social choice theory, and social choice mechanisms

Social choice mechanisms will no doubt be crucial to the operation of large and complex agent systems. Software agents will need to make choices and will need to affect outcomes in multi-agent interactions. Voting is one example. The emerging sub-field of computational social choice is an attempt to adapt the tools and techniques of social choice theory to the realm of computational entities.

I myself have not explored this area beyond the very superficial, but it does show promise.

Some of the specific topic areas are:

  • Algorithmic aspects of voting rules
  • Computational barriers to strategic behaviour
  • Collective decision-making in multi-agent systems
  • Preference elicitation and communication issues in voting
  • Fair division
  • Computational aspects of weighted voting games
  • Collective decision-making in combinatorial domains
  • Logic-based formalisms for social choice problems
  • Belief and judgement aggregation
  • Social software

The overall topic will be covered in a future special issue of Springer's Journal of Autonomous Agents and Multi-Agent Systems ("Special Issue on Computational Social Choice".)

Keywords: computational social choice, social choice theory, social choice mechanisms, social choice problems, collective decision-making.

-- Jack Krupansky

Saturday, January 17, 2009

Exploring New Interaction Designs Made Possible by the Semantic Web

The Journal of Web Semantics has issued a call for papers for a special issue on the topic of "Exploring New Interaction Designs Made Possible by the Semantic Web." They tell us that they:

... seek papers that look at the challenges and innovate possible solutions for everyday computer users to be able to produce, publish, integrate, represent and share, on demand, information from and to heterogeneous data sources. Challenges touch on interface designs to support end-user programming for discovery and manipulation of such sources, visualization and navigation approaches for capturing, gathering and displaying and annotating data from multiple sources, and user-oriented tools to support both data publication and data exchange. The common thread among accepted papers will be their focus on such user interaction designs/solutions oriented linked web of data challenges. Papers are expected to be motivated by a user focus and methods evaluated in terms of usability to support approaches pursued.

Offering some background, they inform us that:

The current personal computing paradigm of single applications with their associated data silos may finally be on its last legs as increasing numbers move their computing off the desktop and onto the Web. In this transition, we have a significant opportunity – and requirement – to reconsider how we design interactions that take advantage of this highly linked data system. Context of when, where, what, and whom, for instance, is increasingly available from mobile networked devices and is regularly if not automatically published to social information collectors like Facebook, LinkedIn, and Twitter. Intriguingly, little of the current rich sources of information are being harvested and integrated. The opportunities such information affords, however, as sources for compelling new applications would seem to be a goldmine of possibility. Imagine applications that, by looking at one's calendar on the net, and with awareness of whom one is with and where they are, can either confirm that a scheduled meeting is taking place, or log the current meeting as a new entry for reference later. Likewise, documents shared by these participants could automatically be retrieved and available in the background for rapid access. Furthermore, on the social side, mapping current location and shared interests between participants may also recommend a new nearby location for coffee or an art exhibition that may otherwise have been missed. Larger social applications may enable not only the movement of seasonal ills like colds or flus to be tracked, but more serious outbreaks to be isolated. The above examples may be considered opportunities for more proactive personal information management applications that, by awareness of context information, can better automatically support a person's goals. In an increasingly data rich environment, the tasks may themselves change. We have seen how mashups have made everything from house hunting to understanding correlations between location and government funding more rapidly accessible. If, rather than being dependent upon interested programmers to create these interactive representations, we simply had access to the semantic data from a variety of publishers, and the widgets to represent the data, then we could create our own on-demand mashups to explore heterogeneous data in any way we chose. For each of these types of applications, interaction with information -- be it personal, social or public -- provides richer, faster, and potentially lighter-touch ways to build knowledge than our current interaction metaphors allow.

Finally, they pose their crucial question:

What is the bottleneck to achieving these enriched forms of interaction?

For which they propose the answer:

Fundamentally, we see the main bottleneck as a lack of tools for easy data capture, publication, representation and manipulation.

They provide a list of challenges to be addressed in the issue, including but not restricted to:

  • approaches to support integrating data that is readily published, such as RSS feeds that are only lightly structured.
  • approaches to apply behaviors to these data sources.
  • approaches to make it as easy for someone to create and to publish structured data as it is to publish a blog.
  • approaches to support easy selection of items within resources for export into structured semantic forms like RDF.
  • facilities to support the pulling in of multiple sources; for instance, a person may wish to pull together data from three organizations. Where will they gather this data? What tools will be available to explore the various sources, align them where necessary and enable multiple visualizations to be explored?
  • methods to support fluidity and acceleration for each of the above: lowering the interaction cost for gathering data sources, exploring them and presenting them; designing lightweight and rapid techniques.
  • novel input mechanisms: most structured data capture requires the use of forms. The cost of form input can inhibit that data from being captured or shared. How can we reduce the barrier to data capture?
  • evaluation methods: how do we evaluate the degree to which these new approaches are effective, useful or empowering for knowledge builders?
  • user analysis and design methods: how do we understand context and goals at every stage of the design process? What is different about designing for a highly personal, contextual, and linked environment?

In addition to traditional, full-length papers, they are also soliciting shorter papers as well as one to two page short, forward-looking more speculative papers addressing the challenges outlined above. I am tempted to submit one of the latter, possibly based on my proposal for The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing. Or, maybe a stripped-down version of that vision that is more in line with the "reach" of the current, RDF-based vision of the Semantic Web.

-- Jack Krupansky

Monday, December 22, 2008

Another mini-wave of intelligent assistants

There was an article in The New York Times on December 13, 2008 by John Markoff entitled "A Software Secretary That Takes Charge" which mentions a few of the latest attempts at creating commercial-scale intelligent user assistants. I am skeptical that these latest attempts are what they hope to be, but it is nice to see that people are still trying. As Markoff puts it:

Shouldn't your computer know a reasonable amount about your likes and dislikes? Wouldn't it be great if it could anticipate your needs and take action without you pressing a key?

Booking travel and restaurant reservations, rearranging meeting schedules or even taking a first cut at reading e-mail are among the mundane tasks that have remained beyond the reach of our PCs for decades.

But now a new generation of Internet technologies, coupled with the investment of more than a third of a billion dollars, may be making meaningful progress.

The concept of a software personal assistant has long captured the imagination of a generation of science fiction writers and computer scientists. Oliver G. Selfridge, the artificial-intelligence pioneer who died this month, is credited with coining the term "intelligent agent," as well as the idea of a computer software "demon" -- a simple software program that could monitor its environment and make appropriate responses when changes occur.

With the arrival of personal computing in the 1980s, the idea took the form of highly choreographed "vision" statements from many Silicon Valley companies. The most memorable was the Knowledge Navigator video, by John Sculley, then chief executive of Apple, in which an interactive assistant on a video display, clad in a bow tie, does research for a college professor and nags him to return his mother's phone call.

But efforts to build useful computerized assistants have consistently ended in failure, including some of the Valley's largest "craters" -- ambitious undertakings ending as spectacular flameouts. The failures include General Magic, originally backed by Mr. Sculley, E-speak by Hewlett-Packard and Hailstorm by Microsoft.

A Pentagon research project and two Silicon Valley start-up companies are about to try again.

His phrasing may be right on the mark, "may be making meaningful progress", with the emphasis on "may."

The simple truth is that if a quick glance does not completely dazzle you with its blind simplicity and all-knowing competence, then you probably are not looking at an intelligent agent. It should be so obvious that the "may" caveat is not needed.

Nonetheless, there may be some industrial-scale developments progressing even if consumer-scale is not yet here. Markoff mentions the SRI International CALO project. From the CALO Web site:

CALO: Cognitive Assistant that Learns and Organizes

SRI International is leading the development of new software that could revolutionize how computers support decision-makers.

The Defense Advanced Research Projects Agency (DARPA), under its Personalized Assistant that Learns (PAL - download brochure) program, has awarded SRI three phases of a five-year contract to develop an enduring personalized cognitive assistant. DARPA expects the PAL program to generate innovative ideas that result in new science, new approaches to current problems, new algorithms and tools, as well as new technology of significant value to the military.

The team dubbed its new project CALO, for Cognitive Assistant that Learns and Organizes. The name was inspired by the Latin word "calonis," which means "soldier's servant." The goal of the project is to create cognitive software systems, that is, systems that can reason, learn from experience, be told what to do, explain what they are doing, reflect on their experience, and respond robustly to surprise.

The software, which learns by interacting with and being advised by its users, will handle a broad range of interrelated decision-making tasks that have in the past been resistant to automation. A CALO will have the capability to engage in and lead routine tasks, and to assist when the unexpected happens. To focus the research on real problems and ensure the software meets requirements such as privacy, security, and trust, the CALO project researchers themselves are using the technology during its development.

SRI is leading the multi-disciplinary CALO project team and, beyond participating in the research program, is also responsible for overall project direction, management, and development of prototypes. The project is bringing together leading computer scientists and researchers in artificial intelligence, machine learning, natural language processing, knowledge representation, human-computer interaction, flexible planning, and behavioral studies.

That's a term I was not aware of, "enduring personalized cognitive assistant", or EPCA. CALO was funded by DARPA back in 2003. DARPA has also used the term "enduring, personalized, office assistant." I was also not aware of the term "Personalized Assistant that Learns (PAL)." I should probably spend more time reading DARPA solicitations and announcements.

-- Jack Krupansky

Software agent technology questions

I still consider software agents to be a deep research field that is still not ripe for wide-scale commercialization with ease and at low cost. Many research questions remain wholly or at least partially unanswered. I have published a Web page with a preliminary list of software agent technology questions. At this stage, I am less interested in the actual answers than in refining the questions themselves. Hopefully the questions will suggest areas of inquiry to others.

I will update the list of software agent technology questions on occasion, but updates will appear in this blog as well.

Here is the current list of questions:

  1. How intelligent do agents need to be?
  2. How do we measure agent intelligence?
  3. How dumb can an agent be and still be considered an agent?
  4. How autonomous do agents need to be?
  5. How do we measure agent autonomy?
  6. How can we detect the existence of an agent?
  7. Can we determine the intentions of an agent?
  8. Can we determine the beliefs of an agent?
  9. Can we detect the desires of an agent?
  10. What is the identity of an agent?
  11. How can we determine the identity of an agent?
  12. Can an agent really distinguish the real and cyber worlds?
  13. How can we trust an agent with money?
  14. What does it mean to clone an agent and what are its effects?
  15. What is a rogue agent?
  16. How can we detect rogue agents?
  17. What states can an agent be in?
  18. What responsibilities can an agent have?
  19. Can an agent really be trusted?
  20. How can we tell what ways an agent can be trusted?
  21. Who owns agents?
  22. Does every agent need to have an owner?
  23. Are agents owned in a legal sense?
  24. What laws and regulations govern the behavior of agents?
  25. In what ways can agents be controlled?
  26. Who can control agents?
  27. What infrastructure is needed to support agents?
  28. Can agents store state?
  29. How can agents store and restore state?
  30. Can agents spend money?
  31. Can agents earn money?
  32. Can agents transfer money?
  33. Can agents engage in business transactions?
  34. Can an agent have power of attorney?
  35. Can an agent be a legal entity?
  36. Can an agent represent a legal entity?
  37. Does an agent have any rights?
  38. Aren't all computer programs agents?
  39. Isn't an agent still a computer program?
  40. Can a software entity be an agent and not be a computer program?
  41. In what ways can agents interact with each other?
  42. Can any entity tell if the entity it is interacting with is an agent?
  43. What is the role of strategy in agent behavior?
  44. Can we tell if an entity is an agent from its behavior?
  45. How can we tell what an agent is doing?
  46. How can we tell if an agent is doing what we expect it to do?
  47. How can we express our expectations so that a monitor can detect when expectations are or are not being met or in the process of being met?
  48. What level of Semantic Web structure is best for agents?
  49. What level of network connectivity is best for agents?
  50. What level of server architecture is best for agents?
  51. What level of cloud computing is best for agents?
  52. How can agents best discover resources, services, and other agents?
  53. What programming language constructs are best for agents?
  54. How can agents be re-programmed or re-targeted or re-missioned on the fly, dynamically?
  55. How can agents work in a swarm to meet large-scale goals?
  56. How can large-scale goals be specified?

-- Jack Krupansky

Monday, June 30, 2008

State of the Semantic Web

Danny Ayers has put out a query on a couple of the W3C email lists about the "State of the Semantic Web." I emailed him my current view:

I am personally interested in the "state" of the distinction between "Semantic Technologies" (or "Semantic Web Technologies") and the original vision of the Semantic Web. There is certainly a lot of usage of XML and RSS and even RDF, but how much of that is for relatively simply "data exchange" as opposed to allowing open-system intelligent software agents to make inferences on that data beyond the kind of processing that one word do in an object-oriented programming language, remote procedure call, relational database access, and old-fashioned business rules processing?

The true Semantic Web was supposed to be a lot more than simply replacing proprietary data formats with some common data format, and a lot of the discussions on ontologies seem to headed more in the direction of a multiplicity of Towers of Babel rather than some form of common interchange of knowledge.

That said, I think that this is a reasonable state of affairs for this stage of a bold, new technology venture and probably where we should be about now since a lot of the open-system and intelligent agent inferencing requires a lot more fundamental research and evolution towards de facto "standards" for even simple, common knowledge.

We will be unable to achieve "brilliance" for the overall Semantic Web until we are at least able to easily construct "islands of brilliance" (specific domains or applications) and then and only then can we have even a remote chance of figuring out how to "bridge" between those islands to achieve truly impressive "archipelagos of brilliance", let alone some semblance of a "universe of brilliance" that has a sense of connectedness comparable to today's text and graphics Web.

At least this is what I will claim for my own humble opinion.

-- Jack Krupansky

Saturday, March 01, 2008

Plumbing the Semantic Abyss - my new blog on the Semantic Web

Although the Semantic Web does relate to the world of software agents, the intersection is not complete. There are plenty of aspects of software agent technology that are in no way dependent on the technologies of the Semantic Web, and there are aspects of the Semantic Web that may not have great utility in the realm of software agents. Not to mention that there are undoubtedly conflicts between the two. Still, I do believe that any discussion of either should involve the other, but I do not what to overwhelm a discussion of software agent technology with any of the distracting concepts of the Semantic Web. In this spirit, I have created a new blog that will focus on the Semantic Web with a particular focus on the difficulty in aligning the "meaning" embodied in the Semantic Web with meaning in the real world and in the lives of users and in particular consumers. There is a vast gulf, wide and deep, between these two notions of meaning, a so-called semantic gap, and the advance of software agent technology, in particular for consumers, is critically dependent on finding ways to bridge the gulf.

My new blog is called The Semantic Abyss - Plumbing the Semantic Web or Semantic Abyss for short. You can find it on Blogger at http://semanticabyss.blogspot.com or access it directly from the custom domain name http://semanticabyss.com.

It is not my intention to completely separate discussion of software agents and the Semantic Web, but to have these two discussions be companions on somewhat parallel but somewhat independent trajectories, with occasional crossover of discussions.

-- Jack Krupansky

Labels: , , ,

Sunday, February 24, 2008

Things to know about the Semantic Web

For future reference, Bernard Lun on the ReadWriteWeb blog has a post entitled "11 Things To Know About Semantic Web" that makes a number of key points about the current state of affairs with the Semantic Web. One that stood out as far as potential for me personally was:

3. If you have a firm grasp of the theoretical underpinnings of the semantic web, things like RDF, tuples, Sparql and OWL that make my brain hurt, you will be able to charge a fat premium in consulting fees for a while, as not many people really understand this stuff. But make hay while the sun shines, as some entrepreneur will surely figure out how to abstract this stuff and make it accessible for the masses.

Yes, that is what I aim to do: "make it accessible for the masses." I want to be that entrepreneur, or at least one of them.

There is a lot of great research work going on with the Semantic Web, and some initial industrial and commercial uses (e.g., RDF for blog web feeds), but most of the true power of the Semantic Web is still very far from being ready for general consumption by "the masses."

Consumers are the ultimate audience that I am really after, with software agents mediating the interface between consumers and Semantic Web data.

I will have more to say about this once I start my new blog dedicated to Semantic Web technology.

-- Jack Krupansky

Monday, December 24, 2007

Space, the final frontier?

We are all familiar with the intro to the old Star Trek show, "Space, the final frontier", but in the virtual universe of the online "world" what is the nature of "space" and is it really a frontier?

Most people would agree that linear distance is completely irrelevant in the online world, where computer systems thousands of miles apart might as well be in the next room and a click could take you to data less than an inch away or a world away. An exception is that once we start communicating outside of the physical earth (e.g., Mars or deep space probes), latency becomes a very real issue.

Density of "space" (in terms of computing nodes or locations of files) is similarly completely irrelevant in the online world.

Space in terms of quantity of bits and bytes and data fields and database records is also completely irrelevant in the online world, with the exceptions of 1) occasional lack of local storage space due to artificial "quotas", and 2) latency and access time.

The next form of space is page layout. In print, writers have very hard and fixed boundaries for the amount of text and graphics that can be included in their stories. Getting an extra inch or page requires mighty effort. The Web page has no such limits. As such, space on web pages is effectively infinite and not a frontier at all.

But, there is another form of space online, screen size. The client device, typically a PC, does in fact have a relatively limited amount of space available. Sure, you can scroll and page through your large web pages, but there is a usability factor at work as well. Most "readers" do not read sequentially at all, but scan and bounce around. Their attention span for "viewing" a web page is limited, so asking them to scroll and page and click to get to the rest of the content is frequently too much to ask. The average reader has an unlimited number of content sources and will migrate to wherever screen size limitations are most respected.

Blogs and RSS readers introduce another layer  of space constraint. Sure, you can still page and link to get to unlimited amounts of space, but there is a clear premium value given to terse and concise blog posts that convey the essential meaning of a post in a single "view" in a small subset of the total screen space without demanding extra effort on the part of the user.

Finally, there is an even more intense constraint, or frontier if you will, imposed by accessing online content on a handheld mobile device such as a smartphone. Sure, you can certainly zoom and scroll and page and link to access an infinite amount of content, there is a clear premium value given to content providers who can format and express essential meaning in small-screen chunks.

So, in some sense the online world frees us of the limits and frontiers of three-dimensional and print space, but our access devices and human perceptual limitations give us new frontiers to tackle. We can look forward to a wealth of innovation in how to express, chunk, format, view, and navigate within online content in the years to come. Even the vaunted iPhone only scratches the surface. Even Google has not yet mastered the small screen.

Given the ease with which we can construct large computer networks with vast amounts of data storage and the vast, unlimited expanse of the Web, it certainly does feel as if the small screen of handheld devices is in fact a true frontier where opportunity is unlimited and existing solutions are quite limited.

-- Jack Krupansky

Sunday, October 07, 2007

How safe is your personal data in the hands of Web-based vendors?

An article in The New York Times by Denise Caruso entitled "Securing Very Important Data: Your Own" illustrates the benefits and downsides of sharing personal data on the Web:

This type of sensitive, sometimes proprietary information was once locked up on hard drives or in file cabinets far away from anything resembling a global or even a local distribution network. Yet none of the users flocking to these services seem perturbed that they have relinquished personal control over this data to companies that, even with the best of intentions, may not be able to keep it safe.

The incidence of data theft -- from wallets to data breaches, computer viruses or Dumpster diving -- is soaring. This year alone, the security of nearly 77 million Americans' records has been breached, according to the Identity Theft Resource Center in San Diego, nearly a fourfold increase over 2006.

Governments around the world are passing and enforcing laws that increasingly hold businesses financially accountable for avoidable data losses. Just last month, the TJX Companies, which owns T.J. Maxx, Marshalls and other retail stores, made a settlement offer, subject to court approval, to victims of a huge data breach, in which 45.7 million customers' credit- and debit-card data was exposed to identity thieves.

As a result, some security experts are starting to ask whether the "identity data-for-services" business model, which is the engine for virtually all e-commerce companies, is a fair trade -- not just for consumers, but for business as well.

In response, they are coming up with new protocols and frameworks for collecting, using and governing identity data. Given that virtually all businesses today collect and use these kinds of data, they aim to shift the status quo in ways that could help companies both improve their reputations with customers and avoid the mounting legal liabilities that now face companies that lose control of customer data.

"The myth is that companies have to know all this information about you in order to do business with you," said Drummond Reed, vice president for infrastructure at Parity Communications, an identity technology company in Needham, Mass. "But from a liability perspective, the less I know about my customers the better."

Parity is sponsoring a number of open software projects to shift more control to the users whose identity data is at risk. One of the most intriguing is called the CloudTripper Project, which is developing a way for individuals to "take their data with them" as they traverse the Web, just as they keep their wallets and checkbooks with them as they move around in the real world.

My own solution is to propose a research effort for something I refer to as The Consumer-Centric Knowledge Web. Cobbling together an ad-hoc approach in a piecemeal fashion is likely to cause more harm than good. OTOH, the more ad-hoc efforts that go forward and highlight the inherent problems in this area, the quicker people will warm up to the need for a hard-core research effort such as I have proposed.

-- Jack Krupansky

Sunday, June 03, 2007

Searching for terms related to software agent technology

I have enhanced the Search page for my Software Agent Technology web site, Agtivity.com, to make it easy to search for some common terms related to software agent technology. See Software Agent Technology Search. The page currently has only a modest number of terms, but the list will be expanded over time.

Please give us your feedback.

-- Jack Krupansky

Sunday, May 20, 2007

Quantum information technology

One far out field that may have dramatic implications for computing and software design in the coming decades is the emerging research in quantum information technology.

For example, from the Multidisciplinary University Research Initiative (MURI) program of Massachusetts Institute of Technology (MIT) and Northwestern University (NU), we read that:

Quantum superposition and quantum entanglement are the bedrock on which new theoretical paradigms for information transmission, storage, and processing are being built. The preeminent obstacle to the development of  quantum information technology is the difficulty of transmitting quantum information over noisy and lossy quantum communication channels, recovering and refreshing the quantum information that is received, and then storing it in a reliable quantum memory.  

With support from the Multidisciplinary Research Program of the University Research Initiative (MURI), we have assembled a truly interdisciplinary team from researchers at MIT and Northwestern University to overcome this obstacle. The focus of our program is an architecture we have established for long-distance, high-fidelity qubit teleportation. Its key elements are:

  • ultrabright, narrowband sources of polarization-entangled photon pairs;
  • long-distance transmission of entangled photons over standard telecom fiber;
  • qubit storage and processing in trapped atom quantum memories.

Although some of these concepts may make more obvious sense down at the bit, byte, chip, and machine language levels, I suspect that the concepts may have even greater potential if they can be transplanted to the level of software, software components, and software agents.

Try to imagine what quantum information technology might mean at the level of the Semantic Web and Web Services.

Try to imagine a large number of swarms of software agents interacting via the exchange and sharing of quantum information and built upon the concept of quantum entanglement.

-- Jack Krupansky

Sunday, May 06, 2007

Four levels of language for semantics and knowledge

The open question of language level comes up when considering the open question of how to represent, access, manipulate, and otherwise use knowledge and meaning in the form of a distributed knowledge web or semantic web. I certainly do not have any  immediate answer, but I was thinking that rather than envisioning one unified "knowledge" language, possibly we need a multi-level language model:

  1. Low-level "assembly" language - work with meaning and knowledge at a very atomic level
  2. High-level language - a very expressive language that focuses on higher-level structured meaning, probably leveraging contextual meaning
  3. Scripting language - a concise, terse, convenient method for working with knowledge that emphasizes broad expressive power rather than specific detail and nuanced meaning
  4. Natural language - heavily dependent on context and very ambiguous, but very easy and natural to use. Appropriate for "display" of knowledge structures.

One issue is whether natural language is really a separate level or can be used at all three of the other levels.

Another issue is that we need to be able to work with meta knowledge, to treat packages of knowledge as black boxes and networks of interconnected black boxes to be manipulated in an abstract sense, separated from the actual, true meaning of the contents of those black boxes. Possibly this is a requirement at each of the four language levels.

Another issue is multiplicity, the number of distinct languages at each level. Obviously we have many natural lanuages. Multiple scripting and higher-level languages makes sense. Having a single, common, foundation "knowledge assembly language" has a lot of appeal, but is it really viable and is it clearly really advantageous relative to having a multiplicity of low level knowledge and meaning paradigms? I don't see any clear answer at this point in time.

Is the current Semantic Web at this assembly level or high-level or scripting level? I suspect that the answer is that it is not clear. Clearly there is some amount of scripting being done in XML. Clearly there is some amount of high-level semantics being done (e.g., RSS and web feeds). And clearly there is a fair amount of very low level semantic use. But is XML more of a lexical and syntactic language than a true semantic language? It seems to me that its only current power at the meaning level comes when the people and programs a priori agree on shared meaning representation conventions, and that is precisely what we would like to see inherently embodied within a true knowledge language at any of the levels that I have proposed. In short, it appears that there is very little in the way of meaning represented within the Semantic Web, and that the only real meaning is hard-coded into the user agents that communicate via the Semantic Web. In other words, at best, the Semantic Web is everything but semantics, and that the Semantic Web simply facilitates the exchange of information that user agents can interpret as meaning using hard-wired or agreed semantics.

-- Jack Krupansky

Sunday, March 25, 2007

Artificial Artificial Intelligence: supplementing machine intelligence with human intelligence

There is an article in The New York Times by Jason Pontin entitled "Artificial Intelligence, With Help From the Humans" about efforts to use web-based human workers to supplement artificial intelligence (AI) efforts. Noting that "Things that humans do with little conscious thought, such as recognizing patterns or meanings in images, language or concepts, only baffle the machines", the article goes on to tell us that:

The problem has prompted a spooky, but elegant, business idea: why not use the Web to create marketplaces of willing human beings who will perform the tasks that computers cannot? Jeff Bezos, the chief executive of Amazon.com, has created Amazon Mechanical Turk, an online service involving human workers, and he has also personally invested in a human-assisted search company called ChaCha. Mr. Bezos describes the phenomenon very prettily, calling it "artificial artificial intelligence."

The articles examines some of the practical and human issues with such "work", but this is still a wide open area with at least some potential. The technique is not without its problems and limitations:

THERE have been two common objections to artificial artificial intelligence. The first, confirmed by my own experiences searching on ChaCha, is that the networks are no more intelligent than their smartest members. Katharine Mieszkowski, writing last year on Salon.com, raised the second, more serious criticism. She saw Mechanical Turk as a kind of virtual sweatshop. "There is something a little disturbing about a billionaire like Bezos dreaming up new ways to get ordinary folk to do work for him for pennies," she wrote.

My personal view is that I am not a supporter of the "pennies" economic model. At a minimum, the prevailing federal minimum wage should be used. Encouraging servitude should not be considered socially or economically acceptable. AAI should not be built upon a financial foundation that relegates real people to being simply "slaves to the machines."

-- Jack Krupansky

Wednesday, March 14, 2007

Danny Hillis has an addendum to "Arisotle: The Knowledge Web"

Danny Hillis has published an addendum to his May 2004 essay on Edge that was entitled "Arisotle: The Knowledge Web" which summarizes his efforts at his new company Metaweb to produce a freely accessible universal knowledge database:

In retrospect the key idea in the "Aristotle" essay was this: if humans could contribute their knowledge to a database that could be read by computers, then the computers could present that knowledge to humans in the time, place and format that would be most useful to them.  The missing link to make the idea work was a universal database containing all human knowledge, represented in a form that could be accessed, filtered and interpreted by computers.

One might reasonably ask: Why isn't that database the Wikipedia or even the World Wide Web? The answer is that these depositories of knowledge are designed to be read directly by humans, not interpreted by computers. They confound the presentation of information with the information itself. The crucial difference of the knowledge web is that the information is represented in the database, while the presentation is generated dynamically. Like Neal Stephenson's storybook, the information is filtered, selected and presented according to the specific needs of the viewer.

John, Robert and I started a project,  then a company, to build that computer-readable database. How successful we will be is yet to be determined, but we are really trying to build it:  a universal database for representing any knowledge that anyone is willing to share. We call the company Metaweb, and the free database, Freebase.com. Of course it has none of the artificial intelligence described in the essay, but it is a database in which each topic is connected to other topics by links that describe their relationship. It is built so that computers can navigate and present it to humans. Still very primitive, a far cry from Neal Stephenson's magical storybook, it is a step, I hope, in the right direction.

The original Aristotle essay is well worth reading.

There is a related article in The New York Times by John Markoff entitled "Start-Up Aims for Database to Automate Web Searching" about Hillis, Metaweb, and Freebase.

My own ruminations on the concept of a Knowledge Web can be found in my white paper entitled The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing.

-- Jack Krupansky

Monday, March 05, 2007

Spatial agents

I'm not sure precisely what the term spatial agent refers to, but I ran across it and it sounds worth investigating.

I suspect it relates to cellular automata, but it may have broader applications and analytic uses.

-- Jack Krupansky

Sunday, March 04, 2007

Renaming DVPC to DVPDS - proposal for Distributed Virtual Personal Data Storage

A couple of years ago I came up with a proposal for something I called a Distributed Virtual Personal Computer (DVPC), which was an attempt to abstract the user's data from their personal computer and have that virtual data live on the Internet, with the local storage of the PC simply being a cache of the distributed, virtual data. I have decided to rename the concept to Distributed Virtual Personal Data Storage (DVPDS) to focus the emphasis on the user's data as distinct from the computing or processing capabilities of their PC.

I don't intend to pursue implementation of the DVPDS concept at this time, but I do want this proposal to be available so that others may contemplate the incorporation of its features into computing infrastructures that they may implement in the coming years.

Here is the preamble for the new DVPDS proposal:

This proposal for Distributed Virtual Personal Data Storage (DVPDS) supersedes my previous proposal for a Distributed Virtual Personal Computer (DVPC). DVPDS includes all of the concepts of my previous DVPC proposal, but simply changes the name to emphasize the focus on the data storage aspects of a personal computer (PC) as distinct from the computing or processing capabilities of a PC. In particular, it abstracts the user's personal data to give it a virtual form distinct from the actual storage used to store that virtual data.

The intention remains that all of a user's data would live in a distributed, virtual form on the Internet, and that the user's device (PC or phone or other computing device) merely caches the distributed, virtual data. The intention is that the user gets all of the performance and other benefits of local mass storage, with none of the downside, such as need for backup, anxiety caused by lost or mangled data, inconvenience of access from other machines, difficulty of managing archives, etc.

The intention is not that the user would "work on the Web", but to continue to emphasize higher productivity through rich client devices with instantaneous data access and full control of that data. In practice, users will frequently or usually work directly on the Web, but occasionally or sometimes frequently or for extended stretches of time they may work disconnected from the Internet, all seamlessly and with no loss of the positive aspects of the user experience.

With regard to the requirements for being distributed, the emphasis is on maximum diversity so that users can be guaranteed that their data will be both readily accessible and protected from loss due to even the most extreme of contingencies. Degrees of diversity include vendor, geography, communications backbone, and offline, so that neither human error, fire, flood, earthquake, explosion, vendor financial difficulties, sabotage, theft, or legal disagreements, can cause any of a user's data to become inaccessible for more than a shortest period of time. A particular emphasis is placed on avoiding vendor-specific solutions. Vendor "lock-in" is unacceptable.

One area that needs attention since my original proposal is the more-demanding storage requirements for media such as music, video, podcasts, and movies, as well as intellectual property issues such as DRM.

This proposal is in the public domain. It may be copied and modified -- provided that Jack Krupansky and Base Technology are credited and a link back to this original proposal is provided AND these same use and distribution terms are carried along.

Please note that DVPDS is only a concept right now, with no implementation or business plan to turn the concept into a product and service.

The rest of the document is unchanged since its creation to describe the DVPC concept, but should be read as referring to the DVPDS concept.

-- Jack Krupansky

Dumb PC/smart Web versus smart PC/dumb Web

One of the issues that we need to confront as we design the computing architectures of the future is the question of which will be "smarter", the user's "device" (PC or "phone" or other object) or the applications on the Web.

One route is that we continue to put a fair amount of intelligence on the user device and that the Web remain primarily relatively static data and "services". For example, the browser and browser "add-ons" would continue to get smarter, and Web Services would be primarily "utilities" to be used by browser-based applications.

The complementary route is that the user device be relegated to being a relatively "dumb", "thin" client, strictly focused on UI implementation and that the real "smarts" of applications would live on Web servers. For example, the browser would support sophisticated AJAX-like UI support and a 3-D graphical environment, but little in the way of support for "intelligent" operations on the device itself.

Obviously you can have a full spectrum of hybrids of dumb/smart, but then we will have to constantly be making tradeoffs about dumb/smart as we design each application. That might be optimal for specific applications, but raises the cost of designing, implementing, and supporting applications and it may be pure hell for poor "dumb" users who simply want some consistency between applications so that they don't need to figure out every new application and try to keep them all straight.

This raises the next question, which is what criteria to use to decide where along the spectrum smartness and dumbness lie.

It also raises the question of where software agents will live and operate. Do we want agents to live strictly on servers with only UI elements on the user device? Or do we want software agents to live and work on the user device as well or even primarily on the user device?

More food for thought.

-- Jack Krupansky

Saturday, March 03, 2007

The fractal nature of the Web - updated

TBL has updated his commentary entitled "The Fractal nature of the Web" with some notes on how the Semantic Web can and must work with a combination of overlapping global and local ontologies. He discusses the importance of thinking about ontologies and domains from the perspective of agents that communicate with messages relating to ontologies and domains that they share. He concludes:

So the idea is that in any one message, some of the terms will be from a global ontology, some from subdomains. The amount of data which can be reused by another agent will depend on how many communities they have in common, how many ontologies they share.

In other words, one global ontology is not a solution to the problem, and a local subdomain is not a solution either. But if each agent has uses a mix of a few ontologies of different scale, that is forms a global solution to the problem.

His overall "web fractal" commentary starts from this thought:

I have discussed elsewhere how we must avoid the two opposite social deaths of a global monoculture and a set of isolated cults, and how the fractal patterns found in nature seem to present themselves as a good compromise. It seems that the compromise between stability and diversity is served by there the same amount of structure at all scales. I have no mathematical theory to demonstrate that this is an optimization of some metric for the resilience of society and its effectiveness as an organism, nor have I even that metric. (Mail me if you do!)

However, it seems from experience that groups are stable when they have a set of peers, when they have a substructure. Neither the set of peers nor the substructure must involve huge numbers, as groups cannot "scale", that is, work effectively with a very large number of liaisons with peers, or when composed as a set of a very large number of parts. If this is the case then by induction there must be a continuum of group sizes from the vary largest to the very smallest.

File this under "food for thought." This issue of how domains can interoperate and the respective role of global domains is key to developing a global knowledge web. How to achieve stability in the presence of diversity is a quite difficult problem. This will need some original thinking on the nature of equilibrium.

-- Jack Krupansky

Saturday, February 24, 2007

Test

Test.

-- Jack Krupansky

Knowledge mail and knowledge messages

One interesting idea that I would eventually like to pursue is a concept I call knowledge mail. The basic idea is that rather than manually composing text messages for our online communications, we need tools to compose knowledge and to compose queries about knowledge. The twin goals would be to simplify communication and to enable intelligent software agents to participate at a high level in our online communications.

I do not have any of the details worked out. I just know that so much of what I do via email in an ad hoc manner could be codified and structured and automated. I do belief that it is a very hard problem, but one worth pursuing.

If anybody has reason to believe that my faith in this concept of knowledge mail is misplaced, lets hear it.

Open question: How might this blog post itself, which I submitted via an email message, be represented as machine-readable "knowledge" rather than ad hoc prose?

I suppose I should use the term knowledge blog or knowledge blog post to adapt the concept from mail to blogs.

Or, maybe we should use the term knowledge message to generalize the concept to encompass email, blog posts, instant messages, etc. I think that makes sense.

Another open question: What problems would need to be solved to enable and provide support for online communications based on knowledge mail and knowledge messages?

-- Jack Krupansky

Sunday, February 11, 2007

Intel Tests Chip Design With 80-Core Processor

I was thrilled to see the news that Intel was testing an 80-core processor. Not that such a chip by itself will be terribly useful for much more than research, experimentation, and niche applications, but it heralds a bigger leap into what I call ultra-massively parallel computing with thousands or even tens of thousands of simpler processors on a single chip, and a form of computing hardware that will finally be able to enable hard-core use of software agent technology where you have many thousands of lightweight processes running within a single system.

The computing infrastructure of the future will be based not upon very complex cores, but very large numbers of simple cores.

Nonetheless, this news of an 80-core chip is a truly exciting advance.

-- Jack Krupansky

Friday, December 22, 2006

Trust No One?

I'm sitting here in New York City on vacation (yes, Manhattan *is* relaxing for me) and may go see De Niro's new movie about the CIA, The Good Shepard. The motto in the movie is "Trust no one." That reminds me of one of the central, vital, and unsolved issues for software agent technology: trust. Sure, we have all manner of authentication and authorization identity systems, but ultimately they are extremely limited in scope and simply don't even come close to addressing the concerns of open software agent systems, let alone the issues related to integrating the online cyber world and the physical world and the human social world. Yes, it is true that ultimately there is no absolute trust, but in practice trust is a spectrum of degrees of trust, with a multitude of orthogonal spectrums of purposes of trust. Ultimately, we want to analyze the risk of engaging in any act based on trust. Even if all parties are absolutely honest, mistakes can be made and perceptions can be mistaken, so simply trying to authenticate identity and provenance of "facts" to the nth degree is insufficient to get to an absolute form of trust.

Much of the technological interest in trust to date has focused on trust regarding identity, but a great looming problem for social computing is trust related to the truth of alleged facts and alleged knowledge claims. We talk about establishing contracts between software entities, but this presupposes that we trust that the parties are committed to honoring the terms of the contracts. Once again, it may not be so much a matter of judging sincerity of commitment, but judging the risk that the terms might not be honored due to mistakes or misperceptions or misinterpretation of the terms or ambiguous interpretation of the terms or a cascade of trust failures from other entities and other contracts, and also judging the risk of the consequences of failure modes for the contracts.

We humans in our real physical and social worlds have massive difficulties with trust, either being too trustful, or not trustful enough, so one open question is whether our engineered social computing systems can do a much better job at the trust thing, even theoretically.

We got ourselves into a global "war on terror" because we trusted the agenda of the Neoconservatives. Not to mention the fact that we trusted that previous administrations were "doing the right thing" on the counterterrorism front.

We got ourselves into the quagmire of Iraq because we once again trusted the judgment of the Neoconservatives and we trusted their vetting of intelligence about Iraqi possession of weapons of mass destruction. We also trusted that WMDs were the actual motivation and agenda for the Neoconservatives.

We are presently engaged in a stare-down contest and saber-rattling with Iran because we trust that the Neoconservatives are now right about Iran's commitment to turn a civilian nuclear energy program into a nuclear weapons development and deployment program. We also trust that the Neoconservatives are 100% correct in their assertion that Iran is the main source of funding and arms for Hezbollah in Lebanon. How likely is it that all of the "trust" at stake is likely to be found to be justified a few years from now? And so much more justified than the mistaken trust on the "war on terror" and Iraq?

If we humans are capable of such lousy performance on the trust front in the real physical and social worlds when so many lives and no much money is at stake, how exactly do we expect to transcend these massive failures and incompetencies as we build trust systems in the online cyber world?

This is a massive, open, unresolved issue.

One technique is the statistical approach, such as used to address computer viruses and malware, but this is of no help when software agents are struggling with knowledge that is too limited to be statistically measurable, such as a contract between a pair of agents involving a small number of knowledge claims. Not to mention that the statistical approach is not 100% reliable. Although high statistical reliability can assure that large-scale systems can work overall, it is no solace for the statistically insignificant individuals who are greatly harmed by the statistically insignificant "errors". We need approaches that will simultaneously address the large-scale issues and the individual-level issues. Ultimately, we need systems that can work efficiently and reliably at the level of individual pairs of software agents and contracts.

The Good Shepard approach of trusting no one does in fact have some merit and applicability to social computing, but just as the protagonist in the movie ran into difficulties by taking an absolute negative stance on trust, we need to assure that software agents in social computing systems are based on analysis of risk rather than assumption that truth and trust are binary on or off qualities.

-- Jack Krupansky

Sunday, November 12, 2006

Web 3.0 and Web 4.0

It is nice to see that the NY Times in an article by John Markoff entitled "Entrepreneurs See a Web Guided by Common Sense" is acknowledging the pursuit of Web 3.0 as a successor to current Web 2.0 efforts. Alas, current efforts to leap forward from Wed 2.0 are far too vague, sketchy, halfhearted, and even ill-conceived or misguided to achieve even a fraction of my vision for The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing. Still, it is nice to see even a little forward progress.

The Times article focused on data mining or knowledge mining of the existing Web, saying "computer scientists and a growing collection of start-up companies are finding new ways to mine human intelligence."

The Times summarizes the whole Web 3.0 effort as:

Their goal is to add a layer of meaning on top of the existing Web that would make it less of a catalog and more of a guide — and even provide the foundation for systems that can reason in a human fashion. That level of artificial intelligence, with machines doing the thinking instead of simply following commands, has eluded researchers for more than half a century.

Referred to as Web 3.0, the effort is in its infancy, and the very idea has given rise to skeptics who have called it an unobtainable vision. But the underlying technologies are rapidly gaining adherents, at big companies like I.B.M. and Google as well as small ones. Their projects often center on simple, practical uses, from producing vacation recommendations to predicting the next hit song.

But in the future, more powerful systems could act as personal advisers in areas as diverse as financial planning, with an intelligent system mapping out a retirement plan for a couple, for instance, or educational consulting, with the Web helping a high school student identify the right college.

Alas, nothing in the article really put any meat on the bones of the teaser from the title: guided by common sense. Sure, the Cyc effort does take a stab at "common sense", but falls far short of the kind of common sense that consumers expect from real people.

Still, I welcome the Web 3.0 efforts, however meager they might be, since until we slog through them, most people won't have the mental frame of mind to grasp the full scope of what is needed for my Consumer-Centric Knowledge Web.

Maybe I need to start calling my vision Web 4.0 to make it clear what a long way we still really have to go to get to my vision for a Consumer-Centric Knowledge Web.

-- Jack Krupansky

Saturday, November 04, 2006

Web Science Research Initiative (WSRI)

World Wide Web inventor Sir Tim Berners-Lee is one of the founding directors of a new joint research effort called the Web Science Research Initiative (WSRI) which will be a joint effort between the University of Southampton and the Massachusetts Institute of Technology. As the announcement on Thursday, November 2, 2006 states:

The University of Southampton and the Massachusetts Institute of Technology today announced the launch of a long-term research collaboration that aims to produce the fundamental scientific advances necessary to guide the future design and use of the World Wide Web.

The Web Science Research Initiative (WSRI) will generate a research agenda for understanding the scientific, technical and social challenges underlying the growth of the Web. Of particular interest is the volume of information on the Web that documents more and more aspects of human activity and knowledge. WSRI research projects will weigh such questions as, how do we access information and assess its reliability? By what means may we assure its use complies with social and legal rules? How will we preserve the Web over time?

As Tim puts it, "As the Web celebrates its first decade of widespread use, we still know surprisingly little about how it evolved, and we have only scratched the surface of what could be realized with deeper scientific investigation into its design, operation and impact on society. The Web Science Research Initiative will allow researchers to take the Web seriously as an object of scientific inquiry, with the goal of helping to foster the WebÂ’s growth and fulfill its great potential as a powerful tool for humanity."

There is a brief two-page description of "Web science" entitled "Creating a Science of the Web" in the August 11, 2006 issue of SCIENCE magazine.

A much more elaborate description of the research issues can be found in the 130-page paper/treatise/book entitled "A Framework for Web Science" (available free online) authored by Tim Berners-Lee of the Computer Science and Artificial Intelligence Laboratory (CSAIL), Massachusetts Institute of Technology, Wendy Hall of the School of Electronics and Computer Science, University of Southampton, James A. Hendler of the Department of Computer Science, Rensselaer Polytechnic Institute, Kieron O'Hara of the School of Electronics and Computer Science, University of Southampton, Nigel Shadbolt of the School of Electronics and Computer Science, University of Southampton, and Daniel J. Weitzner of the Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology. The abstract states the purpose concisely:

This text sets out a series of approaches to the analysis and synthesis of the World Wide Web, and other web-like information structures. A comprehensive set of research questions is outlined, together with a sub-disciplinary breakdown, emphasising the multi-faceted nature of the Web, and the multi-disciplinary nature of its study and development. These questions and approaches together set out an agenda for Web Science, the science of decentralised information systems. Web Science is required both as a way to understand the Web, and as a way to focus its development on key communicational and representational requirements. The text surveys central engineering issues, such as the development of the Semantic Web, Web services and P2P. Analytic approaches to discover the WebÂ’s topology, or its graph-like structures, are examined. Finally, the Web as a technology is essentially socially embedded; therefore various issues and requirements for Web use and governance are also reviewed.

That's the simplified description:

Web Science - the science of decentralised information systems

This is a brand new effort and it is far too soon to judge its odds of success or the nature of its results, but I wholeheartedly welcome it and wish it well.

For me personally, the big, big, big question is whether this new research initiative, as large and grand as it is, really will subsume and implement the goals that I put forth in my own "research manifesto" entitled "The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing." I'm sure there will be plenty of overlap, but at this early date I am actually not so hopeful that even TBL's grand WSRI will fulfill my vision for a Consumer-Centric Knowledge Web.

-- Jack Krupansky

Sunday, September 24, 2006

Unification of computation, communication, and community

I was just thinking a little bit this weekend about the nature of communications and realized that what we really need to explore and exploit is the unification of computation, communication, and community. Each is worth exploration and exploitation on its own, but it is the various intersections of the three dimensions that hold the most promise.

A few points:

  1. Computation without communication is far less interesting.
  2. The potential for communications is far too limited without enhancing it with computation.
  3. Community can be dramatically turbocharged with advanced communications and advanced computing.
  4. Community gives a heart and soul to the raw technologies of computation and communication.
  5. To date, we have done a very poor job of integrating these three technological angles. Integration has always been an afterthought rather than a foundational concept.
  6. We need to rethink computation and assure that communication is handled at the same level as computation. Ditto for communication and computation.
  7. Maybe the hardest task is figuring out how to redefine computation so that community is a core foundation concept. The was part of my motivation with my thoughts on a Consumer-Centric Knowledge Web and how to look at software agent technology.

The key concept here is how to simultaneously think about compuation, communication, and community, rather than each on its own or the distinct pairings. I am not there yet, but it does seem like an interesting place to go. What might we even call the combination? I am tempted to continue to call it computing, or maybe Computing 2.0 or Computing 3.0 if you want to consider the Internet and Web as Computing 2.0.

-- Jack Krupansky

Saturday, July 08, 2006

Tacit knowledge and tacitness as a dimension

One of the big challenges in knowledge management and training software agents to learn is the concept of tacit knowledge, which encompasses that which we "know" and which can influence our thinking, and behavior, but which is difficult or even impossible to conciously communicate to others. Rather than conceptualize it as a binary state, is or is not tacit, it may make a lot more sense to look at it as a dimension, a spectrum of difficulty of conceptualization and communication.

There are implicitly two aspects of tacit knowledge: our ability to conciously "think" about and contemplate knowledge, and our ability to convey or communicate that knowledge to others, including computational entities.

Here are some of the degrees or levels of tacitness that immediately occur to me:

  • What we in principle or theory could never "know" or communicate, possibly due to the "computational" limits of our brains and minds.
  • What is extremely difficult to "get our minds around" or articulate and then only with great effort or superior insight, but nonetheless can in theory be conceptualized and communicated.
  • What is relatively difficult to conceptualize or communicate.
  • What is relatively or moderately easy to "know" but much more difficult to communicate.
  • What we believe or are sure that we know, but have great difficulty communicating.
  • What we know, but can commincate only with individuals who "have been there" and already share a substantial amount of common knowldge or shared experience.
  • What can be communicated easily only between individuals with a common culture.
  • What can be communicated easily only within specific communities.
  • What requires a shared expertise.
  • What requires a shared world view.
  • What can be conceptualized and communicated within a genetic species.
  • What can be conceptualized and communicated with relative ease.
  • What other entities may already know and a few clues or cues are all that are needed to "convey" understanding.
  • What other entities already know and we simply need to reference.
  • What others already knew before we even told them, what we didn't need to tell them and should have known that fact
  • What we believe that others already know and believe need not be communicated.

To communicate with people, software agents (computational agents) will need to have capabilities for coping with these and other aspects of tacit knowledge. In fact, intelligent software agents will need these capabilities even to interact with other computational entities.

The eternal question is and will be: What do you know and how can I know that I know what you know? A deep understanding of tacit knowledge is essential to being able to answer that question.

-- Jack Krupansky

Thursday, June 29, 2006

Almost six weeks at Microsoft

I'm finishing up my sixth week as a full-time employee at Microsoft this week as a Software Design Engineer in Test (or SDE/T or SDET) and still having a lot of fun at it. The work is interesting and challenging and gives me access to a lot of interesting people, technology, and toys, not to mention an interesting amount of money. It's not the same as working on your own or at a startup, but the energy level is still definitely "there".

-- Jack Krupansky

Tuesday, June 27, 2006

Finally moved into my new apartment in Bellevue, Washington

Sunday I finally took possesion of my new apartment in a brand new high-rise apartment building in Bellevue, Washington, which is the next town southwest of Redmond. Actually, it's more of a city. My building is 23 stories tall and isn't even close to being the tallest building in downtown Bellevue. The Westin hotel occupies the first 19 floors of a 42-story building and there are a bunch more tall building as well.

I'm only on the fourth floor, but the building is on a slight hill and gives me a nice view of Mt. Rainier. There are plenty of restaurants and lots of shopping here in downtown Bellevue. It definitely has more of an urban feel, which I miss since I moved out of New York City. Downtown Redmond has more of a "sleepier", suburban feel.

My apartment is so new that there are half a dozen unfinished work items including shelves and installation of a microwave oven.

The rent isn't too bad. I only have a studio, but it is a decent size. It has built-in washer and dryer and air conditioning. There weren't many places that had studios when I was looking around, so I would have had to get a one-bedroom apartment and pay more than the brand new studio I got.

I'm going to stick with dial-up Internet access until I pay off a big chunk of my back taxes. That may be another year, but I'm not into all the video and music stuff that forces many people to be dependent on broadband.

-- Jack Krupansky

Saturday, June 24, 2006

Communication between Human and Artificial Agents(CHAA'06) versus communicating with teams of software agents

I saw an announcement for a workshop entitled Communication between Human and Artificial Agents(CHAA'06)  at the 2006 IEEE/WIC/ACM International Conference on
Intelligent Agent Technology (IAT-06)
:

The ability to communicate in a complex manner with others, to exchange ideas and thoughts, to convey factual information as well as wishes, goals, and plans, to issue commands, instructions and questions, and to express emotions and interact on a social level, is one of the most important and distinguishing aspects of humankind. If artificial agents want to progress to the next level, and truly and deeply interact with human users, they must possess expanded
communicative abilities.

This workshop focuses on methods and models to describe and implement communication between human and artificial agents, in all forms and on all levels.

The ultimate goal of this endeavour is to bridge the gap between the richness, complexity and expressiveness of human communication, and the (in)ability of artificial agents to (inter)act adequately in cooperations with humans.

The topic areas include:

  •  models of communicative behaviour, communication languages
  • natural language processing, interpretation by agents
  • dialogue structures
  • action representation, action theory, action ontology
  • knowledge representation, ontologies
  • physical, spatial, temporal and semantic contexts
  • gestures and facial expressions
  • multi-modal communication
  • speech and speech characteristics in communication
  • cooperative behaviour, negotiation, judgement
  • social norms and roles, social behaviours, social interaction
  • learning of interactive behaviours
  • learning in interactions, imitation learning
  • distant communication, wireless communication

My personal belief is that existing work has been more than a little misguided by focusing on interaction between a single human and a single software agent. The goal should not be communication directly between a human and "an" agent, but recognize that communities of humans need to communicate with communities of agents with a deemphasis on one-on-one communication. In general, many agents will need to have a comprehension of the beliefs, desires, and intentions (BDI) or a human as a community of interacting agents, not as a micro-managed one-on-one relationship. We should focus on intermediate data formats which can encapsulate human BDI expressions and that any number of agents can singly or jointed work towards the goals expressed in the BDI expression. Similarly, computational agents need to be able to express theselves in a BDI intermediate format that can then be "viewed" by any number of humans in their own terms. Clusters of agents may evolve towards focusing on narrower groups of humans or even a single human, but that is an evolutionary or emergent behavior, not a constrained communication channel that should be planned from the start. A one-on-one between "a" human and "a" software agent should be the exception, not the norm. Sure, there will be times when a single human "spokesperson" and a single computational "spokesagent" may be optimal, but again that should be a long-tail exception rather than the norm. We should focus on encouraging community communication, not social isolation.

The existing concept of a human communicating with "an" agent is merely derivative of classic interprocess communication in computer science, and not a concept that was derived from analyzing the potential of agents and human-agent communication.

-- Jack Krupansky

Wednesday, June 21, 2006

W3C RDF/OWL Representation of Princeton WordNet

The W3C now hosts the RDF/OWL Representation of WordNet which is a standard conversion the Princeton WordNet to RDF/OWL:

WordNet [Fellbaum, 1998] is a heavily-used lexical resource in natural-language processing and information retrieval. More recently, it has also been adopted in Semantic Web research community. It is used mainly for annotation and retrieval in different domains such as cultural heritage [Hollink et al., 2003], product catalogs [Guarino et al., 1999] and photo metadata [Brickley, 2002]. It is also used to ground other vocabularies such as the FOAF schema [Brickley and Miller, 2005], as background knowledge in ontology alignment tools and other applications (see http://esw.w3.org/mt/esw/archives/cat_applications_and_demos.html for a list). Currently there exist several conversions of WordNet to RDF(S) or OWL.

I haven't looked at it myself, but this could be a major milestone in providing a starting point for shared vocabularies.

-- Jack Krupansky

Sunday, June 18, 2006

Dis-optimization and late optimization

One of the things that we traditionally do to make "better" computer software is to perform optimization, either to enhance performance or tailor code to specific domains or sub-domains. Unfortunately, optimization grossly interferes with the goal of software agent technology, which is to be far more flexible and easier to adapt to new situations. Optimization by its nature involves making assumptions and hard-wiring them into the "code". The answer is dis-optimization, or figuring out how to relax the coding of computer software so that it can adapted automatically on the fly as the situation changes dynamically over time. We can also call this late optimization, since it cannot be done in advance or even fixed at any point in time since it will continually need to be changed to reflect evolving and emerging situations and late-breaking circumstances.

How to effect dis-optimization and late optimization is an open issue and in dire need of deep research.

-- Jack Krupansky

Saturday, May 27, 2006

What it feels like to be an employee again

Someone asked in a blog comment what it feels like to be an employee again. I replied that my short answer is that it is too soon to tell. The "honeymoon" isn't yet over. I'll have a better answer in a few months.

I'm really busy coming up to speed in the new job and waiting for my first pay check (not to mention my signing bonus).

I'm also still in the process of moving my residence. I'll be looking at more apartments next Saturday and hoping to make a housing decision then or within another week as well. I may not be "settled" until late June. This process will consume a lot of my "spare" time and attention.

All of this activity doesn't leave me with enough time to contemplate what I may be missing from the entrepreneurial world.

In truth, my recent entrepreneurial efforts (past few years) were stalled, unsuccessful, unsatisfying, and distinctly unprofitable at the point where I contemplated employment anyway, so it's not like I had a very hard choice to make or a lot to regret.

Two months ago I hadn't even imagined that I would consider working for my new employer as a full-time employee (known around here as a "blue badge FTE").

If I had had some great entrepreneurial opportunity in my head two months ago I certainly would have pursued it, but I didn't, so there is nothing for me to "miss" there.

My current plan is to spend the next five to ten years pursuing team-oriented opportunities at my new employer, and then consider my options going forward. I don't anticipate spending even two seconds of my time contemplating entrepreneurial opportunities over the next five years. I'll be too busy to do otherwise.

I'll spend the next year just coming up to speed for my initial position. Then I'll spend another year or two after that in my current position, establishing as strong a performance track record and reputation as possible, and only then contemplate moving around in the company and what type of "career" development I might want to pursue, such as PhD, MBA, JD, or whatever, so that five years from now I'll have plenty of options to pick from. I have absoluetly no idea where I might be five years from now, either in terms or my nominal position or my career options.

For now, I'll dedicate my personal time to assuring that my work life is extremely successful. Any "spare" time will be reserved for non-business pursuits (i.e., non-work and non-entrepreneurial).

Whether I do any further blogging remains to be seen.

As a final note, I'm not terribly happy with the overall state of the technology sector (my new employer excepted), including the dismal state of affairs with hardware architectures, new Web architecture and infrastructure and application development, the stumbling progress of the Semantic Web, the dismal state of Artificial Intelligence, and the lack of sufficiently robust and focused research programs in computer science and related disciplines. Far too much of what we're seeing as "entreprenurial" is incremental improvement, "me too", and re-hashing of existing products and services, with far too little significant innovation. Meanwhile so many real world needs go unmet because the technology simply isn't "there" yet. Maybe my "plan" is that if I wait another five (or ten) years, we might see some big enough technological advances that my entrepreneurial drive might once again be stimulated.

-- Jack Krupansky

Sunday, May 21, 2006

Suspension of my entrepreneurial and blogging efforts

I've now finished my first week as a full-time employee of Microsoft, so it's now safe to say that my entrepreneurial and blogging efforts are now suspended indefinitely.

-- Jack Krupansky

Wednesday, May 17, 2006

Day 2 at Microsoft

My entrepreneurial and blogging efforts are another day closer to being over as I finished my second day as a full-time employee at Microsoft. Most of the day was taking up with a second day of NEO (New Employee Orientation). I got my official "blue" badge, a free bus pass, my email "alias", unpacked my Dell computer, enrolled in Direct Deposit for my paycheck, and drank some free chocolate milk (one of the free beverage selections).

The remaining step before I'll feel like a "real" employee is to attend my first work meeting (besides the new employee orientation). I'd rather get my first paycheck as well, just to be sure.

Oh, and I need to read the corporate blogging policy.

It was a short day since I arrived at 8:30 a.m. and left at 8:30 p.m. I'm going to try to get in by 6:30 a.m. on Wednesday and stay till about 8:00 p.m. I've got a lot of catching up to do before I'll be ahead of the curve. My manager assigned me two "peer mentors" to help me come up to speed even quicker.

-- Jack Krupansky

Monday, May 15, 2006

Started at Microsoft - Day 1

My entrepreneurial and blogging efforts are almost over since today was was first day as an employee at Microsoft. I say "almost" bcause I won't consider myself to be a "real" and "official" employee until I have a badge (SmartCard cardkey with picture), an email address, direct-deposit is set up for my paycheck, and I have attended my first meeting (other than the formal new employee orientation). Then I'll consider that all of my entrepreneurial bridges have been burned.

Tuesday is the second day of NEO (New Employee Orientation) and then I wander off to find my team.

I'll be a Software Design Engineer in Test (SDE/T), developing tests and software tools for testing in the Cellular Core team of the Mobile and Embedded Devices Product Group (MEDPG) in Redmond. That includes the low-level software that goes into smartphones and other gadgets based on Windows CE.

I'm in temp housing, a nice apartment in a complex named The Trails of Redmond, for three weeks or so until I get my first paycheck so that I can afford to pay the first month of rent and the deposit. I've checked out a dozen apartments and found a cheap studio in downtown Bellevue that is good enough for my needs and is only a 20-minute bus ride, but I remain undecided and cannot commit to a lease until that first paycheck is in the bank (May 31 or June 1).

I may eventually resume some amount of blogging in some form, but probably not for some time since I expect it will take 250% of my effort just to come up to speed and get at least slightly ahead of the curve over the next six months.

Oh, and since I'll be joining "The Evil Empire", please... pray for my soul! The world may no longer be safe with me on Microsoft's side.

-- Jack Krupansky

Thursday, May 04, 2006

Updated concept paper: The Consumer-Centric Knowledge Web

I've updated my concept paper entitled "The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing" which discusses a conceptual framework for knowledge-based applications that keep the consumer at the center using software agent technology. This is more than simply consumer-oriented, which means that vendors at least pay lip service to consumers, but consumer-centric means that the consumer is placed at the center and has full ownership of all of their data and is in full control, and where vendors are not in a position to dictate any terms.

This concept paper is now frozen since I have accepted an offer for full-time employment with Microsoft (unrelated to anything in the paper) and will not be working on this concept as long as I am employed.

Wednesday, May 03, 2006

Updated Distributed Virtual Personal Computer (DVPC) proposal

I've just posted an updated version of my proposal for a Distributed Virtual Personal Computer (DVPC).

I still have no intention of personally designing or implementing the details of such a product or even developing a business around the concepts, but I would like somebody to do it so that one of these days I can buy a new PC and it will come with right out of the box.

This concept paper is now frozen since I have accepted an offer for full-time employment with Microsoft (unrelated to anything in the paper) and will not be working on this concept as long as I am employed.

-- Jack Krupansky

Saturday, April 29, 2006

Microsoft

My current entrepreneurial and blogging efforts will be drawing to a close over the next two weeks since I have accepted an offer from Microsoft to be a Software Design Engineer in Test (SDE/T), developing tests and software tools for testing in the Cellular Core team of the Mobile and Embedded Devices Product Group (MEDPG) in Redmond. That includes the low-level software that goes into smartphones and other gadgets based on Windows CE.

I may eventually resume some amount of blogging in some form, but probably not for some time since I expect it will take 250% of my effort just to come up to speed and get at least slightly ahead of the curve over the next six months.

Oh, and since I'll be joining "The Evil Empire", please... pray for my soul! The world may no longer be safe with me on Microsoft's side.

-- Jack Krupansky

Friday, April 14, 2006

Now available

I'm just clearing off my desk as I prepare to finish up with my last day at my current client, so I am now available for new assignments.

My resume can be found at: http://basetechnology.com/resume.htm. I can email it in Word document format upon request.

-- Jack Krupansky

Saturday, April 08, 2006

Good Book: Thinking in Java by Bruce Eckel

If you're serious about sinking your teeth into the Java programming language, check out "Thinking in Java (4th Edition)" by Bruce Eckel.

BTW, I get a commission from Amazon if you buy the book after clicking through my link here.

-- Jack Krupansky

Monday, March 27, 2006

Now available for software consulting - Me - April 15 (or earlier)

I'll be finishing up with my current client by the middle of April and working half-time until then, so I am now available to consider new engagements.

I am open to considering software development work, but I'd prefer to do some work related to blogging or venture capital (e.g., due diligence), possibly helping technology startups get off the ground.

My resume can be found here: http://basetechnology.com/resume.htm
Or, just Google my name.

-- Jack Krupansky

Now available - Me

I'll be finishing up with my current client by the middle of February and working half-time until then, so I am now available to consider new engagements.

I am open to considering software development work, but I'd prefer to do some work related to blogging or venture capital (e.g., due diligence), possibly helping technology startups get off the ground.

My resume can be found here: http://basetechnology.com/resume.htm
Or, just Google my name.

-- Jack Krupansky

Monday, March 20, 2006

Updated PowerPoint presentation for The Consumer-Centric Knowledge Web (CCKW)

I've posted an updated version of my 14-page PowerPoint presentation that summarizes my thoughts for research efforts on what I've been calling The Consumer-Centric Knowledge Web (CCKW).

My updated, more-detailed, but still far from complete, white paper and idea notebook can be found at The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing. My "to do" list at the end of that paper now has 1,510 items on it, and I'm sure that list will continue to grow as I continue to do more background research.

My next step, eventually, after tuning the PowerPoint presentation, is to write a 5-page summary paper.

Note: CCKW is a proposal for a research project is is unlikely to exist as a usable product or service for years to come.

-- Jack Krupansky

The Semantic Web: The Origins of Artificial Intelligence Redux

As part of my ongoing background research for my idea for a Consumer-Centric Knowledge Web (CCKW), I read a 2004 paper by Harry Halpin entitled "The Semantic Web: The Origins of Artificial Intelligence Redux". He notes a number of classic AI problems that the Semantic Web pretends to avoid but leaves unaddressed. There is a brief discussion of the Web as universal computing, but it lacked enough depth to fully evaluate. Still, this was certainly a thought-provoking paper.

-- Jack Krupansky

Wednesday, March 15, 2006

Integrating Complexity Theory, Knowledge Management, and Organizational Learning

As part of my background research for my idea for a Consumer-Centric Knowledge Web (CCKW), I read a 2000 paper by Mark W. McElroy entitled "Integrating Complexity Theory, Knowledge Management, and Organizational Learning". Besides a brief discourse on the three distinct topics in the title, the paper focuses on emergence and Complex Adaptive Systems (CAS). The focus is on how organizations learn and adapt.

-- Jack Krupansky

Tuesday, March 14, 2006

The nonsense of 'knowledge management'

As part of my background research for my idea for a Consumer-Centric Knowledge Web (CCKW), I read a 2002 paper by Professor T. D. Wilson entitled "The nonsense of 'knowledge management'". He makes a lot of very valid points, but I would challenge his definitional assertion that knowledge is only in the human mind and that once we begin to approximate and represent that knowledge outside of the human mind it is by definition merely information and not knowledge. That said, I agree with him that most people are using the term knowledge as a synonym for information.

-- Jack Krupansky

Saturday, March 11, 2006

Virtually attend the 2006 O'Reilly Emerging Technology Conference on The Attention Economy

Back on February 10th I wrote about wishing that I could attend the 2006 O'Reilly Emerging Technology Conference (ETech) held March 6-9, 2006 at the Manchester Grand Hyatt in San Diego, California, which was to focus on what is called the . Well, as expected, I was not able to attend the conference, but we can all now attend it retrospectively in a virtual manner by reading and viewing a lot of the commentary about the conference, which just ended two days ago. See O'Reilly's ETech Conference News.

Alas, I can still claim that I personally don't know anybody who attended the conference. It's a whole different world from the one that I live in.

-- Jack Krupansky

Friday, March 10, 2006

Where did knowledge management come from?

As part of my background research for my idea for a Consumer-Centric Knowledge Web (CCKW), I read a 2001 paper by Lawrence Prusak entitled "Where did knowledge management come from?". It's written at a fairly high level, but that also makes it a good background paper for my own efforts. It makes references to economics, sociology, philosophy, and psychology.

-- Jack Krupansky

Sunday, March 05, 2006

PowerPoint presentation for The Consumer-Centric Knowledge Web (CCKW)

I've developed a 12-page PowerPoint presentation that summarizes my thoughts for research efforts on what I've been calling The Consumer-Centric Knowledge Web (CCKW).

My more-detailed (but still far from complete) white paper and idea notebook can be found at The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing. My "to do" list at the end of that paper now has 1,286 items on it, and I'm sure that list will continue to grow as I continue to do more background research.

I considered calling this effort COW, but I just don't like the uninspiring connotations of that acronym, so I'll stick with CCKW (Consumer-Centric Knowledge Web) for now. BTW, It turns out that CCKW is the abbreviation for counterclockwise.

My next step, after tuning the PowerPoint presentation, is to write a 5-page summary paper.

-- Jack Krupansky

Saturday, February 25, 2006

Entrepreneurial Connections Conference 2006 (EntConnect 2006) coming up on March 23-26, 2006

Every year there is a small but loyal group of former readers of the former Midnight Engineering magazine who gather in the Denver, Colorado area for a conference known as Entrepreneurial Connections, or EntConnect for short. These are people who have a background or interest in technology and are either running their own businesses or would like to be running their own businesses. Some attendees don't have quite the depth of technical background, but are simply interested in the special angle on business that the conference offers.

This year's conference is being held on March 23-26, 2006.

The conference is run by John Gaudio. Details on the conference can be found on his official conference web site at www.EntConnect.org, or you can check out descriptions of past conferences at my Enrepreneurial Engineers web site.

So, if you're in the Denver, Colorado area, or you live in a galaxy that is within teleportation range, and you're a technical entrepreneur or have entrepreneurial aspirations, consider checking out EntConnect this year. Even if it sounds as if you might not fit the profile of a typical attendee, you might consider the conference anyway. Sure, a lot of technology gets discussed, but the focus is running your own business and thinking like an entrepreneur.

Tell John that I sent you. [Really -- I get a commission!]

-- Jack Krupansky

Thursday, February 16, 2006

COW: Consumer Ontology Web vs. Consumer Ontology/Knowledge Web vs. Consumer Knowledge/Ontology Web vs. Consumer knOwledge Web

I'm still struggling to coming up with a mnemonic name to associate with my white paper entitled "The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing." I still feel inclined to go with COW since it's so simple and almost accurate. I now have four options for COW:

My implied meaning is still that COW is consumer-centric and not merely consumer-oriented, but that may be too wordy... or maybe not. So, maybe the list of options should be:

And, if anybody wants to leave off -centric in common use, I won't object vociferously, assuming that they still mean that it is consumer-centric and not something vender-centric that happens to be consumer-oriented.

I'm leaning towards option #4, , but I'm also considering the convenience of eliding the implicit -centric, and capitalizing both the K and O of KnOwledge:

:

Or maybe I'll just leave the O lower-case and make that implicit in the acronym as well:

:

My final thought is to go with a triple of meanings, any of which is "correct", depending on context:

    1. :
    2. :
    3. :

Where the second meaning is used as the core source for the O in COW and reflects more of a schema for the consumer knowledge web, the first refers to the actual instances of knowledge in the web, and the third refers to combination of the schema and the instances of specific knowledge.

I'm still not quite happy with this formula, but at least some progress has been made.

If I had to pick one right now, this would be it:

After all, it captures all of the meaning that I intended, and has an almost-precise acronym. And, people can simplify it in a slang manner as they see fit.

Now the question comes up of whether a large, lumbering beast is the desired metaphor for a consumer knowledge web. Unfortunately, it may be more precise than we would hope.

-- Jack Krupansky

Wednesday, February 15, 2006

Web Farming

Have you heard about the concept of ? No? Well, neither had I, but I ran across a reference in an announcement for a conference on Web Intelligence. I haven't dug into any of the details, but I did run across a web site, WebFarming.com. I'll dig through it when I get time, but I just thought people might want to be aware of this concept.

Incidentally, the conference is The 2006 IEEE/WIC/ACM International Conference on Web Intelligence (WI-06), to be held December 18-22, 2006 in Hong Kong.

Friday, February 10, 2006

C-KOW: Consumer Knowledge Ontology Web vs. COW: Consumer Ontology Web vs. CCKW: Consumer-Centric Knowledge Web

I've come up with yet another possible mnemonic name to associate with my white paper entitled "The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing":

:

C-KOW (pronounced "see cow") is an alternative to which is a bit wordy and not very memorable, , or even .

For now, I'm sticking with () as my prime candidate since it's so simple to write and say. It's starting to grow on me. If I go with it, next I'll have to decide what would stand for. Obviously one of the "O"s would be . I think it should relate to a much simpler approach or method to constructing ontologies. More Obvious Ontologies?

Yes, it is Friday evening.

-- Jack Krupansky

Monday, February 06, 2006

COW: Consumer Ontology Web vs. CCKW: Consumer-Centric Knowledge Web

As I continue to work on my white paper entitled "The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing", I also continue to struggle with how to crisply refer to it. is a bit wordy and not very memorable. Even still isn't "there".

My latest rendition is to call it the . That has the disadvantage that nobody knows what an ontology really is (including most of the people working with the W3C and the Semantic Web, unfortunately), but at least is memorable and might inspire a sense of curiosity and get people to ask "Well, so what does the 'O' in 'COW' really mean?"

Hey, it least it might be a great conversation starter... "I'm working on a COW." Or, "My goal is that some day everybody will have a COW, and be happy about it."

I'm thinking that maybe the COW could be the underlying infrastructure, the real ontology on which the higher-level, consumer-oriented knowledge management and user interface layers operate.

Or, maybe the COW is the sum total of all of the interacting software agents that are needed to really make a distributed ontology fly.

I have mixed feelings about this new name for my vision... any thoughts?

Wednesday, January 25, 2006

Who owns your personal information?

There are increasing concerns about who has access to information about consumers, whether it be marketing firms with their "targeting" based on your credit card usage, selling of cell-phone call records, or what keywords you may have used in a search engine. Just today there was an article in the New York Times by Katie Hafner entitled "After Subpoenas, Internet Searches Give Some Pause" concerning government efforts to force Google to hand over records of user search queries. Beyond the usual privacy concerns, my big question is this:

Who owns information about a consumer?

And I would suggest that the answer should simply be: The consumer owns all information about the consumer. It should not be Google's or any other vendor's property to do with as they please.

I've been working on a white paper that concerns how to use software agent technology to support the development of a quantum-leap knowledge-based web for consumers. It's still very rough with lots of work needed, but one of my tenets is that consumers own all information (knowledge) about themselves. Another tenet is that my envisioned consumer knowledge web is consumer-centric. Not merely consumer-oriented, like many services, but consumer-centric in a way that forces people and vendors and governments to accept the the consumer is the center of it all, not proprietary business interests.

You can find my draft white paper here: The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing.

-- Jack Krupansky

Friday, January 13, 2006

Semantic Web celebrating fifth birthday

For the past couple of weeks, as part of my reading for my writing on what I now call the , I've been carefully reading and re-reading the original paper published in the May 2001 issue of the Scientific American entitled "The Semantic Web". Then, just today I got an email that pointed me towards the upcoming 2006 Semantic Technology Conference (SemTech 2006), March 6-9, 2006, in San Jose, California. The two main keynoters are James Hendler and Ora Lassila, two of the co-authors of the SciAm article. In fact, their conference blurb directly references the article:

Five years ago, we wrote an article for Scientific American that publicized the vision of the Semantic Web to an audience beyond a small group of researchers. In the time since then, the Semantic Web has become real. Currently, there are hundreds of millions of RDF triples, on tens of thousands of Web pages, and thousands of ontology pages have been published using RDF schema and OWL, with a growing level of industrial support. Further, the Semantic Web is still in its early days and there are many exciting innovations on the horizon. In this talk, we explore the status of the Semantic Web, today and in the future, through the lens of the vision we presented five years ago. We reflect on what has happened that we didn't predict, what we predicted that hasn't happened yet, and what even more exciting stuff is still to come.

The conference blurb says that SemTech 2006 is "THE place to learn about the commercialization of Semantic Technologies." It says that:

Semantics is a hot industry sector right now – a $2 billion per year market and projected to grow to over $50 billion by the year 2010. Leading analysts have estimated that 35-65% of our System Integration costs are due to Semantic issues. And in every sector of the market - software infrastructure and tools, methodology, internet based activity and support for implementation projects – both inside the enterprise, and across the Internet, our biggest software challenges come down to creating and resolving meaning. In other words: semantics.

The blurb goes on that:

The SemTech conference is where customers, developers and researchers converge to discuss the commercialization of Semantic Technologies. ItÂ’s also your fast track to learning what Semantic Technologies are all about, and how to exploit them in your organization.

Topic areas include:

  • Semantic Web
  • OWL and RDF
  • Web Services
  • Data Integration
  • Semantic Brokers
  • Knowledge Capture
  • Taxonomy Development
  • Business Vocabularies
  • Specialized Ontologies
  • Upper Models
  • Enterprise Search
  • Business Rules
  • Metadata
  • Semantic Modeling
  • Unstructured Data
  • Ontology Engineering

For more info, visit the SemTech 2006 web site.

Meanwhile, I continue to slave away on my paper: "The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing." It's still an early work in progress (my "to do" list at the end has over 300 items on it).

Feel free to offer feedback.

The section I need to work on this weekend will be titled:

Doesn't the Semantic Web Already Do This? -- No.

For all of the big talk about "semantics", for the most part the Semantic Web people have focused on structured information and related metadata, but haven't really come close to scratching the surface of semantics for full-blown knowledge.

Thursday, January 12, 2006

Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing

As part of my effort to contemplate the applications of software agent technology for consumers, I've recently started to focus on something I call the , which is the design and implementation of knowledge-based applications that keep the consumer at the center using software agent technology. This is more than simply consumer-oriented, which means that vendors at least pay lip service to consumers, but consumer-centric means that the consumer is placed at the center and in full control, where vendors are not in a position to dictate *any* terms.

I've re-titled my big white paper to reflect this refined focus: "The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing." It's still an early work in progress (my "to do" list at the end has over 300 items on it).

You can also find it by doing a Google on "consumer agent vision" (without the quotes). It was result #1 when I just tried it. Click here.

Feel free to offer feedback.

Monday, January 02, 2006

Marked as spam

Talk about the mediocre state of the art for software agents, Blogger's "agent" has decided that this blog is spam. Luckily they have a manual request feature so that I can ask them to have a "human agent" examine my blog and declare it "safe". Sigh.

There... I just made the request.

Unfortunately, until the request goes through I can't do any email posts to this blog. Actually, I can, but they show up as drafts that don't display until I manually re-post them in Blogger.

-- Jack Krupansky

Tuesday, December 27, 2005

What I've been working on all this time: A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Oriented Knowledge-Based C

Since I stopped blogging on a regular basis back in August I've been working on a few projects. One of my projects is a white paper related to . It's entitled "A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Oriented Knowledge-Based Computing". It's still an early work in progress (my "to do" list at the end has over 200 items on it).

You can also find it by doing a Google on "consumer agent vision" (without the quotes). It was result #1 when I just tried it. Click here.

Thursday, November 24, 2005

Three-month status of a former blogger

It's been three months since I ceased blogging back on August 18, 2005. I figured that it would be good to check in at the three-month interval just to report anything of significance.

Although I no longer regularly monitor any blogs, there have been more than a few occasions where I have read some blog posts. Usually that happens because I search using Google and a blog page happens to pop up in the search results, and on occasion I have visited a few blogs, but I no longer run and feed readers.

On two occasions I have emailed comments to some columnists based on reading non-blog material and my comments have ended up on their blogs. In one case I commented directly on their blog at their request. In the other case they asked permission to post my comments.

I had left my blogs wide open for comments, including anonymous comments, but after getting a fair amount of spam comments I recently enabled a new Blogger feature which requires the commenter to read and enter text from a graphic image. That eliminated all the automated spam.

There have been a number of occasions when I felt like blogging something, but not so much that it was worth breaking my pledge of blog celibacy. Mostly I just post my own material directly on my main web sites, but unfortunately people won't get any automatic alert of changes as they would get with a web feed subscription to my blog web feeds.

I have checked in on just a few blogs over the past three months, just to see if I was missing much, but nothing has seemed compelling enough to draw me back into the fray. I did leave a comment or two, but for the most part have not seen any significant impetus to reverse my decision of three months ago.

I'll probably check back in another three months from now.

My main web sites are:

  • Base Technology - main business web site, including my resume
  • Agtivity - software agent technology
  • Finaxyz - finance, including my daily stock market column
  • EntEng - entrepreneurial engineering
  • Opixia - global commentary and other personal ramblings

Feel free to comment. I will read any comments. They are automatically emailed to me.

Monday, November 14, 2005

Blog Spam comments

When I ceased posting to my blogs back in August, I left commenting enabled and even permitted anonymous commenting. That was fine for several weeks, but gradually in September I began to get more and more blog spam comments. Since I have email notification turned on for comments, this blog spam ended up in my email inbox. I left things as they were as an experiment to see how blog spamming evolved. Some days I'd only receive a couple of spam comments, other days upwards of half a dozen, sometimes a dozen, and occasionally as many as 18 spam comments in one day.

Today, I decided that I had had enough and that the experiment wasn't yielding any new and interesting results. So, I decided to disable anonymous comments.

I logged into Blogger and was about to change the comment setting from "Anyone" to "Only Registered Users", but then I noticed that Blogger had some new settings since I last used it in August. In particular, they now have "word verification" so that spam "bots" can be kept at bay, and that seemed to cover virtually all of the spam comments I was receiving. So, I turned on word verification, but kept the other setting so that anybody (but mindless bots) can still comment.

I left the existing spam comments in place since they are fairly innocuous and allow people to get a sense of what spam comments can be like. I hope others gain at least a little bit of insight from my experience. I only encountered one spam comment that I felt was over the line and merited deletion.

Now let's see if I really can have my cake and eat it too.

Sunday, August 14, 2005

Suspension of my blogging until further notice

Thursday, August 18, 2005 is the six-month anniversary of my foray into the blogosphere.  It's been a lot of fun, but it simply hasn't shown any evidence of giving me a significant enough return to justify the level of investment of my time required.  So, after careful thought, I've decided to go on an indefinite hiatus from the blogosphere, possibly a year or longer. My blogs will remain up with all of my past posts, but I won't be making any new blog posts.  Further, I won't be monitoring or commenting on the blogs of others.  However, I will continue to receive any comments on my old blog posts and may be contacted directly via email.  New content will appear on my main, non-blog web sites, hopefully with greater frequency now that I won't be distracted by the blogosphere.

I thank those who have taken the time to read and even comment on my blog posts over the past six months.

I may check back in six months to see if there are any truly startling new developments in the blogosphere, and in a year or so I will definitely check back again.

I may or may not make a few more scattered posts before midnight, Thursday, August 18, 2005 when I "officially" leave the blogosphere.

Again, my thanks to those who have participated in many interactions over the past six months.

Wednesday, August 03, 2005

Books on Software Agent Technology

Please bookmark our web page for Software Agent Technology books.

Our latest addition:

Bordini, Rafael H.; Dastani, Mehdi.; Dix, Jürgen; El Fallah Seghrouchni, Amal (Eds.), "Multi-Agent Programming : Languages, Platforms and Applications (Series: Multiagent Systems, Artificial Societies, and Simulated Organizations)", Springer, 2005 (October).

Description: Multi-agent programming is an essential reference for anyone interested in the most up-to-date developments in MAS programming. While previous research has focused on the development of formal and informal approaches to analyze and specify Multi-Agent Systems, this book focuses on the development of programming languages and tools which not only support MAS programming, but also implement key concepts of MAS in a unified framework.

The book consists of three parts. Part I describes four multi-agent programming languages that are based on computational logic or process algebra. These languages are Jason, 3APL, IMPACT, and CLAIM/SyMPA. Part II presents three multi-agent programming languages that extend or are based on Java. These programming languages are JADE, Jadex and JACK. Part III provides two significant industry specific applications: the DEFACTO System for coordinating human-agent teams for disaster response, and the ARTIMIS rational dialogue agent technology. Also featured are seven appendices for quick reference and comparison.

Please note:  If you buy any of the books through Amazon by clicking on one of our links, we get a modest cut of the revenue.

-- Jack Krupansky

Saturday, July 30, 2005

Design flexibility spectrum

I'm not sure what title to really use for this post, but "Design flexibility spectrum" is a starting point.  The point is to describe one of the dimensions on which software agent technology could be used.  The goal is that you start with a conceptual model of your application and then figure out how to decompose the application and implement it using software agent technology.  The opportunities and advantages of software agents grow dramatically the further out the spectrum you go.

  1. Fixed design.  Each component of the application is known in advance and designed to work with precisely those predefined components.  A fixed set of software agents could be used.
  2. Configurable design.  The application has some mechanism, such as a configuration file which allows an integrator to pick and mix and match application functions, such that there is no fixed, predefined relationship between all components, but at least the universe of components is fixed.  A fixed universe of software agents could be used, with only a subset active for a specified configuration.
  3. Add-on extensible design.  The integrator or even the user can actually add components to the application which were not known to the application designers.  This begins to enable emergent behavior, within the bounds of the original application.  The universe of software agents would be unbounded, but starts with a "base", pre-defined set.
  4. Open design.  All bets are off.  Application components stand alone, without assumption of the existence of other components.  There is some mechanism for discovery of components and negotiation and facilitation of interaction between components.  This enables truly emergent behavior.  Literally nothing is known about the initial set of software agents.  Actually, precisely one thing is known: the software agent representing each individual application component.  The resulting "applications" are emergent and unknown to the component designers.  Each such emergent application would be a "swarm application".  Nobody would know in advance the "design" of such an application.  And, the emergent design can change dynamically.

More thought is needed.  I just wanted to put out some food for thought, consistent with "open design" where the final results really are emergent and not pre-defined.

Monday, July 04, 2005

Software Agency: a blend of computer science, philosophy, psychology, statistics, and economics

As I have been incrementally thinking more deeply about software agents and what really makes them tick, my thoughts have coalesced around a mix of computer science, philosophy, psychology, statistics, and economics.  Software agents or software agency is not simply about two or more computer programs directly interacting, but much more about "social" interactions of computational entities.  Much of what needs to be computed can be best accomplished through "effects" rather than synchronized interactions.  In fact, the effect of one software agent may be "felt" and processed by an untold number of other software agents.  Or, an aggregate effect may come about from the uncoordinated actions of any number of independent software agents which are not even aware of each other's existence.  Beliefs, desires, and intentions are all relevant to the interactions (direct or otherwise) of software agents.  It makes perfect sense to speak of societies of software agents.  And it makes equally good sense to consider the economic values of computations and the software agents that perform them.

Sunday, May 29, 2005

Software agent technology for IT vs. consumer applications

Originally, my interest in software agent technology was focused on applications for businesses or IT. Later, as the tech "boom" fizzled and IT started focusing on cutting costs, IT seemed infinitely less attractive than consumer applications. Now, given the over-abundance of consumer-oriented technology and gizmos and gadgets, I'm beginning to reconsider if IT might not be a better target after all.

In truth, both IT and consumer applications are great targets for software agent technology. The question was simply which sector was more likely to have the kind of spending and tolerance for new technology that software agents would present.

-- Jack Krupansky

Saturday, May 21, 2005

Workshop topics for Service-Oriented Computing and Agent-Based Engineering

The upcoming Workshop on Service-Oriented Computing and Agent-Based Engineering (SOCABE'2005) lists the following possible topics:

  • Architectures and infrastructure for distributed agent- or  service-oriented frameworks;
  • Agent-based modelling and design techniques in service oriented  system development;
  • Multi-agent techniques to describing, organizing, and discovering services;
  • Process modelling and planning for service/agent composition, orchestration and coordination;
  • Security support for agents and services, and agent-based approaches to service security;
  • Intelligent matchmaking, service brokering and service level agreement negotiation;
  • Services and the Semantic Web, including initiatives such as OWL-S;
  • Deployment, packaging, and distribution of services and software agents;
  • Agent-based quality of service management;
  • Intelligent services and service agents;
  • Agent and service interoperability and integration
  • Functional and non-functional aspects of agents and services;
  • Agent-based service business models and applications (e.g. in e-Business, e-Science, Enterprise, Telecom etc.)
The summary description for the workshop is as follows:

Service-Oriented Computing (SOC) is a newly emerging paradigm for distributed computing and e-business processing that utilizes services as fundamental elements to enable building agile networks of collaborating business applications distributed within and across organizational boundaries. Services are self-contained, platform-independent computational elements that can be described, published, discovered, orchestrated and deployed for the purpose of developing distributed applications across networks, including the Internet. Service-based approaches include Web services, Semantic Web services, and Grid services.

While a service need not fulfill all characteristics of a strong definition of agency, the SOC approach to building complex software systems bears many similarities to the development of agent-based systems. In particular, large systems are assembled from distributed heterogeneous software components providing specialized services and communicating using agreed-upon protocols. Similarly to certain multi-agent engineering paradigms, the design process of such systems focuses on the declarative characterization of the agents' capabilities and on a message-based paradigm of interoperation. Also similarly to multi-agent systems, management of the service provision processes is dynamic and distributed, and takes into account the requirements both at the individual services and system levels of the composed application. It also needs to be adaptive in response to the changing requirements, services and exceptions in the dynamic Web and Grid environments.

The area of Service Oriented Computing offers much of real interest to the Multi Agent System community, including similarities in system architectures and provision processes, powerful tools, and the focus on issues such as quality of service, security and reliability. Similarly, techniques developed in the MAS research community promise to have a strong impact on this fast growing technology.

The SOCABE workshop is being held at the Fourth International Joint Conference on Autonomous Agents & Multi-Agent Systems (AAMAS'2005), 25 - 29 July 2005, Utrecht , The Netherlands.

A list of the currently accepted papers for the workshop can be found on the workshop web page.

Wednesday, May 04, 2005

Visibility of agent schemas

One of my main questions is quite simple, but very difficult:  How do we know that an agent is doing (or programmed to do) what we think it is supposed to be doing?  In other words, how to give greater visibility to the "agent schema" that is implemented by the agent.
 
This question of course begs the question of having a formal "agent schema" to begin with, as contrasted with imagining a schema and then translating that vision into hard code that supposedly implements that imagined schema.
 
My view is that the greatest danger of software agents is that they and their users get trapped
in the "code swamp", where nobody can make sense of what the agent might do in situations that are not precisely as envisioned in "the lab".  Throw in evolutionary programming, and it's a true nightmare (ala Michael Crichton's "Prey").
 

Sunday, April 24, 2005

Nerve cells and Ideals and Ideal Programming

I've started writing a little about my concepts of Ideals and Ideal Programming for the conceptualization of software agents.  It will be quite some time before I flesh out these concepts sufficiently for them to sound coherent, but I expect to incrementally make a little progress now and then.
 
One comment I'd like to make now is that there may in fact be at least some parallel between the concept of an Ideal and a biological nerve cell.  A nerve cell has some number of dendrites that enable the nerve cell to receive electrical impulses, and one axon which is used to send out an electrical impulse.  Nerve cells can be quite short (in the brain) or quite long in some parts of the body.  The basic idea here that relates to an Ideal is that unlike a traditional software component or layer of abstraction, an Ideal can take inputs across many layers of software.  A difference from a nerve cell is that an Ideal can send out messages across many levels of software.
 
Although in practice messages between processes running on different computers must travel through many layers of software (e.g., a classic TCP/IP "stack"), there is no need for the higher-level applications to have any knowledge of those lower layers.  That layering is incidental to the structuring of a distributed application itself.  An Ideal would in fact transcend actual application logic layers.
 
In reality, Ideals would not actually be transcending layers of traditional software components because those layers would no longer actually exist.  The new "layering" would be more abstract than real since it would be a statistical artifact of the sum of all Ideals that happen to have dendrites or axons in the vicinity of various modular components.
 

Saturday, April 23, 2005

Difficulty with Google Alerts for software agents

Three months ago I registered to receive a "Google Alert" for the term "software agent".  To date, I've received only two alert messages.  The first, more than a month ago, was for a paper dated 1995.  The second, received this morning, was for a web page that has no references to the term "software agent", but Google's cached page header says that "These terms only appear in links pointing to this page".  Furthermore the main text on the page (and also the text in Google's results list) is "Sorry there has been an error. The article you were looking for could not be found".  I know that I myself have authored numerous web pages that Google is capable of seeing, and I've gotten no alerts on them.  So far, the Google Alert feature has not been very useful, at least for me.
 
As a test, I just now registered an alert for the terms "intelligent agent" (no quotes).
 
I'm thinking that maybe I might need my own crawler and text data mining capability so that I myself can do a better job of tracking the evolution of the emerging software agent field.  I don't feel up to it, but I'm not seeing the kind of tools I really need.
 
In truth, this is in fact a great application for software agent technology itself, but we presently have neither the tools nor infrastructure in place to easily implement such an application.  The fact that even Google with all its brain power and financial resources has not mastered even simple alerts speaks volumes for the "state of the art".
 
The bottom line is that much research is needed in distributed computing, machine intelligence, and software agent technology before we can even begin to make a dent in some of these problems.
 

Monday, April 11, 2005

FIPA to become an IEEE Computer Society standards committee

FIPA, the Foundation for Intelligent Physical Agents, has opted to pull in its horns and become an IEEE Computer Society standards committee, namely the "FIPA Standards Committee."

It's very difficult to say if this is a turn for the better, or a turn for the worse for the software agent community, but it's certainly a needed evolutionary step.

My main concern is that far too many sub-domains of the field of software agent technology are still in desperate need of much deeper research and that so many of the standardization efforts are simply premature.

-- Jack Krupansky

Sunday, April 10, 2005

The Nature of Identity

I've written a very rough draft white paper on issues related to , entitled "The Nature of Identity". The four key issues that relate to software agents are identiying the agent itself, identifying resources that the agent wishes to access, indetifying entities that the agent wishes to interact with, and identifying the entity on whose behalf the agent is acting. Certainly there are issues of and as well.

A software agent needs to have an identity that is derivative to the entity on whose behalf the agent is acting. That's not to say that an entity interacting with the agent could necessarily gain access to the identity of the controlling entity.

-- Jack Krupansky

Wednesday, April 06, 2005

Goals versus Tasks

One of the key distinguishing characteristics between a traditional computer program and a software agent is that a program is focused on performing tasks whereas an agent works towards goals. That's a very important distinction, but it's also very difficult to deeply comprehend, let alone put into practice.

A task usually has the form "do X" or "do X using Y". A task is very prescriptive. A task-oriented computer program is essentually pre-programmed with all of the instructions needed to perform that task. A program is essentially a solution contrived by a developer who has analyzed a problem.

A goal usally has the form "satisfy X [and Y and Z...]". A goal is more descriptive than prescriptive. A goal is more about what to accomplish rather than how to go about it. A goal-oriented software agent is free to make unpredictable choices and follow novel paths, provided only that those paths finally accomplish the stated goal(s). A goal-oriented approach is advisable when the resources and paths are not known ahead of time with any degree of uncertainty. An agent is essentially the embodiment of a refinement of a problem statement, with solutions to be sought and evaluated on a dynamic basis.

A program is focused on pursuing a pre-programmed solution, whereas an agent focuses on dynamically refining the problem statement and seeking a solution that matches the refined problem statement and the current problem environment.

There is in fact a vast gray area between these two concepts, and as yet we have very few tools, techniques, or guidelines for analyzing problems and solutions to determine which is which and which has more merit in a given situation.

Just as a parting example, an anti-locking brake system for a motor vehicle is closer to being goal oriented than task oriented. There is no fixed sequence of instructions to execute and feedback and adaptation are critical requirements. A simple cruise-control system also is goal-oriented rather than being strictly task oriented, with no fixed sequence that will achieve the result of a relatively stable speeed. On the other hand, monitoring a news feed for a set of fixed keywords is more task-oriented since there is essentially no feedback or adaptation required.

This is only the starting point of this discussion.

-- Jack Krupansky

Sunday, April 03, 2005

Evolution out of the Code Swamp

As I've ruminated about the challenges of developing autonomous software agents over the past seven years, the one key obstacle that I keep coming back to is code, specifically, hand-designed, hand-written, hand-tested code. I simply can't imagine widespread development and deployment of reliable and flexible autonomous software agents using hand-designed, hand-written, and hand-tested software. It just ain't going to happen. Yes, people will try to do it anyway. Yes, some elite developers can in fact achieve success in narrowly targeted niches, but developing software agents by hand is very clearly not the way to go. We must drag ourselves out of "The Code Swamp" if we want to be serious about designing, developing, deploying, and maintaining software agent technology. The idea that we are going to manually design software that can cope with truly dynamic environments, is simply not credible.

There are any number of paths that we can take, but genetic or evolutionary programming is certainly one of the most promising. Constraint programming is another. My preliminary ideas on Ideal Programming are an effort to start moving more dramatically in the right direction.

We're far from a critical mass today, but the only way we're going to get there is to make sure that we're on a path that leads out of and away from "The Code Swamp."

-- Jack Krupansky

DART from Nasa: Demonstration for Autonomous Rendezvous Technology

From a post on Slashdot, I found a reference to an experimental program at Nasa called "Demonstration for Autonomous Rendezvous Technology, or DART". This is a great example of autonomous decision-making by computer software. The Nasa site notes:
The Demonstration for Autonomous Rendezvous Technology, or DART, is a flight demonstrator vehicle designed to test technologies required to locate and rendezvous with other spacecraft. The DART mission is unique in that all of the operations will be autonomous - there will be no astronaut onboard at the controls, only computers programmed to perform functions. Developed by Orbital Sciences Corporation of Dulles, Va., the DART vehicle will be launched on a Pegasus rocket to test rendezvous, close proximity operations and its control
between the vehicle and a stationary satellite in orbit.

This is more of a robotics application than a software agent, but the basic concepts are still relevent. In truth, as difficult as orbital rendevous is, it is a relatively well-defined problem, whereas much of what we hope to achieve in the realm of software agents is to cope with very dynamic environments.

-- Jack Krupansky

Thursday, March 31, 2005

Autonomous NanoTechnology Swarms (ANTS)

Nasa is working on a technology called Autonomous NanoTechnology Swarms (ANTS) that is designed to be able to nimbly navigate a difficult and hostile terrain such as Mars. In addition to to flexibility of each node, the entire structure of nodes can shift its shape as conditions warrant.

Although this is obviously a "robotics" technology, the same concepts are quite relevant to software agent technology.

My attention was brought to this announcement by a post on Slashdot.

-- Jack Krupansky

What do YOU mean by "software agent"?

Although I've answered the question "What is a software agent?" as definitively as I can at this time, it does remain an open question. In particular, does a computer program have to exhibit significant signs of "intelligence" before it can be considered an "agent"? Does a program need to be significantly "autonomous" (in terms of choosing what tasks to pursue and where and how) to be an agent? And, to what extent does the program need to have broad latitude to pursue "Goals" rather than being merely "programmed" for a specific task? And what of "swarms" of "dumb agents", are they agents or not? These are all good questions.

For now, I will stick with my primary definition of a software agent:
A Software Agent (or Autonomous Agent or Intelligent Agent) is a computer program which works toward goals (as opposed to discrete tasks) in a dynamic environment (where change is the norm) on behalf of another entity (human or computational), possibly over an extended period of time, without continuous direct supervision or control, and exhibits a significant degree of flexibility and even creativity in how it seeks to transform goals into action tasks.

That said, I am reconsidering whether I really need to have a five-part definition, which recognizes five distinct categories of "agent":
  1. Any computer program which is external to a given program and appears to be directly associated with a user. For example, a web server views a web browser as a "user agent". In some ways this is merely referring to any "client" as an "agent".
  2. Any server-based program which is monitoring and interacting with one or more web services or network resources. From the perspective of a web service, the external programs are "agents" that are working on behalf of some user or some other server software elsewhere, but the interaction with the "agent" is not directly controlled by a user.
  3. An autonomous program which performa well-defined tasks for a user, but doesn't quite measure up to the level of true "intelligence".
  4. An intelligent agent which works on behalf of a user and performs at a level that would be considered "intelligent" and far beyond the capability of a non-AI computer program. When confronted by such a program, even a very sophisticated user or software professional would ask "Wow! How does it do that?"
  5. A relatively "small" computational entity designed to work in parallel and in conjunction with a relatively large number of similar entities to accomplish goals using "swarm-like" behavior. Each entity has only rudimentary capabilities far below the level that we would associate with intelligence, but the combined "swarm" actually does perform at a level that we would associate with intelligence.
This is all a work in progress, but these are my latest thoughts. I'm struggling to maintain my focus on advancing software agent technology, while at the same time recognizing current technology and current vernacular.

And finally, I would note that the discussion of my current definition does include much of these "new" ideas.

Part of my motivation here is that I seek to expand the audience for my work, but I recognize that the vocabulary, beliefs, and expectations will vary widely for those outside my immediate, past sphere of interest.

-- Jack Krupansky

Wednesday, March 30, 2005

Natural language feedback for software agent programming

Here are a few more thoughts about the recent story of a program that translates natural language to code. I'm coming at this from the point of view of intelligent software agents. Since agents operate autonomously, we need to be very sure that they are programmed properly since we won't be there to notice, let alone correct any bad behavior.

I'm agnostic on the issue of what language should be used to "program" an agent, whether it be natural language, a "structured" subset of natural language, a classic programming language, AI techniques, etc. What I'm not agnostic about is that there has to be a feedback loop and intensive environment and stress simulation during the development stage, prior to deployment.

One of the valid roles of natural language is to have in-depth analysis tools that analyze the "programming" of an agent and report to the user (or "programmer") the implications of the agent's programming. Essentially, the user needs to know what will happen when the agent goes off and "does its thing". Not the details, but the behavioral effects. Simulated scenarios are essential, but the natural language feedback is just as essential. Graphical or quantitative feedback can also be valuable, but natural language feedback will be the absolute core requirement.

Natural language also has a sterling role to play for reporting results of software agent execution.

Imagine it... send your software agent out to snoop around, and then have it tell you in simple natural language what it saw on its journey.

Natural language also has a role for enabling agents to query the client in situations where guidance is required. Whether natural language can be used as an input at that stage is an open-ended question, but the software can certainly frame questions that can be answered in a more rudimentary manner.

-- Jack Krupansky

Tuesday, March 29, 2005

Metafor: Translating Natural Language to Code

There is a post on Slashdot entitled "Metafor: Translating Natural Language to Code", referring to a Technology Research News article entitled "Tool turns English to code". The gist of the story is that researchers at MIT, including Hugo Liu, are working on a "language-to-code visualizer" that they call "Metafor". I haven't carefully read either the article or the actual research, but there is at least some utility to pursuing research in this direction.

Here's the Metafor project description from Hugo Liu's web page. There's a breief description, as well as links for papers on the topic, and even the draft for section on the topic for an upcoming book on the topic.

The only real problem I have with the overall concept is that people, including software developers and non-developers alike are particularly lousy and imprecise in their use of natural language. In order to finally achieve the goal of allowing users to fully command and control complex computational systems, we first need to "crack the nut" of how to get people to use natural language more effectively.

To me, the must intriguing avenue of pursuit is feedback tools which allow the computer to elaborate the meanings and ambiguities in any natural language utterance. I would call this "Did You Really Mean?" analysis. It would be quite helpful in all venues of human communication, even if the computer is not the intended target.

-- Jack Krupansky

Sunday, March 27, 2005

Service-Oriented Computing (SOC) and Agent-Based Engineering (SOCABE)

There will be a workshop entitled "Service-Oriented Computing (SOC) and Agent-Based Engineering (SOCABE)" at the upcoming Conference on Autonomous Agents & Multi-Agent Systems (AAMAS'2005). As the workshop announcement puts it:
Service-Oriented Computing (SOC) is a newly emerging paradigm for distributed computing and e-business processing that utilizes services as fundamental elements to enable building agile networks of collaborating business applications distributed within and across organizational boundaries. Services are self-contained, platform-independent computational elements that can be described, published, discovered, orchestrated and deployed for the purpose of developing distributed applications across networks, including the Internet. Service-based approaches include Web services, Semantic Web services, and Grid services.

While a service need not fulfill all characteristics of a strong definition of agency, the SOC approach to building complex software systems bears many similarities to the development of agent-based systems. In particular, large systems are assembled from distributed heterogeneous software components providing specialized services and communicating using agreed-upon
protocols. Similarly to certain multi-agent engineering paradigms, the design process of such systems focuses on the declarative characterization of the agents' capabilities and on a message-based paradigm of interoperation. Also similarly to multi-agent systems, management of the service provision processes is dynamic and distributed, and takes into account the requirements both at the individual services and system levels of the composed application. It also needs to be adaptive in response to the changing requirements, services and exceptions
in the dynamic Web and Grid environments.

The area of Service Oriented Computing offers much of real interest to the Multi Agent System community, including similarities in system architectures and provision processes, powerful tools, and the focus on issues such as quality of service, security and reliability. Similarly, techniques developed in the MAS research community promise to have a strong impact on this fast growing technology.

Although "services" certainly is a popular marketing buzzword these days, and software agents will undoubtedly need to interact with so-called "services", the real future of both software agents and "services" is to implement the services themselves using distributed software agent technology, what I call an "agents everywhere" strategy.

The problem with the current vision of services is that they are for the most part simply repackaged mainframe or client-server applications, with all the same associated scalability, reliability, and security concerns. But, it is the "state of the art" at this junction, so we have to learn to live with it, for a while longer.

-- Jack Krupansky

Saturday, March 26, 2005

Self-reconfigurable modular robots

Here's a fascinating post on Engadget entititled "M-Tran self-reconfigurable modular robot", which mentions a new form of robot created in Japan that is actaully able too assemble and reconfigure itself using evolutionary genetic algorithms. This is a hint of the kind of flexibility that we will see in intelligent software agents in the coming years.

It doesn't sound like they have endowed the robot with the ability to seek out and interact with other reconfigurable robots, but give them time... "Legos of the world, unite!"

-- Jack Krupansky

Thursday, March 24, 2005

Polling and pinging considered harmful

I recently posted some comments entitled "Polling and pinging considered harmful" over on my Base Technology blog. My concerns there were split between overall network architecture and the impact on what the user sees and experiences. Here in the world of software agents, I still have the overall network architecture concerns, but the user is replaced with software agents and the developers and users of those agents.

If and when software agent technology is ready for prime-time, software agents will place enormous demands on our network infrastructure, far beyond the demands of sluggish human users. The idea that software agents should be polling and pinging to access information is completely ridiculous, except for low-volume or localized applications.

For widespread adoption of true software agent applications we simply must have a true information distribution architecture that attempts to optimize information flow rather than forcing a maximization of dysfunctional information flow.

-- Jack Krupansky

Wednesday, March 23, 2005

Intelligent agents stink (?)

I ran across an old 1996 WIRED article by Jaron Lanier (the guy who coined the term "Virtual reality") entitled "My Problem with Agents" which he leads with the statement "Intelligent agents stink." One of his key statements is that:

If an agent seems smart, it might really mean that people have dumbed themselves down to make their lives more easily representable by their agents' simple database design. This is a serious problem because it could sneak up on us. People are so much more flexible than computers and so prone to suggestion. ... Agents would be - like the television commercial - a simple device that causes a grand decrease in the beauty and intelligence of our society.
He concludes:

The whole point of the Net is the empowerment of the people, not the computers. That happens only if people choose to be empowered. Let's not blow this chance for more human autonomy because we're caught up in the fantasy of machine intelligence.

So, the big question is whether intelligent agent technology and machine intelligence have made any significant progress in the nine years since Jaron made his critical assessment of software agent technology.

In other words, do intelligent agents still stink?

I'll allow readers to jump to their own conclusions, but I'd note that at the present time, machine intelligence seems to work best when it is embedded within a system rather than directly exposed to a user. From this perspective, the question I'd pose to Mr. Lanier is whether he would prefer that systems be composed of dumb components or smart components.

That said, I'd say that we have quite a distance to go before the typical system is based primarily on smart let alone truly intelligent components.

-- Jack Krupansky

Tuesday, March 22, 2005

IlliGAL Blogging

It sounds ominous, but IlliGAL Blogging is a blog by current and former members of the Illinois Genetic Algorithms Laboratory (IlliGAL) dedicated to studying nature's search algorithm of choice, genetics and evolution, as a practical approach to solving difficult problems on a computer.

IlliGAL is part of the General Engineering Department at the University of Illinois at Urbana-Champaign.

I envision that genetic algorithms will be a key ingredient of intelligent software agents in the coming years.

-- Jack Krupansky

Monitoring machinery health with DEXTER Agents from Macsea

Macsea Limited is marketing DEXTER Agents software agent technology for machinery health monitoring. As their web site notes:

The philosophy behind DEXTER Agents is to provide you with new tools to automate the equipment monitoring and performance analysis functions currently performed by your people. As the levels of plant automation increase, there’s simply too much process data to convert into useful business (maintenance) information. DEXTER Agents allows you to create software agents that automatically perform these tasks, 24 hours per day, 7 days per week. It’s a simple process to create a prognostic agent that acquires process data, performs historical trending analysis to detect anomalous equipment behaviors, and predicts failures before they have a chance to happen. The agents alert you if a problem is detected, otherwise they continue to do their job unobtrusively in the background as part of your enhanced automation system.

See the press release for the latest release of DEXTER Agents(TM).

-- Jack Krupansky

Thursday, March 17, 2005

Software agents and Smart Grid Technologies

A workshop which combines software agents and grid computing entitled "Smart Grid Technologies" with he held at the 2005 Conference on Autonomous Agents and Multiagent Systems(AAMAS 2005). The announcement states:

Grid Computing is a novel and active research domain for complex, dynamic, distributed, and flexible resource sharing. Recent research on Grid has largely focused on issues of performance, scalability, and standardization. Yet, little has been done on aspects of intelligence and adaptability. Agent and multi-agent technologies provide a promising approach to make Grid technologies and solutions based on Grid technologies smarter, more flexible, and adaptable.

The kind of questions which arise in this research area are twofold: On the one hand, technical questions concerning the Grid have to be solved, including advanced Grid architectures, semantically enhanced service descriptions, and the specification of resources. On the other hand issues related to autonomy, collaboration, and economic models need to be tackled. Key issues here are market-based allocation and scheduling of resources, pricing, payment, automated negotiation, market mechanisms, self-organization and learning, engineering of Grid marketplaces and many others.

The workshop focuses attention of the following topics:

  • Modeling of Grid environments
  • Agent-based mechanisms for Grid markets
  • Resource allocation in Grid scenarios using agent-based approaches
  • Automated negotiation for Grid resource allocation
  • Agent-based simulation of Grid environments and markets
  • Agent-based Computational Economics for Grid
  • Engineering of Grid markets and Grid architectures
  • Technical research on future application domains

My personal thinking is that this overall topic is really two distinct sub-topics:

  1. How to apply software agent technology towards making grid computing a more usable platform for distributed applications. I would call this "application of software agent technology for enhanced grid operations."
  2. How to make grid computing environments better places for the deployment of software agent-based applications and multi-agent systems. I would call this "grid support for software agent applications".
The workshop announcement seems focused on the former, but I think the latter will be inevitable. Either way, the whole topic is quite interesting and quite topical.

--
Jack Krupansky

Wednesday, March 16, 2005

Intelligent agent vs. dumb software agent

You might ask how an "intelligent agent" is defined such that it's different from any other software agent. Unfortunately, there's no clear, consensus answer. Some people toss the label "intelligent" around as a piece of marketing hype and others prescribe specific, human-like capabilities. Sure, I have my own definition for "intelligent agent", but even it needs more work.

One of the keys to being truly intelligent is that intelligence requires the ability to learn, which is the ability to acquire knowledge and then use to use that knowledge to effect a change in behavior. But maybe that's a little bit beyond current technology.

I would say that an agent should be defined as an intelligent agent only after it can begin working at the level of goals and breaking goals into sub-goals rather than merely being programmed for specific tasks.

-- Jack Krupansky

Software agents for ecologies of innovation

I just saw a reference by Mitch Kapor to "ecologies of innovation". Despite the vagueness of the term, it was immediately obvious to me that intelligent software agent technology will increasingly become an important component of any ecology or ecosystem that seeks to foster innovation.

-- Jack Krupansky

Monday, March 14, 2005

New book on Service-Oriented Computing

A new book is out entitled "Service-Oriented Computing : Semantics, Processes, Agents" by Munindar P. Singh and Michael N. Huhns. As it's announcement notes:
This comprehensive textbook explains the principles and practice of service-oriented computing with an emphasis on Web services and their construction, deployment, and usage. The book presents the concepts,architectures, theories, techniques, standards, and infrastructure necessary for employing services. It includes a solid overview of the state-of-the-art in Web services and associated disciplines, relating concepts to practical examples and emerging standards. Applicationsof services are explained within the context of ontologies, transactions, processes, planning, negotiation, contracts, compliance, and policies.

The book also has an associated web site.

Please see our complete list of books related to software agent technology.

-- Jack Krupansky Jack@Agtivity.com

Conference session on multi-agent systems and evolutionary computing

What timing... no sooner had I posted my thoughts on exploring evolutionary computing in conjuction with software agents, than I see an announcement for a session at the Conference on Knowledge-Based & Intelligent Information & Engineering Systems entitled "Multi-Agent Systems and Evolutionary Computing". Here's a brief synopsys from the announcement:
This session focuses on the use of the Multi-Agent paradigm for optimization using Evolutionary Computation (i.e. Genetic Algorithms, EvolutionStrategies .). The concept of a computational agent becomes increasinglyimportant in computer science, representing a new level of abstraction for software design. New issues arise when evolutionary computation is applied to the multi-agent paradigm. In these systems evolutionary algorithms must adapt to dynamic problem spaces, where changes are caused by the interactions of the agents in the environment of the global system.Distributed problem solving by a multi-agent system represents a promising approach for solving complex computational problems and has already found its way into many practical applications.

Sunday, March 13, 2005

Ideal programming for software agents

I'm just started to sketch out some ideas for a new approach to software agents that I call "Ideal Programming". It's based on a combination of evolutionary programming and constraint programming plus a whole bunch of additional ideas. The essence is an attempt to add structure (which I call "Ideals") for how a programmer controls or influences or gives guidance to an evolutionary algorithm. There's a lot to it than that, but this is the starting point.

There's not much of anything here to read about yet, but you can be sure of one thing, and that's that ideal programming will "evolve".

Maybe it should be called "Ideal-Oriented Prgramming".

Stay tuned.

-- Jack Krupansky Jack@Agtivity.com

Saturday, March 12, 2005

Updated software agent definitions again

I've updated my definitions for software agent and software agent system again.

See my discussion of "What is a Software Agent?" for more details.

Concurrent programming for software agents

Concurrent programming is an approach to developing a single computer program in such a way that portions of the program can be allocated to different processors so that they can run in parallel. Software agents are already separate computer programs that can run in parallel, but portions of even a small software agent may in fact be suitable for being parceled out to other processors. In addition, the techniques for coordinating parallel processes may well prove quite useful for coordinating software agents.

See some other comments I've made on concurrent programming on the Base Technology blog.

Thursday, March 10, 2005

Updated definitions for Software Agent and Software Agent System

I've revised my definitions for the terms Software Agent and Software Agent System to reflect my accumulated thinking to date. The field of software agents and software agent technology is primarily a research area and even the top researchers are as yet unable to agree on a common definition for even basic terms, so I'll offer my own definitions:
A Software Agent (or Autonomous Agent or Intelligent Agent) is a computer program which works toward goals (as opposed to discrete tasks) in a dynamic environment (where change is the norm) on behalf of another entity (human or computational), possibly over an extended period of time, without continuous direct supervision or control, and exhibits a significant degree of flexibility and even creativity in how it seeks to transform goals into action tasks.

A
Software Agent System (or Multi-Agent System (MAS)) is a computational environment (such as the Web or a grid computing environment overlay network) in which individual software agents interact with each other, sometime in a cooperative manner, sometimes in a competitive manner, and sometimes autonomously pursuing their individual goals, accessing resources and services of the environment, occasionally producing results for the entities that initiated those software agents.
For my detailed definition, Click here.

Saturday, March 05, 2005

Blog technology

Blogs have gotten a lot of attention, but with so much of the focus on the editorial aspects of "blogging" and the syndication and aggregation aspects, it wasn't until recently that I decided that maybe there really is some future potential for use by software agents.

As blog feeds and blog entries or posts begin to take on more sophistication and structure, it begins to make more sense that software agents really can use blogs (or actually blog feeds) as information sources.

And, it does seem to make sense for software agents to output information in blog form, or actually blog feed form as a stream of information items or blog entries or posts.

It's still too early to really pursue this angle in earnest, but blog technology does seem like it is headed in a direction where its path will intersect that of software agent technology in the not-too-distant future.

Stay tuned.

Sunday, February 27, 2005

Software Agent Manifesto

I've taken a first stab at enumerating all the capabilities that I think need to be put into place before we can even begin to see some dramatic, wide-spread adoption of software agent technology. I call it my "Software Agent Manifesto".

Granted, it's a work in progress, but we do need to look at the big picture so that we can have at least a little confidence that we're moving in the right direction.

Some additional, more recent thoughts are included on my "Random Thoughts on Software Agents" page.

Please feel free to comment on any of this, either here in the blog or via email.

Agent programming for children

Given the immense challenges of enabling computer software to operate autonomously and to be capable of dealing with highly dynamic environments, it would seem almost an insurmountable task. On top of the raw programming challenge we would ask a simple question: How can the programming of software agents be made easy? And I would extend that question a little further: How can we make the programming of software agents so easy that even children can easily do it? That would seem to be a very tall order, in fact, a seemingly preposterous idea. But, I do think it is reasonable, and the solution to the original problem may actually enable children to program agents as well.

Let me explain.

Years ago, the mere thought of children programming computers was too absurd to even consider, other than for a few odd geniuses. Then came MIT researcher Seymour Papert who invented the Logo programming language and system, which actually enabled children to write simple programs that would do amazing things with a primitive robot called "the turtle". It was a real breakthrough.

Alan Kay was impressed by the Logo project and strived to enable his Smalltalk system to be suitable for children as well, including its latest rendition which is called Squeak and is billed as a "media authoring tool". Significant attention has been given to using Squeak as a learning tool for children.

What occurs to me is that children and adults (e.g., professionals) need an agent programming tool as easy to use as Logo and Squeak. It's not so much that adult professionals can't master the intricacies of programming adaptive autonomous agent software, but that the process is so complex, tedious, and error prone that a dramatically simpler metaphor is needed. In fact, some would argue that a human simply cannot directly program an agent that would have to cope with a wide range of emergent phenomena.

Neither Logo nor Squeak provide the actual metaphor needed for programming software agents, but they do provide clues, the most important of which is that we need to factor the problem into two parts, the overall metaphor that can be embodied in the agent system software, and then the essential "controls" that would be implemented by that software, and available to the user to effectively control or "program" the agent.

To use the example of a robot, all of the raw capabilities of the robot, such as how to use an effector to pick up and carry an object, would be pre-programmed into the robot's system software, but the planning of what to pick up and when to do it and what to do with the object once picked up would be in the domain of controlling or "programming" the robot.

The essence of a programming system for software agents would be the ability to define goals and overall plans for how to achieve those goals, defining a set of sub-goals and "constraints" and priorities that must be met to achieve that goal, and then to feed all of that information ("the agent program") into an analyzer that structures the information in a form that can be processed by an "evolutionary programming" algorithm.

The essence of an evolutionary programming algorithm is that it is a "search" function that repeatedly tries to find a path from a starting point to a specified end state. The parameters that are fed into the algoritm effectively guide it.

The bottom line is that instead of programming an agent the way the Logo turtle is programmed, with a sequence of steps ("do this, then do that"), the agent programmer focuses on defining the "guidance" that the evolutionary programming algorithm needs to sift through potential solutions to "find" an acceptable solution.

Of course there willbe a lot of "trial and error" as we slowly try to grasp how to go about programming an agent. Simulators and training environments will allow us to experiment wildly without causing any harm.

Frankly, many children will do far better at discovering how to best control software agents than most "professional" adults who carry around too many rigid biases and too much "intellectual baggage" that must painfully be discarded to go back into child-like discovery-mode.

The underlying agent programming system will in fact have some rudimentary simulation capability built it so that it can in fact at least partially evaluate potential solutions before picking the one to pursue. Better guidance from the programmer may not be required, but may permit the agent system to perform better. The agent system can also give the programmer feedback so that the "program" can be updated to correct inefficiencies.

In addition, the agent system can also learn from its "experience" and feed guidance back into future executions.

In summary, although the goal is to make it feasible and easy for professionals to program software agents, the path to get there may well have the side effect of enabling children to program software agents as easily.

Postscript: The "dumb" Logo turtle could be turned into a full-fledged autonomous robot, and then a Logo-like language could be used to enable even children to "program" the turtle to "discover" things in its environment and then interact with what has been discovered. In particular, the neo-turtle could be taught to "play" with objects and even people. In fact, the children could "teach" their turtles how to interact with other turtles. This could be truly amazing stuff.

Saturday, February 26, 2005

Nature-Inspired Computing

A new book entitled "Handbook of Research on Nature Inspired Computing for Economy and Management" is in the process of being edited by Dr. Jean-Philippe Rennard, Senior Professor, Grenoble Graduate School of Business, Grenoble, France. From his blurb:
The advance of computer science and the remarkable growth of computing power over the last thirty years have made the computer a fantastic tool to cope with complexity. The emergence of nature inspired computing is one of the most amazing achievements of these researches. The universality of the computing techniques inherited from nature, i.e. their applications as well in biology, physics, engineering as in economy or management, clearly demonstrates their depth. These new tools are used in two different ways, both highly promising for economy and management: emergent (bottom-up) simulations and optimization. Emergent simulations lead to a better understanding of complex interactions and to original theoretical approaches. Nature inspired algorithms for optimization lead to efficient, supple and adaptable tools.

Nature-inspired computing has some real potential for helping to fuel to shift to software agent technology. Whether the model is swarms, colonies, or or other natural metaphors, software agents seem well-suited for attacking complexity and modeling extremely dynamic systems.

Friday, February 25, 2005

Amazing agent papers to be presented at the AAMAS-05 conference

The list of accepted papers for the 2005 Conference on Autonomous Agents and Multiagent Systems is just out.  It's quite an amazing and long list that shows the breadth and depth of interest in software agents, but also illustrates the extent to which the overall technology really isn't there yet, let alone ready for prime-time commercial deployment.
 

Regulation of Multi-Agent Systems

There will be an interesting workshop on the regulation of multi-agent systems entitled "Agents, Norms and Institutions for Regulated Multiagent Systems" at the 2005 Conference on Autonomous Agents and Multiagent Systems in July in Utrecht, The Netherlands. As the workshop blurb notes:

Multi-agent systems are often understood as complex entities where amultitude of agents interact, usually with some intended individual or collective purpose. Such a view usually assumes some form of structure,or set of norms or conventions that articulate or restrain interactions in order to make them more effective in attaining those goals, more certain for participants or more predictable. The engineering of effective regulatory mechanisms is a key problem for the design of open complex multi-agent systems, so that in recent years it has become a rich and challenging topic for research and development.

Of the many possible ways of looking at the problem of regulating multi-agent systems, this workshop focuses on a normative approach, based on the use of Norms in Artificial Institutions. Lately there has been an explosion of new approaches, both theoretical and practical, exploring the use of norms as a flexible way to constrain and/or impose behaviour and these are reflected in specifications of norm languages, agent-mediated electronic institutions, contracts, protocols and policies.

The workshop invites specialists from various fields to discuss conceptual, formal and technical aspects that bear upon theformalization, design, construction and deployment of regulated multi-agent systems. The workshop intends to bring together active researchers to present and debate recent developments.

See the workshop web page for further details.

Multi-Agent Systems and Complexity

There will an interesting sesssion on Multi-Agent Systems and Complexity at the Complexity, Science and Society conference coming up in September in Liverpool, UK. Modeling of software agents and their interactions becomes an enormous issue as software agents proliferate and the interactions among them become more intense. They become known as a Complex Adaptive System (CAS). The conference session blurb notes that:
Agent models have long been applied in economics and the social sciences as models of complex phenomena. In recent years, the design and study of systems of software agents has arisen in Computer Science, where it promises to change the prevailing object-oriented paradigm in software engineering (see: Luck, McBurney and Preist 2003, Zambonelli and Parunak 2003). Such agent models treat the individual agents as intelligent, autonomous entities engaged in purposeful interaction with one another, and study both the decision-making processes of the individual agents and the mechanisms for interaction between them. This deeply theoretical and very applied work in Computer Science has created the possibility of significantly more sophisticated multi-agent computer models of real-world complex, adaptive systems.

Conversely, it is possible to conceive of complex computational systems, such as the Internet, as systems of interacting, intelligent agents. The design, management and control of these systems may therefore benefit from learnings in the social and physical sciences regarding complex, adaptive systems. Several major computer hardware vendors have recently announced initiatives in which these ideas figure prominently: HP's utility computing, IBM's on demand computing, and Sun's N1 systems.

This conference session aims to explore these ideas from both directions: multi-agent systems (MAS) as models of complex phenomena, and complex computational systems viewed as systems of interacting agents. Because both threads involve several theoretical and applied disciplines, the session hopes to generate multi-disciplinary conversations, debate and exchange.

Amazing agent papers to be presented at the AAMAS-05 conference

The list of accepted papers for the 2005 Conference on Autonomous Agents and Multiagent Systems is just out. It's quite an amazing and long list that shows the breadth and depth of interest in software agents, but also illustrates the extent to which many research questions remain open and the overall industrial-scale technology really isn't there yet, let alone ready for wide-spread prime-time commercial deployment.

In addition to the formal papers to be presented at the scheduled sessions, quite a number of papers will also be presented informally as "posters".

The intensity of the research efforts is truly amazing and certainly thought-provoking and exciting, but I'm also disappointed that we still have quite a distance to go before a lot of our visions can be made into reality.

Thursday, February 24, 2005

Environments for multi-agent systems

A workshop entitled "Environments for Multiagent Systems (E4MAS'05)" will be held at the next Conference on Autonomous Agents and Multi-Agent Systems (AAMAS) to be held July 25-26, 2005 in Utrecht, The Netherlands. As the workshop blurb notes, with all the attention given to software agents themselves, not near enough attention is given to the environments in which these agents operate:
There is a general agreement in the multiagent systems research community that the environment where agents are situated in is an essential part of any multiagent system. Yet, most researchers and developers either fail to integrate the environment as a first-order abstraction in models and tools for multiagent systems, or minimize the environment's role within the overall system. Functionality associated with the environment is typically limited to message transport or broker infrastructure.

Researchers working in the domain of situated multiagent systems have demonstrated how agents can exploit the environment to share information and coordinate their behavior. For example, digital pheromones and gradient fields can guide agents in their local context and as such facilitate the coordination of a community of agents in a decentralized way. Several practical applications have shown that the environment can contribute to manage complex problems, such as supply chains systems, network management, manufacturing control or multiagent simulation. Clearly, if we limit the functionality of the environment to only message transport, we neglect a rich potential of possibilities for the paradigm of multiagent systems.

The goals of the E4MAS workshop series are to promote the environment as a first-order abstraction in multiagent systems and to further develop the discussion forum on environments.

More details can be found on the workshop web page, as well as the page for scope and main topic areas.

There is also a white paper entitled "Environments for Multiagent Systems State-of-the-Art and Research Challenges."

Wednesday, February 23, 2005

Machine-understandable Web service descriptions

There is an intriguing workshop at the next World Wide Web Conference (WWW 2005) entitled WEB SERVICE SEMANTICS: TOWARDS DYNAMIC BUSINESS INTEGRATION which concerns itself with how to do a much more robust level of integration of semantic web services (SWS).  They describe the workshop as:
The description of Web services in a machine-understandable fashion is expected to have a great impact in the areas of e-Commerce and Enterprise Application Integration, as it can enable dynamic and scalable cooperation between independently developed systems and organisations.  These potential benefits have led to the establishment of an important class of research activities, both in industry and academia, aimed at the practical deployment of declarative, semantically rich service and process descriptions and their use across the Web service lifecycle.
This research, which draws on a variety of fields such as knowledge representation, automated software engineering, process modeling, workflow, and software agents, is happening under several headings, including Semantic Web services (SWS), Grid services and Semantic Grid services, and (some aspects of) Service-Oriented Computing.  For ease of reference, in this call we refer to this general area of work as Semantic Web services (SWS).  We note that here, "Semantic Web" does not denote any particular set of standards, although much work in this area does build on products of the Semantic Web activity at W3C.  In addition, many SWS efforts are aligned with rapidly developing commercial Web service standards such as WSDL and UDDI.
I find this particularly intriguing since one of my pet beefs is that there is too much hand-coded logic (code) floating around that almost assures that software will be buggy, poorly integrated, inflexible, and destined to perform poorly.  Machine-understandable descriptions are clearly an important paradigm for the design of future software system architectures.
 
For more details, see the workshop web site.
 

Monday, February 21, 2005

Is ontology overrated?

Clay Shirky has a session at the upcoming March 14-17, 2005 O'Reilly Emerging Technology Conference on the topic "Ontology is Overrated: Links, Tags, and Post-hoc Metadata". He argues that ontology was needed for physical books (the infamous card catalog) simply to keep track of the books, but with modern technology such a catalog is even more difficult to maintain and simply adds little if any value. As he says:
As we have learned from the Web, when data is decoupled from physical presence, it is fluid enough to be grouped differently by different readers, and on different days. The Web's main virtue, in handling data, is to transmute organization from an a priori, content-based judgment to one that can be ad hoc, context-based, socially embedded, and constantly altered. The Web frees us from needing to argue about whether The Book of 5 Rings "is" a business book or a primer on war--it is plainly both, and not only are we freed from making that judgment firmly or in advance, we are freed from needing to make it explicit at all.
He does have some good points, but I still suspect that ontology does have some relevance to the web of the future. It may simply be that ontologies really belong to the realm of active software agents and that ontologies will be used in more of a dynamic matching mode rather than the kind of author-driven static tagging that Shirky argues against. In other words, it would be better to use data mining tools to dynamically classify content, especially since our classification strategies will evolve over time.

So, I think I would retitle the topic as "Ontology: Misused".

Sunday, February 20, 2005

How do we teach a software agent?

If software agents are to become truly "intelligent", the question arises of how to endow them with knowlege.

The immediate reply is to directly state that feeding them pre-digested knowledge is not the way to go, but teaching them how to learn on their own seems much more promising.

So, the question can be restated as "How do we endow software agents with the ability to learn?".

Sure, we will in fact "feed" agents plenty of pre-digested knowledge, in much the same way we feed ourselves knowledge, using books, text, numbers, diagrams, images, media, etc.

The real essence of the point is that intelligence is much more than simply a large library of knowledge. The learning process is all about figuring out how to integrate and mesh all of that knowledge to form a cognitive structure that can support reasoning, logic, intuition, creativity, decision-making, planning, execution of plans, flexibility, risk assessment, risk-taking, and learning itself.

Saturday, February 19, 2005

Three-Level Agent Interaction Negotiation and Connection

In order to maximize the flexibility and robustness of agent-to-agent negotiation and binding, I propose a three-level scheme.

Level One is the level of the agents themselves.

Level Two is the level of intermediaries that are able to work with agents as their clients. Each agent would have some number of Level Two intermediary agents with whom it has established a level of trust and with whom it is willing to work.

Level Three is the level of intermediaries for the intermediaries. This is the level at which "first contact" occurs between two agents. Each level two intermediary agent has some number of intermediary-to-intermediary agents (I2I agents) with whom it has established a level of trust and with whom it is willing to work.

Level One agents offering services would "advertise" to their Level Two intermediary agents who in turn advertise to their Level Three intermediary-to-intermediary agents who keep track of those advertised services.

Level One agents seeking services would notify their trusted Level Two intermediary agents of their interest. Those trusted Level Two intermediary agents would in turn notify their trusted Level Three intermediary-to-intermediary agents of the services that their Level One client agent seeks. Each Level Three agent would query its catalog of advertised services and proceed to competitively negotiate a "connection" (interaction contract). One or more I2I agents would become "primary contractors" and others might become "backup contractors".

Two Level One agents would never interact purely in a direct manner, but rather through their respective Level Two intermediaries. If a connection is disrupted, the Level Two intermediaries would then seek to "fix" the disruption. The fix may in fact require negotiating a new agent-to-agent connection. The Level One agents would be notified of all disruptions using an object-oriented event notification and given the opportunity to continue a fail-safe new connection or to abort the connection if appropriate. The Level One agents could be configured to blindly accept all re-negotiated connections. In other words, the developer of a Level One agent would never need to "worry" about the robustness of any connection. In fact, the whole point of the three-level arrangement is to maximize the odds of a successful connection and to maximize the odds that a connection can be renegotiated if disrupted.

Level Two intermediary agents may also seek to re-negotiate a connection based on performance. In fact, a host system might signal intermediary agents to downgrade or upgrade connectivity based on load measurements.

Software Agents and Grid Computing

Software agents are frequently mentioned in the context of Grid Computing. For example, there is an upcoming conference entitled "2nd International Conference on GRID SERVICES ENGINEERING AND MANAGEMENT (GSEM'05)" to be held in Erfurt, Germany on September 19-22, 2005.

The conference blurb notes that:

The Grid has emerged as a global platform to support on-demand virtual organizations for coordinated sharing of distributed data, applications and processes. Service orientation of the Grid also makes it a promising platform for seamless and dynamic development, integration and deployment of service-oriented applications. The application components can be discovered, composed and delivered within a Grid of services, which are loosely coupled to create dynamic business processes and agile applications spanning organizations and computing platforms. The technologies contributing to such Grids of services include Service-Oriented Computing, Semantic Web, Grid Computing, Software Engineering, Business Process Technology, and Agent Technology.
Let us know what you think about the potential of grid computing as a platform for software agent technology. Comment here on the blog, or drop us an email.

How intelligent does a software agent need to be to be considered an intelligent software agent?

The term Intelligent Agent (or Intelligent Software Agent) is thrown around as if it had some real meaning, but there is no standard definition for the term.  So, the question remains:  How "intelligent" does a software agent need to be to be considered an Intelligent Software Agent?
 
Let us know what you think, either by commenting here in the blog, or by dropping us an email.

Jack Krupansky

Jack Krupansky runs this blog, as well as it's associated web site, www.Agtivity.com.

Jack is the principal of Base Technology, a sole proprietorship focused on development of advanced software technology and also offers software consulting services. He is the inventor of the Liana C/C++-like object-oriented programming language.

Click here to view his resume.

Agtivity - Advancing the Science of Software Agent Technology

Agtivity is dedicated to turning the construction and deployment of Software Agent Technology (Intelligent Agents, Intelligent Software Agents, Autonomous Agents, Autonomous Software Agents, Multi-Agent Systems) into a science rather than folklore and ad-hoc art and craft.

We have been following the emerging field of software agents (autonomous agents and multi-agent systems) since 1996. The field has always looked very promising, but our visions and expectations have almost always outstripped reality. Our commitment is unwavering, but the field is simply not yet ready for prime-time.

Our main web site is located at www.Agtivity.com.

Please check out our very extensive agent links page for Software Agent Technology.

Please peruse our book list for Software Agent Technology.

Please feel free to comment here on the blog, or drop us an email.