From: itsme213 Date: 2006-03-25T00:23:52+09:00 Subject: Suggestion for Ruby quiz Integration of OWL with Ruby ###################### OWL (Web Ontology Language) has several interesting capabilities, including: - Define a (possibly anonymous) class using property expressions DarkChocolate = Dark & base_material is a Chocolate Dark = (any Thing) with brightness = Low - Class definition can be incremental and federated Vehicle = .... ... Vehicle = .... - Classification Determine if arbitrary object is member of class by checking properties - Equivalent | Disjoint | ... Assert that two separately defined classes always | never have the same members - First-class properties Properties are applicable to independent classes (duck typing) Properties are namespaced (Ruby 2 forthcoming selector namespace) - Numerous tools There are many (open-source) tools that handle OWL ontologies - Formal interpretation Maps to RDF tuples (subject-predicate-object) Makes many (open-source) formal analysis tools applicable Tons of info on OWL on the web. One tutorial at http://www.cs.man.ac.uk/~horrocks/ISWC2003/Tutorial/ ###################### A deep integration of OWL with Ruby would be interesting and potentially very useful: - opening up new kinds of expressiveness in Ruby - allowing all of Ruby's power in manipulating OWL - opening access to OWL and RDF tools. One might even find some intriguing links between some of OWL's features and Ruby with duck typing, open classes, method_missing, dynamic mix-ins, etc. (See http://gigaton.thoughtworks.net/~ofernand1/DeepIntegration.pdf) An example of integrating OWL and Ruby, adapted from the above URL: class TeachersChild < OWL::Thing defined_with_query some_expression_or_block_or_string def misbehave raise "Teacher's kids never misbehave" end end obj1 = OWL::Thing.new (properties which may qualify as TeachersChild) obj1.misbehave # dynamically pick up TeachersChild#misbehave ExternalOWLTool.process obj1 # external reasoning tools ###################### There may be some useful Ruby resources already available based on work by Rich Kilmer. www.daml.org/meetings/2004/05/pi/pdf/InfoEther-Semitar.pdf