Executable English / Internet Business Logic
Frequently Asked Questions

    1. How do I go about using the IBL?

      Your apps, written using your English vocabulary, can be up and running on the Web.   Just follow these steps:

      1. Read the tutorial part 1 

      2. Use the free community demo ID to write and run your own rules, and optionally link them to a MySQL or other SQL database.

      3. Register your own private ID using New User ID on the login page.

    2. Can Reengineering build an executable English model of my application requirements?

      Yes.   We are interested in modeling your applications, optionally using your networked MySQL or other databases.

      • The model is self-documenting, including English explanations

      • We can export generated SQL statements from the model

      • We can model applications in your organization, such as...

        • Data cleaning -- Please see the DataAssurance1 demo

        • Knowledge based data mining -- MedMine2 demo

        • Flexible report generation -- TestMachineRequirements demo

        • Ontology and Semantic Web reasoning -- SemanticResolution1 demo

        • Database security with rapid key changes -- SemanticEncoding1 demo

      • Small samples of data are fine for modeling functionality

      • Data should be nonconfidential and/or sanitized

      • Access through firewall or data download

      • DBMS permissions ideally allow transactions, but could be query-only

      • MySQL listener or similar running on your server

      • Internet Business Logic uses JDBC to drive the listener

      • Please contact internet.business.logic@gmail.com for details

    3. Can I use the IBL as a component in my Service Oriented Architecture?

      Yes.

      You can first write and test-run your rules using your browser.

      Then, you can get a Java client stub that shows how to drive the IBL as component of your Service Oriented Architecture.

    4. Can I use the IBL to generate complex SQL queries for use elsewhere?

      Yes.

      You can first use your browser to log on the ID called 'IBLItest' with the password 'author'.

      Then, write and test-run your rules for your SQL application, again using your browser.

      At the foot of each browser page, you will see the http request that you sent, followed by the SQL queries that the IBL automatically generated and ran, using the information in your rules.

    5. Is the IBL a query package ?

      The IBL uses English rules that you provide to query tables of data.   It also does much more than that.

      It functions as an advanced technology integrated development and execution environment (IDE), with an ordinary web browser as the author- and user-interface.

      It provides step by step English explanations of query results on demand.

      You can write rules that make a complicated transaction, such as debiting one account, crediting another, and writing information to a log. This can optionally be done using a networked SQL database system, such as MySQL.

      The IBL reasoner has the power of a programming language, in the sense that it is Turing complete For example, you can write English rules that reference themselves, so that you can effectively iterate over data. Unlike other rule systems, the IBL takes care of controlling such iterations for you.

    6. Is the IBL just another rules system ?

      The IBL differs from the available rules systems that we know about, as follows.

      1. In the IBL, you can use your own English words and phrases when writing rules. You can even use jargon, ungrammatical English, French, German and so on. If a sentence that you write is meaningful to you, it is also meaningful to the IBL.

      2. In most other rules systems, you must be very careful about the order in which you write down the rules. So, if you write, say, 100 rules, you must choose carefully from up to factorial 100 -- a huge number -- of ways of sequencing those rules.

        To see the kind of difficulty this causes, consider this posting from a programmer using a classical forward chaining rule interpreter for which the order of the rules matters:
        The rules are processed by the Jena RETE engine in forward chaining in the following manner. First, the queues of pending inserts/deletes are processed until they are empty. Then, when there is nothing more to inject, a non-monotonic rule is processed from the conflict set. During the processing of non-monotonic rule, if a triple of the head is already present in the context, it is removed -- line 171 in RETEConflictSet.java
        I am unable to understand the reason for the removal. Can anyone help me on this? Won't this removal affect other rules in the conflict set?


        In the IBL, the order of the rules does not matter. A set of rules has the same logical behavior whatever order you write them down in.

      3. The IBL has a single, simple user interface, consisting of an ordinary Web browser. You use the browser to write your rules, and to run them.

      4. There is no need to download and install the IBL. Just point a browser to the login page.

      5. If you choose to use the IBL with a networked database management system, such as MySQL, there is no need to write SQL queries. The IBL automatically writes the necessary SQL queries and transactions, using information you have specified in your English business rules. Then, the IBL automatically runs the SQL it has generated to get answers or make transactions for you.

      6. The IBL is based on a mathematical theory of declarative knowledge. You don't need to know the theory in order to write rules for the IBL, but the solid theory basis makes using the IBL altogether different from other rules systems.

        Historically, relational databases took over from earlier navigational ones by providing a clear, logical way of representing data. The IBL similarly tries to take over some of the tasks that are done in programming languages like C and Java, by providing a clear, logical way of representing executable English business rules.

        The theory basis for the IBL is in the paper Backchain Iteration: Towards a Practical Inference Method that is Simple Enough to be Proved Terminating, Sound and Complete. Journal of Automated Reasoning, 11:1-22, 1993, and in the earlier papers that it references. The papers are technical and, as mentioned, you do not need to read them in order to use the IBL.


    7. Can I use the IBL system to do data mining ?

      "Data mining" is usually taken to mean automatic extraction of rules that summarize a large amount of data. The IBL does not do that.

      One drawback in doing such automatic data mining is that the extracted rules are often not intuitive, and do not take into account knowledge that people already have about the subject.

      Another approach to this, that the IBL does support, is for you to formulate hypotheses about what might be in the data. You write your hypothesis in the form of rules. Then, you run the hypothesis over the data, see that it's not quite right, modify, rerun and so on.

      There is an IBL demo example called MedMine2 that shows how to do this with a medical patient database. The hypothesis is that there are people receiving medically incompatible in- and out-patient treatments. So there is a suspicion of some kind of insurance fraud. Running the rules over the data tests the hypothesis. When an instance of the hypothesis is found, one can get a step-by-step English explanation of why the rules and the data support the hypotheses.


    8. What does the IBL cost ?

      Use of the public community "demo" ID is free. However, the number of simultaneous users is limited, and other people can see, run, and possibly change the rules that you write there.

      Your own private ID costs US $100 per month. Please see the Terms and Conditions for more details.

    9. Why is the English style of the rules and questions not quite the same as ordinary English ?

      We know of no other system that goes as far as the IBL in supporting use of your own vocabulary, jargon, acronyms and phrasing. However, you do need to use place holders, such as "some-person" or "that-address" in the sentences that you write.

    10. Does the IBL contain an English dictionary and grammar ?

      No. A system containing a dictionary would require you to use only the words in the dictionary. Likewise, a system containing a grammar of English would reject many sentences that you might want to use.

      The IBL knows what your sentences mean, without using a dictionary or grammar of English, because it asks you to use an English sentence as a heading for each table of data. It then combines the meanings of those sentences with other sentences that you use in the rules that you write.

      The IBL does however contain a grammar that specifies things like "a simple business rule consists of one or more lines, followed by an underline, followed by a single line". So, the IBL will help you if you write a rule with the underline missing, and so on.

    11. What is the meaning of "some-person" , "a-number" and so on ?

      These are place holders, or variables, that get filled in with actual values like "Jean Smith" and "5" when you run your rules.

    12. How can I write rules and facts using my favorite editor, and then run the rules?

      You can of course write rules and facts directly into the Agent page of the IBL.

      However, if you prefer you can use your favorite editor, such as Notepad, Word, or Emacs.

      When your rules and facts are ready, open a new Agent (or an existing one) in an IBL web page. Then, copy-paste your rules and facts into that page.

      Be careful to leave at least one blank line between each item and the next one.

    13. Can an ordinary user see and change the rules in the IBL ?

      No. When you set up your own private ID, you choose different "user" and "author" passwords. Someone with a "user" password can only run a set of rules. Only a person with an "author" password can see and change your rules.

      An exception to this is the public community "demo" ID. Anyone using it knows both passwords, as they are simply "user" and "author".

    14. Do you provide use of a database management system, such as MySQL, for use with the IBL ?

      We can provide use of a MySQL database management system. However, it is preferable that your databases should stay on your servers. That way, you can grant the IBL as many or as few privileges as you please to access your data over the internet.

    15. Do I have to change the table names in my MySQL or other database ?

      No. You just need to provide simple rules that link each table name to an English sentence that describes the table.

    16. When the IBL generates and runs SQL database queries, how does it know what column names to use ?

      When you write your rules, you tell the IBL that an English sentence, such as "this-person has this-number of children" corresponds to a table with a name such as PERS_CHILD. You also tell the IBL where to find the DBMS containing the PERS_CHILD table on the internet.

      Once it has that information, the IBL can look up the names and types of the columns in the PERS_CHILD table automatically. It then uses the column names in the SQL statements that it generates from your rules.

    17. How can I save an answer table?

      You can save an answer table to a file on your own computer, or as an IBL agent, or to a SQL database table.

      To save an answer table to a file on your own computer, please do the following. On an answer page, click "Printer friendly version"at the top of the page. A new browser window will open, and in it you will see a plain version of the answer table. Open your favorite editor (such as Notepad, Word, or Emacs), and copy-paste the plain version of the answer table into the editor. Then use the editor to save the answer as a file on your own computer.

      To save an answer table as an IBL agent, please do the following. On an Answer page, choose "Save this Answer Table as an Agent" from the drop down menu near the top of the page. Next, go to the Start page. You should see a new Agent with a name ending in "-Ans1" at the top of the list of agents in the middle of the page. Select that Agent, and then "Choose an Agent and Go To View or Change it" from the menu at the top of the page. You should now see a page containing your answer table.

      To save an answer to a SQL database table, please see the Extract-Transfer-Load FAQ, below.

    18. Can I use the system to do Extract-Transfer-Load (ETL) tasks?

      Yes. Please see the online example called ETL0 on the "demo" ID to see how to do this.

    19. How can I control which users can run certain rules ?

      When you write a rule, you can ask the rule to check the ID of any user who tries to run it.

      This is particularly useful when the rules question a DBMS or make database transactions.


    20. I made some changes to an agent on the "demo" ID, but later the changes disappeared. Why?

      The public core "demo" agents are automatically reset every so often, so that new users can follow along with the tutorials. You are most welcome to make changes, but please make a copy of an agent under a new name, and make your changes to the copy. Just use "Save a copy of the selected agent as..." in the pulldown list on the Start page. Your changes to your copy will not be automatically reset, but please remember that anyone on the web can make their own changes.

      You can also register a private ID and password, using the "New User ID" section on the login page . Please see the Terms and Conditions for details.


    21. How can I edit rules in one window and run them in another window?

      Open two windows. Let's call them A and B.

      Go to the Start page in each window.

      1. In A, Choose an agent and go to view or change it.

      2. In B, choose the same agent and Go to its question menu.

      3. In A, make a change, then press the Go button to refresh the page

      4. In B, refresh the question menu. It should show the change you made in A.


      Back to the Executable English LLC home page