Monday 06 November 2006 (11:57AM)
An expert system is a program that uses a set of rules to analyse information about a specific subject with a view to solving problems or giving advice. It emulates a human expert's problem solving ability by performing relevant tasks as well as, or better than, the expert. Often, the expert system will explain and justify its output and provide a measure of certainty in the appropriateness of the output. Furthermore, the output given by an expert system is, as is the case with humans, heuristic (a rule of thumb) rather than algorithmic (guaranteed to succeed).
Expert systems are incredibly useful tools. Traditional tasks have included:
I have already written an expert system in a previous role as Artitificial Intelligence developer for a (now out-of-business) software start-up. It was built to meet a very specific need in an even more specific way and made use of custom "in-house" tools for doing so.
This was a mistake that I do not intend repeating. The expert system I am about to write will be generic in scope and standards based. Delivered as a web-service via a simple API (Application Programming Interface) and a web-based user-interface I aim to make it a classic example of software as a service.
I envisage two types of users – providers and consumers:
The feedback I mention above will work in the same way as the review system on Amazon. It exists because consumers will need as much information as possible about the expertise they are buying without actually accessing the expertise itself.
The expert system will make money by charging a percentage of the payment from the consumer to the provider.
Various models for providers to sell expertise will be made available: large one-off payments for unlimited access to a provider's expertise, rental (monthly or annual) access and even cheap one-off "shots". The providers set the pricing for their expertise and the open-market and customer feedback does the rest.
Providers will administer their account through an easy-to-use web-site that also provides information concerning the usage of their expertise. This is so they can view (for example) usage trends, popular areas of expertise, basic customer profiling and feedback on their offerings enabling them to concentrate on the most valuable areas of the market.
Consumers will be able to access expertise in various ways to reflect their individual requirements. This includes both forward chaining (data driven) and backward chaining (goal driven) interrogation strategies.
Consumers will also be able to interact with the system in one of two ways:
I have already spent a lot of time designing the expert-system "engine" – the piece of software at the heart of the system. There is still a lot to do in order to make it more efficient and flexible and I still need to make extensive tests.
I have yet to start on both the web-services API and the web-site but I hope to get initial mock-ups for the user interface and specifications for the web-services completed in the not-too-distant future. This will, of course, involve discussions with potential end users (encompassing providers, consumers and potential third party software developers).
Finally, as with all my other projects described on this site, I need to spend some time writing a business and marketing plan.