From SMW to Rules


Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

From SMW to Rules

  1. 1. The Gap between Semantic Wiki and Deployed System Wiki DB Triple Store Online data Data Layer RPI Map & Events Wine Wiki Social Rec. Group Portal Task & Issue Tracking Ontology Repository Still many not yet mentioned … Wiki Layer App. Layer (Semantic) Wiki Scripting Semantic Template Semantic Query (PHP, Javascript) Wiki Extensions Halo Annotation Extension Parser Function … House of Social Webtop How to build applications effectively? Semantic Forms The Gap
  2. 2. Semantic Wiki @ RPI <ul><li>Applications </li></ul><ul><ul><li>TW Group Portal – CMS for a group </li></ul></ul><ul><ul><li>RPI MAP – mashup RPI events, courses, Google Map, user contributed data </li></ul></ul><ul><ul><li>Wine Wiki – expose RDF to complement wine ontology for wine agent </li></ul></ul><ul><ul><li>TAMI policy test-bed – collaborative policy editing and testing environment </li></ul></ul><ul><li>Extensions </li></ul><ul><ul><li>TetherlessMap – Mashup GoogleMap with SMW </li></ul></ul><ul><ul><li>AskMany – distributed query </li></ul></ul><ul><ul><li>SimpleExport – Edit/Export any data (e.g. N3) in wiki </li></ul></ul><ul><ul><li>Semantic History - Export revision history in RDF </li></ul></ul><ul><li>Templates </li></ul><ul><ul><li>SMW Best Practice (SBP) Templates: encode facts; render them in list/factbox </li></ul></ul><ul><ul><li>OWL Meta Modeling Templates: encodes OWL ontology constructs </li></ul></ul><ul><li>Theory </li></ul><ul><ul><li>Formalization of SMW Modeling Language, Query language </li></ul></ul><ul><ul><li>Rule inference: OWL-RL modeling, LP modeling </li></ul></ul><ul><ul><li>Integrity checking </li></ul></ul><ul><li>Evaluation </li></ul><ul><ul><li>How effective a semantic wiki is in fostering collaboration? </li></ul></ul>
  3. 3. From SMW to Rules Jie Bao Tetherless World Constellation, RPI [email_address] , [email_address] @ Semantic Wiki Meetup at Stanford March 25, 2009
  4. 4. Motivation <ul><li>Goal: </li></ul><ul><li>Use SMW for applications that need rules </li></ul><ul><li>Use rules to improve SMW usability </li></ul><ul><li>Applications: access control policy modeling, integrity checking; use wiki as database </li></ul>
  5. 5. Translation Rules for SMW-ML <ul><li>Subproperty </li></ul><ul><li>Subclass </li></ul><ul><li>Class instance </li></ul><ul><li>Property instance </li></ul><ul><li>Redirection </li></ul><ul><li>P(x,y) :- Q(x,y) </li></ul><ul><li>C(x) :- D(x) </li></ul><ul><li>C(a) :- </li></ul><ul><li>P(a,b) :- </li></ul><ul><li>a=b :- </li></ul><ul><li>Implementation: wiki dump in rdf -> N-triple -> rules </li></ul><ul><ul><li>TW Wiki: 800k triples </li></ul></ul><ul><ul><li>Dump time: about 20 min </li></ul></ul><ul><ul><li>Translation time: about 2 min </li></ul></ul>
  6. 6. Translation Rules for SMW-QL <ul><li>{{#ask: </li></ul><ul><li>[[Category:Person]] </li></ul><ul><li>[[attends::AAAI09]] </li></ul><ul><li>}} </li></ul><ul><li>Result(x) :- Person(x), attends(x, AAAI09) </li></ul>
  7. 7. Translation Rules for SMW-QL
  8. 8. Translate SMW Query into Rules <ul><li>{{#ask: [[Category:A]][[p3::category:B]] or </li></ul><ul><li>[[ p.p1.p2 :: </li></ul><ul><li><q>[[Category:D]] or [[p1::<q>[[SomePage]]</q>]]</q> || !v || <q>[[Category:E]]</q> </li></ul><ul><li>]] </li></ul><ul><li>}} </li></ul><ul><li>_result(x) :- _tmp0(x). </li></ul><ul><li>_tmp0(x) :- A(x), p3(x,x0), x0=category:B . </li></ul><ul><li>_tmp0(x) :- p(x,x2), p1(x2,x3), p2(x3,x1), _tmp9(x1). </li></ul><ul><li>_tmp9(x1) :- _tmp12(x1). </li></ul><ul><li>_tmp12(x1) :- D(x1). </li></ul><ul><li>_tmp12(x1) :- p1(x1,x4), x4=SomePage. </li></ul><ul><li>_tmp9(x1) :- x1!=v. </li></ul><ul><li>_tmp9(x1) :- E(x1). </li></ul>
  9. 9. Next Steps <ul><li>Applications: policy, IC checking </li></ul><ul><li>Extend SMW to express: </li></ul><ul><ul><li>Negation as failure on categories and properties </li></ul></ul><ul><ul><li>Classic negation ? </li></ul></ul><ul><ul><li>Default </li></ul></ul><ul><li>Rule Execution </li></ul><ul><ul><li>Which rule engine? </li></ul></ul><ul><ul><ul><li>Prolog solvers, ASP solvers, Rule reasoners… </li></ul></ul></ul><ul><ul><li>Parallel execution? </li></ul></ul><ul><ul><li>Real time evaluation </li></ul></ul>