170 likes | 260 Views
GraniteOntologies. Gunnar Aastrand Grimnes , Stuart Schalmers, Pete Edwards & Alun Preece. Acquiring and Applying Ontologies in GraniteNights. GraniteNights , Gunnar Aastrand Grimnes, CIA, August 2003. Introduction & Talk Overview. GraniteNights:
E N D
GraniteOntologies Gunnar Aastrand Grimnes, Stuart Schalmers, Pete Edwards & Alun Preece Acquiring and Applying Ontologies in GraniteNights GraniteNights, Gunnar Aastrand Grimnes, CIA, August 2003.
Introduction & Talk Overview • GraniteNights: • Initially made for Agentcities Competition. • Demo’ed @ AC ID3 in Barcelona, Feb. 03. • GraniteNights also presetned in a “proper” talk @ CIA2003. • Talk: • Overview • Ontologies • Tools • Conclusions
Screenshots II • GraniteNights remembers users and learns their preferences over time.
Messages and Data in GN • Everything is RDF, use as little SL as possible. • Not just data: • All messages are represented in RDF. • Jade message envelopes are SL (but could be XML or RDF using the appropriate plugin). • To support this several ontologies are needed.
Ontologies • Re-use is the name of the game. • Ontologies from Agentcities.RTD project: • Shows (cinema) • Restaurants • Utilities ( address, time/dates etc. ) • Home grown ontologies: • Beer & Pubs ( based on Shoe example ontology ) • Evening plans & User Profiles • Query by Example
Tools • Jena for handling RDF: • Supports N3, great for hand-writing RDF, convert to RDF/XML. • Frodo RDFSViz • Home-made: • Query By Example. • Java “ontology classes” generator. • Ontology driven “Classfiller” for generating instance data. • XEmacs! The one and only text-editor!
Query By Example • QBex is an RDF based query language. • Variables & constraints are supported. • Internally converted to RDQL: <q:Query> <q:template> <akt:Academic> <akt:family-name> Brown </akt:family-name> </akt:Academic> </q:template> </q:Query> SELECT?xWHERE(?x,?y,?z), (?x, <rdf # type>, <akt # Academic> ), (?x, <akt # family-name>, "Brown" )
QBeX : Variables • Using an RDF based constraint interchange format, QBeX can represent expressions like: Query(X): { type(X, Restaurant), serves(X, Tandoori), openingTime(X,Y), Y>1900. }
Jena vocabulary classes • Vocabulary Java files are generated directly from the XML files. • Javadoc comments generated includes: • Labels & Comments • Sub and Super classes • Range / Domain of Properties • Support RDFS & DAML+OIL. • Combined with Frodo RDFSViz it makes a powerful tool for understanding new ontologies.
Fully web-based instance creator. • Generates forms for each possible class. • Forms have fields for each property of a class. • Supports sub-class & sub-property inference. • Supports DAML+OIL & RDFS ontologies. • Written in PHP, using RDF API for PHP (RAP). Ontology driven Web form for RDF generation
Conclusions • Lightweight ontologies are more than sufficient. • The representation powers of DAML+OIL are too much to handle. • Jade agents + RDF/XML for message content work well! • Using RDF makes interoperability and reusability a breeze. • Several other projects in Aberdeen, re-using components of GraniteNights!
Wishlist for ontologies the future AC net: • Standardise on OWL-Lite for ontology representation. • Ontology repository which is used... • …and which includes DOCUMENTATION :) • And btw, what about using RDF/XML for all messages? • … and a Jade plugin that will convert them to Java object(s)?
QBeX – CIF Example <q:Query> <q:template> <r:Restaurant> <r:servesrdf:resource=“r#Tandoori" /> <r:open-time> <cif:Variablerdf:ID="x"> <cif:varname>x</cif:varname> </cif:Variable> </r:open-time> </r:Restaurant> </q:template> <q:constraints> <cif:Comparison> <cif:comparisonOperator>></cif:comparisonOperator> <cif:comparisonOp1> <cif:Variablerdf:about="#x"/> </cif:comparisonOp1> <cif:comparisonOp2> <cif:Integerconst> <cif:constantValue>1900</cif:constantValue> .. . .
The single most important thing to remember from this talk: • VOTE FOR US IN THE COMPETITION! Dr Pete Edwards Dr Alun Preece Gunnar Grimnes Stuart Chalmers