170 likes | 264 Vues
Learn how GraniteNights harnesses ontologies to remember user preferences, featuring tools like Jena and QBex for RDF queries. Discover the power of lightweight ontologies and the benefits of RDF interoperability. Join the GraniteNights community and explore the future of ontology repositories.
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