One of the common themes of late in PM Discussion is trying to help get new users to use existing help resources, including FAQs and using Search/Super Search on PM, prior to asking questions that may already be answered in these other sources. Sometimes this works, but there are other times where it's a bit harder particularly when you don't know a particular term or technique that you want to use. For example, one question this morning was combining arrays into a hash; the obvious answer is to use hash slices, but this concept is not obvious and may be easily not known by newer users.

So while thinking about this problem, one thing that popped into my head was something along the lines where an intelligent agent could be developed to help direct people to possible answers for their questions, in the spirit (but not method) of how Microsoft's Office 2000 Help or Ask Jeeves works. That is, the new user only has to ask a question, and the agent determines what words are important, and in the case of the examples above, typically presents any entries that contain at least one of the keywords in the question.

Well, that's a rather simplistic approach; a better system would have some intelligence as to recongize that if the user asks about "merging" and "array", there's a good chance that the user really wants to know about hash slices, though other possible answers could be the desired one. This would require some method of emphasizing the relationships between words, as opposed to the presence of the words themselves.

The expert system would come into play in that as new users as questions and get a list of possible answers, they would indicate which answers are what they were looking for; the system would then increase a hypothetical weight for that relationship leading to that answer, such that the next time the same words are asked, that answer will have a better chance of being first. After a large number of repetitions of this process, the system should be very good at giving the answers that match quite well with what the user is expecting. The system would also be able to encorporate new questions and answers into it's database as they are created.

Obviously, this would be developed offsite (off PM, that is), and would most likely use the questions from Q&A, maybe SOPW, sans any thing in CODE tags, in order to develop the initial entries. The problem that I see that I don't see an easy solution for is how to handle weighting the relationships. Beyond simply storing the data as the various q&a nodes, along with the sets of words that match and their weight, I can't think of a nice AI-like algorithm that can be adapted for this.

Note that I haven't done anything towards this, I'm only putting my thoughts down and seeing 1) if there's an interest and 2) if this is even possible. I think it would be a nice bit of added functionality to add to PM, but if it's unreasonable to add, then forget it.. :-)


Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain

In reply to Developing an Expert System/Intelligent Agent for PM? by Masem

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.