text: 1. To begin with navigate to or create the SWRLTab. If it doesn’t already exist use 
  Window>Tabs>SWRLTab to create and select it. If you don’t have the SWRLTab under the 
  Window>Tabs menu then use File>Check for plugins and select the SWRLTab plugin. Remember ifyou 
  do this you need to restart Protégé for the plugin to be available. 
  
  2. The SWRLTab is divided into two main views and then some buttons on the bottom of the tab that 
  relate to DROOLS. The question of when and how to use DROOLS confuses many new users but there is 
  a simple answer: don’t use it!11 As you get more experience with SWRL you will start to understand how 
  and when DROOLS is used but for beginners the answer is simple. Think of all those DROOLS buttons 
  as things for power users only. You don’t need to use them at all. That is why we installed the Pellet 
  reasoner in section 4.2. The Pellet reasoner supports SWRL and when you run the reasoner it will also 
  automatically run any SWRL rules you have. See the bibliography for a paper on DROOLS. 
  
  3. Click on the New button at the bottom of the top view. The other buttons should be grayed out since 
  they only apply if you have at least one rule written. This will give you a new pop-up window to write 
  your rule. In the Name field at the top call the rule: HotDiscountRule. You can skip the comment but if 
  you want to add a comment it is a good habit to get into and you can write something like: Provide a 
  special discount for customers who prefer hot pizzas. 
  
  4. Now go to the bottom part of the rule window and start writing the rule. To start you want to bind a 
  parameter to each instance of the Customer class12. To do this all you need to do is to write: 
  Customer(?c). Note that auto-complete should work in this window but sometimes it may not and you 
  may need to type the complete name. Also, you will see various hints or error messages in the Status field 
  as you type which you can mostly ignore for now. E.g., as you type out Customer you will see messages 
  like: Invalid SWRL atom predicate ‘Cus’ until you complete the name of the Customer class. Those 
  messages can help you understand why your rule won’t parse as you develop more rules but for now you 
  should be able to ignore them. 
  
  5. Now you want to bind a parameter to the number of Pizzas that each customer has ordered so far. To 
  do that you first add a ^ character. This stands for the logical*and*. I.e., the rule will fire for every set of 
  bindings that satisfy*all*of the expressions in the antecedent. To test the number of Pizzas you use the 
  data property numberOfPizzasPurchased. So at this point your rule should look like: Customer(?c) ^ 
  numberOfPizzasPurchased(?c, ?np). 
  
  6. Now we want to test the object property hasSpicinessPreference. The first parameter will also be 
  ?c. I.e., we are iterating through each instance of Customer, binding it to ?c and then testing the values 
  of these properties. However, in this case rather than binding the spiciness preference to a parameter we 
  just want to test if it is equal to the instance of Spiciness Hot. So we directly reference that instance in 
  the expression resulting in: ^ hasSpicinessPreference(?c, Hot). 
  
  7. As the last part of the antecedent we want to test that the Customer has purchased more than 1 Pizza. 
  We can use the SWRL math built-in swrlb:greaterThan. Add ^ swrlb:greaterThan(?np, 1) That is the last 