Make Assertions on New Constants in Your Own Microtheory

In the previous step, we created some constants that we will use as we make new assertions in Step 3. If you have not yet created those new constants, please go back and complete Step 2.

The next step is to make assertions in the KB using my new constants. Every Cyc assertion is made in some microtheory.

Every Cyc assertion is made in some microtheory.

Click here for suggested reading on this topic   Tutorial lesson on microtheories

Note: At this point in the walk through, you have a choice to make. You can go through the quicker version that avoids (for now) some of the details about working with microtheories; or you can click here to use the more detailed version, where you will do some looking for the right microtheories to assert in and ask from. To use the shorter version of the walk through, just keep reading. The long version is 30-60 minutes longer than the short version.

In order to prepare for adding assertions to the KB, we're going to set up one new microtheory into which we will put all of our assertions about Billy and Peter. The microtheory will need to "see" all microtheories that contain assertions relevant to knowledge about Billy and Peter.

In Step One, we identified the following constants that we'll use to make assertions about Billy and Peter:#$DomesticPet , #$siblings , #$likesAsFriend , #$age , #$WeeksDuration . To use these constants in our new microtheory, we'll need #$genlMt links from our new microtheory to microtheories containing "definitional assertions" about these constants.

Click here for further explanation of why you just did the above.   What are definitional assertions?

Click here for suggested reading on this topic   Further reading on #$genlMt

Now, let's quickly tell Cyc about our new microtheory, which we'll call "Cats-PracticeMt". First, go to the proper tool screen.

Try it yourself! Enter this into your copy of OpenCyc.    Click on the Tools link in the top frame.   [ Show me ] This will bring up the Tools page. Click on the "Compose" link in the column on the left.   [ Show me ] This will bring up the Compose KE Text Expressions page.   [ Show me ]

This is where you can enter many assertions at one time in a kind of short-hand called KE Text format. Instead of typing in the assertions about our new microtheory by hand, you can copy and paste the assertions.

Try it yourself! Enter this into your copy of OpenCyc.    Copy all of the text from the shaded area below and paste it into the large text box on the Compose page. Make sure the box is checked next to "Remove non-printing characters in strings". Click the [Eval] button.   [ Show me ]

Default Mt: BaseKB.

Constant: Cats-PracticeMt.
isa: Microtheory.
genlMt: BiologyMt HumanActivitiesMt AgentGMt.

comment: "This microtheory is used by an OpenCyc 'walk through' exercise as a place to make 
assertions and ask questions about a few domestic cats.".

The new page that comes up should contain the following sentence:

Your KE-Text (from ke-text compose) has been successfully parsed into the below lists.

So now we're ready to add these assertions to the Agenda (which means that they'll be added to the KB).

Try it yourself! Enter this into your copy of OpenCyc.    Click the link that says, "Add Forms to Agenda".

You should see a new page that says:

KE-Text: Forms Added to Agenda

These steps should have successfully created our new microtheory and connected it to other useful microtheories. There is one more thing we can do to streamline our work with microtheories. Let's make our new microtheory appear as the default choice when making assertions.

Try it yourself! Enter this into your copy of OpenCyc.    Click on the Tools link once again in the top frame. This will bring up the Tools page. Click on the "Options" link in the right column. This will bring up the Browser Options page. Scroll down to the section of the screen with the heading, "History and Browser Tool Options". Change the Default Mt on the right to read "Cats-PracticeMt" (without the quotes).   [ Show me ] Click the [Change Options] button at the top or bottom of the screen.

The page that comes up after you click on the [Change Options] button should say "KB Browser Options have been modified". Now, whenever you use the Assert tool, #$Cats-PracticeMt will be the default microtheory.

Let's start making some assertions about Billy and Peter. We'll start by saying that Billy is a domestic pet.

Try it yourself! Enter this into your copy of OpenCyc.    Bring up the Assert page by clicking on the Tools link in the left corner of the top frame.   [ Show me ] This will bring up the Tools page. Click on the "Assert" link in the column on the left.   [ Show me ]

This should bring up the assertion-making tool. The "Assert" tool is used to make one assertion at a time. It is not the only way in which assertions can be entered in the KB, but it is the easiest and most straightforward.

The Assert tool is used to make one assertion at a time. It is not the only way in which assertions can be entered in the KB, but it is the easiest and most straightforward.

Click here for suggested reading on this topic   Further reading on making assertions

Try it yourself! Enter this into your copy of OpenCyc.    With the "Assert Formula" page still up, enter " (isa Billy DomesticPet) " in the large text box.  [ Show me ] Don't forget the parentheses. Click on the Cyclify button immediately above the large text box. You should see '#$' characters appear at the beginning of each term in the large text box. (If you do not, you may have misspelled something.) Click the Assert Formula button.

To confirm that the assertion has been entered into the KB, pull up the Term Content Screen for #$Billy .

Try it yourself! Enter this into your copy of OpenCyc.    Type "Billy" into the completion box in the top frame and hit the enter key on your keyboard.

Do you see the new assertion in the large frame on the right?   [ Show me ]

Now let's go ahead and make the same assertion on #$Peter .

Try it yourself! Enter this into your copy of OpenCyc.    Bring up the Assert page by clicking on the Tools link in the left corner of the top frame. Click on the "Assert" link in the column on the left. Enter " (isa Peter DomesticPet) " in the large text box. Click on the Cyclify button immediately above the large text box. Click the Assert Formula button.

You can now try asserting that Billy and Peter are siblings, using the predicate #$siblings .

Let's go back to the Assert page and enter (#$siblings #$Billy #$Peter) , with Cats-PracticeMt entered up in the Mt text field. (Don't forget to Cyclify!)

Try it yourself! Enter this into your copy of OpenCyc.    Click on the "Back to previous (stale) page" button at the top of the main frame.   [ Show me ] Enter "(siblings Billy Peter) ". Click on the "Cyclify" button. Click on the "Assert Formula" button.

You now know how to check to see if that assertion has been added to the KB, so let's go on and assert that Billy is an animal.

Try it yourself! Enter this into your copy of OpenCyc.    Click on the Tools link in the left corner of the top frame. Click on the "Assert" link in the column on the left. Enter "(isa Billy Animal)" in the large text box.   [ Show me ] Click on the "Cyclify" button. Click on the "Diagnose Formula" button (above Direction :). Finish asserting by clicking on the "Back" button of the Formula Diagnosis page   [ Show me ] and then clicking on the "Assert Formula" button.   [ Show me ]

Now let's do the same for Peter.

Try it yourself! Enter this into your copy of OpenCyc.    Click on the "Back to previous (stale) page" button at the top of the main frame.   [ Show me ] Change "#$Billy" to "#$Peter". Click on the "Cyclify" button (immediately above the large text box). Click on the "Diagnose Formula" button (above Direction :). Click on the "Back" button of the Formula Diagnosis page and then click on the "Assert Formula" button.

Let's make another assertion with the predicate #$likesAsFriend .

Try it yourself! Enter this into your copy of OpenCyc.    Click on the Tools link in the left corner of the top frame. Click on the "Assert" link in the column on the left. Enter "(likesAsFriend Billy Peter)" in the large text box. Click on the "Cyclify" button. Click on the "Assert Formula" button.

Click here for further explanation of why you just did the above.   Do I now also need to assert (likesAsFriend Peter Billy)?

Finally let's assert the ages of Billy and Peter by going back to the Assert page and, in the large text field, enter (age Billy (WeeksDuration 11)) .

Try it yourself! Enter this into your copy of OpenCyc.    Click on the Tools link in the left corner of the top frame. Click on the "Assert" link in the column on the left. Enter "(age Billy (WeeksDuration 11))" in the large text box.   [ Show me ]

Note the way in which the function #$WeeksDuration , and its single argument, 11 , are surrounded by parentheses to create a single entity which then serves as the second argument to the predicate#$age (which is defined as having two arguments and two arguments only). Such an entity, composed of a function and one or more arguments, is known in Cyc-talk as a NAT, which stands for "Non-Atomic Term".

Click here for suggested reading on this topic   Further reading on NATs

Try it yourself! Enter this into your copy of OpenCyc.    Finish asserting by clicking on the "Cyclify" button and then clicking on the "Assert Formula" button.

Now that you are familiar with one method of dealing with microtheories, you can either move on to Step Four to test what you've entered, or, if you would like a more detailed explanation of how to use microtheories and where to place assertions in the microtheory hierarchy, then read the considerably longer version of this walkthrough.

Step Three summary - we have now made a number of interesting assertions on our new constants#$Billy and #$Peter . Maybe you can think of a few more....(For instance, they are both males, surprise surprise!) We also made a new microtheory, #$Cats-PracticeMt, that can "see" all necessary microtheories and will be used to hold all of the knowledge that we assert about Billy and Peter.