ClassProperties.java
Go to the documentation of this file.
00001 package edu.tum.cs.ias.knowrob.mod_dialog.queries;
00002 
00003 import java.util.HashMap;
00004 import java.util.Vector;
00005 import java.util.regex.Matcher;
00006 import java.util.regex.Pattern;
00007 
00008 import edu.tum.cs.ias.knowrob.json_prolog.PrologValue;
00009 import edu.tum.cs.ias.knowrob.mod_dialog.DialogModule;
00010 
00011 public class ClassProperties extends SimpleTopLevelQuery {
00012 
00013         public ClassProperties(DialogModule mod) {
00014                 super(mod);
00015         }
00016 
00017         @Override
00018         public String match(String q) {
00019 
00020                 Matcher matcher = Pattern.compile("([w|W]hat do you know about ([a-zA-Z0-9]*?)s\\?)").matcher(q);
00021                 if(matcher.find()) {
00022                         q=matcher.group(2);
00023                         q=DialogModule.toProlog(q);
00024                         dialog_module.setCurrentObject(q);
00025                         
00026                         // TODO: update query
00027                         String query = "rdf_has(ias_map:"+q+", P, O)";
00028 
00029                         HashMap<String, Vector<PrologValue>> res = DialogModule.executeJSONPrologQuery(query);
00030 
00031                         Vector<PrologValue> prop = res.get("P");
00032                         Vector<PrologValue> obj  = res.get("O");
00033                         
00034                         String r = q.substring(0,1).toUpperCase() + q.substring(1,q.length()) +" has ";
00035                         for(int i=0;i<prop.size();i++) {
00036                         
00037                                 String pr=prop.get(i).toString();
00038                                 String val=obj.get(i).toString();
00039                                 
00040                                 if(pr.contains("#")) {
00041                                         pr=DialogModule.removeSingleQuotes(pr).split("#")[1];
00042                                 }
00043                                 
00044                                 if(val.startsWith("literal(type('http://www.w3.org/2001/XMLSchema#float")) {
00045                                         val=DialogModule.removeSingleQuotes(val).substring(56, val.length()-3);
00046                                 } else if(val.contains("#")) {
00047                                         val=DialogModule.removeSingleQuotes(val).split("#")[1];
00048                                 }
00049                                 r+= DialogModule.toEnglish(pr) +" "+ DialogModule.toEnglish(val);
00050 
00051                                 if(i==prop.size()-2) {
00052                                         r+=", and ";
00053                                 } else if (i==prop.size()-1) {
00054                                         r+=".";
00055                                 } else { 
00056                                         r+=", ";
00057                                 }
00058                         }
00059                         
00060                         return r+".\n"; 
00061                 }
00062                 
00063                 
00064                 return null;
00065         }
00066 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends


mod_dialog
Author(s): Moritz Tenorth
autogenerated on Tue Apr 16 2013 00:38:25