====== Pellet-HeaRT ====== A prototype of a hybrid rule reasoner for ontologies. ===== Description ===== Integrating classic forward chaining rule reasoning implemented by [[HeaRT]] with the [[http://clarkparsia.com/pellet/|Pellet]]. Concept by [[pub:about_us:gjn|Grzegorz J. Nalepa]] and [[pub:about_us:wta|Weronika T. Adrian]] (Furmańska), prototype implementation by Weronika T. Adrian. ==== Idea ==== * **Conceptual level**: Integration of //Attribute Logic with Set Values over Finite Domains (ALSV(FD))// and //Description Logics (DL)// (research papers on integration: [[http://www.springerlink.com/content/9161824068583k57/|here]] and [[http://www.springerlink.com/content/m388651626832551/|here]]) * **Implementation level**: Integration of Pellet ontology reasoner and HeaRT rule inference engine (research paper on architecture proposal: [[http://www.springerlink.com/content/r46p8m40432n7342/|here]], poster: \\ {{:pub:software:ki2010poster.png?300|poster}} ==== Integration Proposal ==== * Attributes in AL correspond to Concepts in DL * model of a system stored in HeaRT, rule conditions checked by Pellet, execution of rules by HeaRT * communication: DIG or command line ==== Implementation ==== === Top-down overview === There are 2 aspects of the integration of Pellet and HeaRT: - Communication channel - command line - sending RDF/XML (dedicated translators from HML/R to RDF/XML) - DIG interface - sending DIG message (dedicated translators HML/R to DIG) - Inference scenario - rule precondition checked with //consistency checking// DL task - rule precondition checked with //realisation// DL task === What has been done === %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Reasoning with HeaRT-Pellet: % % 1. Build TBox: definitions of types and attributes % % a) build additional statements: 'allDifferent' for individuals % % 2. Call any inference mode you wish (GDI, TDI etc.) % % 3. In each state build an ABox representing this state % % 4. Whenever you check a rule preconditions: % % a) build rule axioms (temporary TBox), % % b) ontology = definitions TBox + rule axioms TBox + state ABox % % c) send the ontology to Pellet to check its consistency % % 5. Interpret the result, carry on as usual % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Reasoning with HeaRT-Pellet - Alternative version: % % % % 1. Build TBox: definitions of types and attributes % % a) build additional statements: 'allDifferent' for individuals % % 2. Call any inference mode you wish % % 3. In each state build an ABox representing this state % % 4. Whenever you check a rule preconditions: % % a) build rule axioms (ABox statements) % % b) definitions TBox + rule axioms aBox + state ABox % % c) send to Pellet to check realization the rule conditions % % 5. Interpret the result, carry on as usual % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Following the inference scenario: **1.** HeaRT can be started with additional parameter in the ''gox'' predicate: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % gox(StateIn,T,Mode,ExternalReasoner) % % ExternalReasoner - the one used to check the rules preconditions % % % % Augmented version of Heart - additional variable for an ext.reasoner % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **2.** Translating parts of the HMR model to RDF/XML %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DAAL prototype translator. % -------------------------- % % Translates attributes into concepts, % attribute values into instances and % rule preconditions into T-Box like axioms. % % Supported operators: 'in', 'eq'. % Supported attributes: 'symbolic'. % % Basic predicates: % owl_xml_gen/0 - translate HMR file into DAAL representation (ontology). % owl_xml_gen/1 - translate HMR file into DAAL representation (ontology) % and write it to the file given as the argument. % owl_xml_attr_gen/0 - translate the attribute definitions % owl_rulp_gen/0 - translate the rules preconditions % owl_rulp_gen/1 - translate the given rule preconditions % owl_stat_gen/0 - translate the states statements % owl_stat_gen/1 - translate the given state statement % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **3.** Sending partial ontologies from HeaRT to Pellet **4.** Interpreting the Pellet answers by HeaRT == Technically == * ''heart-pellet.pl'' - Extended version of HeaRT (works with the standard HeaRT distribution): additional parameter in ''gox'' predicates for the external reasoner to use * ''heart-daal-translator.pl'' - predicates ==== Papers ==== * G.J. Nalepa, W.T. Furmańska: [[http://www.springerlink.com/content/9161824068583k57/|Proposal of a New Rule-Based Inference Scheme for the Semantic Web Applications]], New Challenges in Computational Collective Intelligence. Studies in Computational Intelligence, 2009, Vol. 244/2009, 15-26. * G.J. Nalepa, W.T. Furmańska: [[http://www.springerlink.com/content/r46p8m40432n7342/|Pellet-HeaRT – Proposal of an Architecture for Ontology Systems with Rules]], KI 2010: Advances in Artificial Intelligence. LNCS, Vol. 6359/2010, 143-150. * G.J. Nalepa, W.T. Furmańska: [[http://www.springerlink.com/content/m388651626832551/|Integration Proposal for Description Logic and Attributive Logic – Towards Semantic Web Rules]], TRANSACTIONS ON COMPUTATIONAL COLLECTIVE INTELLIGENCE II, LNCS, Vol. 6450/2010, 1-23. ===== Comments ===== No longer supported. {{tag>software Semantic_Web ontologies rules}} Go back to -> [[start|software]]