Microtheories and Inferencing

This exercise should follow the lesson called Microtheories.

This exercise is divided into three parts:

Part 1: Preliminary Knowledge Entry

Part 2: Creating New Microtheories

Part 3: Querying Within Microtheories

Part 1: Preliminary Knowledge Entry

First, locate the constant #$January, and verify these facts are available in #$CalendarsMt, asserting them if necessary (Use the “Assert” page available through your browser via the Toolbar):

(#$isa #$January #$MonthOfYearType)

(#$genls #$MonthOfYearType #$TemporalObjectType)

(#$genls #$January #$CalendarMonth)

Next, locate or create the constant #$NewYearsDay, and assert in #$CalendarsMt, if necessary:

(#$isa #$NewYearsDay #$TemporalObjectType)

Step 2: Creating New Microtheories

Next, you’re going to work with a microtheory that contains information true and relevant in the Northern Hemisphere. It is called (predictably) #$NorthernHemisphereMt. Make sure that the following assertions are available in your Cyc image, asserting them if necessary:

(#$isa #$NorthernHemisphereMt #$GeneralMicrotheory)

[in #$BaseKB]

(#$subsumesIntervalType #$CalendarWinter #$January)

[in #$NorthernHemisphereMt]

Next, create #$WesternCultureMt, which will contain information true and relevant in Western cultures. Use the “Create” page available in your browser via your toolbar to create the constant #$WesternCultureMt. As with #$NorthernHemisphereMt, assert:

(#$isa #$WesternCultureMt #$GeneralMicrotheory)

[in #$BaseKB]

Assign #$HumanSocialLifeMt as a #$genlMt:

(#$genlMt #$WesternCultureMt #$HumanSocialLifeMt)

[in #$BaseKB]

In #$WesternCultureMt, assert:

(#$genls #$NewYearsDay #$LegalHoliday)

(#$subsumesIntervalType #$January #$NewYearsDay)

Now create #$NorthAmericanCultureMt, and then assert that it is an instance of #$GeneralMicrotheory.

Assert that #$NorthernHemisphereMt and #$WesternCultureMt are #$genlMts of #$NorthAmericanCultureMt.

Step 3: Querying within Microtheories

Go to the Ask interface, and set these four resource constraints:

  • Get everything
  • Run for 20 seconds
  • 1 backchain step
  • Infinite depth

Using the “Advanced Inference Parameters” set “Cache backward query results” to “Yes”.

In #$NorthAmericanCultureMt ask:

(#$intersectsIntervalType #$CalendarWinter #$NewYearsDay)

Examine #$NewYearsDay, and note that the assertion you just asked about has been inferred:

(#$intersectsIntervalType #$CalendarWinter #$NewYearsDay)

Now try the ASK in #$CalendarsMt, #$NorthernHemisphereMt, and #$WesternCultureMt.

(#$intersectsIntervalType #$CalendarWinter #$NewYearsDay)

Now ask if every #$NewYearsDay is a #$LegalHoliday in #$CalendarsMt, in #$NorthAmericanCultureMt, and #$NorthernHemisphereMt:

(#$genls #$NewYearsDay #$LegalHoliday)

Now try the following on your own:

If we create #$AustralianLifeMt, which existing Mts would be its #$genlMts?

What other Mts would we want to add as its #$genlMts?

Which assertions should hold true of #$NewYearsDay in #$AustralianLifeMt?

If we create #$ArabianPeninsulaLifeMt, which existing Mts would be its #$genlMts?

What other Mts would we want to add as its #$genlMts?

Which assertions should hold true of #$NewYearsDay in #$ArabianPeninsulaLifeMt?

Note that the Arabian Peninsula is located in the Northern Hemisphere, and the Islamic New Year’s Day is calculated according to the #$IslamicLunarCalendar.

Browsing and Editing the KB Home Roles and Events