Carlo's demo for DR-DEVICE

In this page we present a full example of using DR-DEVICE rules in a brokered trade application that takes place via an independent third party, the broker. The broker matches the buyer's requirements and the sellers' capabilities, and proposes a transaction when both parties can be satisfied by the trade. In our case, the concrete application (which has been adopted from G. Antoniou, F. van Harmelen, "A Semantic Web Primer", MIT Press, 2004) is apartment renting and the landlord takes the role of the abstract seller.

Available apartments reside in an RDF document. The requirements of a potential renter, called e.g. Carlo, are shown in the following table:

Apartment Requirements

  • Carlos is looking for an apartment of at least 45m 2 with at least 2 bedrooms.
  • If it is on the 3rd floor or higher, the house must have an elevator.
  • Also, pet animals must be allowed.

Price Requirements

  • Carlos is willing to pay $300 for a centrally located 45m2 apartment, and $250 for a similar flat in the suburbs.
  • In addition, he is willing to pay an extra $5 per m2 for a larger apartment, and $2 per m2 for a garden.
  • He is unable to pay more than $400 in total.


  • If given the choice, he would go for the cheapest option.
  • His 2nd priority is the presence of a garden.
  • Lowest priority is additional space.

These requirements are expressed in:

After the rule document is loaded into DR-DEVICE, it is transformed into the native DR-DEVICE syntax, via an XSLT transformation. DR-DEVICE rules are further translated into R-DEVICE rules, which in turn are translated into CLIPS production rules. Then the RDF document is loaded and transformed into CLIPS (COOL) objects. Finally, the reasoning can begin, which ends up with 3 acceptable apartments and one suggested apartment for renting, according to Carlo’s requirements and the available apartments. The results (i.e. objects of d-rived classes) are exported in an RDF file according to the specifications posed in the RuleML document.

Department of Informatics Home Page
LPIS Group Home Page

For any comments regarding this page contact Nick Bassiliades.