RavenclawDev: returning frame from a back end; with lists
Svetlana Stenchikova
svetastenchikova at gmail.com
Fri Oct 13 10:18:34 EDT 2006
OK, I think I found where it wants a tab:
"time\t{\n" +
"date\t{\n" +
-Svetlana
On 10/13/06, Svetlana Stenchikova <svetastenchikova at gmail.com> wrote:
>
> Thanks Antoine,
>
> I tried tabs and it had the same effect. Actually a space seems to work in
> case when there is no arrays:
> String str = "{\nerror true\n}";
>
> gets the error even though there is a space.
>
> Svetlana
>
> On 10/13/06, Antoine Raux <antoine at cs.cmu.edu> wrote:
> >
> > Hi Svetlana,
> >
> >
> >
> > Are you using actual tab characters between slot names and values or
> > spaces? RavenClaw expect tab characters there (e.g. between "error" and
> > "false", "results" and ":1", etc). Otherwise I can't see anything strange in
> > your frame. If that's not it, could you send the exact exception and line
> > number?
> >
> >
> >
> > antoine
> >
> >
> > ------------------------------
> >
> > *From:* ravenclaw-developers-bounces at LOGANBERRY.srv.cs.cmu.edu [mailto:
> > ravenclaw-developers-bounces at LOGANBERRY.srv.cs.cmu.edu] * On Behalf Of *Svetlana
> > Stenchikova
> > *Sent:* Friday, October 13, 2006 9:25 AM
> > *To:* Dan Bohus
> > *Cc:* ravenclaw-developers at cs.cmu.edu
> > *Subject:* Re: RavenclawDev: returning frame from a back end; with lists
> >
> >
> >
> > Mistyped email - sorry -:
> >
> > String str =
> > "{\n" +
> > "error false\n" +
> > "results :1\n" +
> > "{\n" +
> > "{\n" +
> > "date_time {\n" +
> > "time {\n" +
> > " start_time 1700\n" +
> > " end_time 1800\n" +
> > "}\n" +
> > "date {\n" +
> > " valid_date true\n" +
> > " year 2006\n" +
> > " month 10\n" +
> > " day 11\n" +
> > " weekday 3\n" +
> > "}\n" +
> > "}\n" +
> > "}\n" +
> > "}\n" +
> > "}";
> >
> >
> > On 10/13/06, *Dan Bohus* <dbohus at cs.cmu.edu> wrote:
> >
> > Hi Svetlana,
> >
> >
> >
> > Hmm, sorry, I'm a bit confused by the beginning of it…
> >
> >
> >
> > String str = "{\nerror false\n}";
> > / "{\n" +
> > "error false\n" +
> >
> >
> >
> > Does that compile in java? Or is that just a mistype in the email. O/w I
> > can't see anything with the naked eye, but you might try setting a
> > breakpoint right on the line in FrameConcept.cpp where RavenClaw crashes
> > and see what the problem is… Sorry I can't be more helpful, I hope you'll
> > sort it out… We should have had this "string frame" format documented
> > somewhere really well…
> >
> >
> >
> > -Dan
> >
> >
> >
> >
> >
> >
> > ------------------------------
> >
> > *From:* Svetlana Stenchikova [mailto:svetastenchikova at gmail.com]
> > *Sent:* Friday, October 13, 2006 12:14 AM
> > *To:* Dan Bohus
> > *Cc:* ravenclaw-developers at cs.cmu.edu
> > *Subject:* Re: RavenclawDev: returning frame from a back end; with lists
> >
> >
> >
> > Hi,
> >
> > I am now trying to hard-code a string to return, just for a test:
> >
> > String str = "{\nerror false\n}";
> > / "{\n" +
> > "error false\n" +
> > "results :1\n" +
> > "{\n" +
> > "{\n" +
> > "date_time {\n" +
> > "time {\n" +
> > " start_time 1700\n" +
> > " end_time 1800\n" +
> > "}\n" +
> > "date {\n" +
> > " valid_date true\n" +
> > " year 2006\n" +
> > " month 10\n" +
> > " day 11\n" +
> > " weekday 3\n" +
> > "}\n" +
> > "}\n" +
> > "}\n" +
> > "}\n" +
> > "}";
> > GFrame newframe = new Clause("");
> > newframe.setProperty(":outframe", str);
> >
> > and getting exception in FrameConcept.cpp on line 288
> >
> > Can anyone see a problem with this hard-coded string?
> >
> > thanks,
> > Svetlana
> >
> > On 10/12/06, *Svetlana Stenchikova* <svetastenchikova at gmail.com> wrote:
> >
> > OK, it worked after several replacements were done to the string:
> >
> > GFrame eventAdded = new Clause("");
> >
> > String strRes = tempFrame.toString();
> >
> > String newstr1 = strRes.replaceAll("\\{c", "{\n");
> > String newstr2 = newstr1.replaceAll("\\\"", "");
> > String newstr = newstr2.replaceAll("\\}", "\n}");
> >
> > eventAdded.setProperty(":outframe", newstr);
> >
> > thanks,
> > Svetlana
> >
> >
> >
> > On 10/11/06, *Dan Bohus* < dbohus at cs.cmu.edu> wrote:
> >
> > Hi Svetlana,
> >
> >
> >
> > Yes, you should indeed return a GFrame from the java backend server.
> > This GFrame should contain one string element, called :outframe which
> > contains the string representation you had below of the desired structure (
> > e.g. like for instance the RoomLine perl returns it). If you look into
> > the BackendServer for RoomLine, essentially what that does is take that
> > string representation and put it in an outframe string slot in a galaxy
> > return frame.
> >
> >
> >
> > Hope this helps, but let me know if it doesn't
> >
> > Dan
> >
> >
> >
> >
> > ------------------------------
> >
> > *From:* Svetlana Stenchikova [mailto: svetastenchikova at gmail.com]
> > *Sent:* Wednesday, October 11, 2006 3:32 PM
> > *To:* Dan Bohus
> > *Cc:* ravenclaw-developers at cs.cmu.edu
> > *Subject:* Re: RavenclawDev: returning frame from a back end
> >
> >
> >
> > Do you think it is possible to return a structure from a java back-end
> > in a format expected by RavenClaw?
> >
> > If so, could you please recomment how, and if not, could someone point
> > to the place in RavenClaw that I could modify to work around this issue?
> >
> > I am sorry to bother you with this question, but we have a demo coming
> > up and listing the events is one of the essential functionality that we
> > wanted to show.
> >
> > Thank you all for your help!
> >
> > Svetlana
> >
> > On 10/10/06, *Svetlana Stenchikova* <svetastenchikova at gmail.com> wrote:
> >
> > Thanks Dan,
> >
> > this generally makes sense, but I am not sure how to do this in the java
> > server.
> >
> > The operation function in the java galaxy service returns a GFrame.
> >
> > I can set properties of this frame in any way, but I must return a
> > GFrame, I think. I tried declaring an operation that returns String and it
> > causes runtime exception:
> > java.lang.ClassCastException: java.lang.String
> >
> >
> > This is how a RoomLine return from a perl back end looks like:
> >
> > {
> > suggested_refine none
> > error false
> > results :1
> > {
> > {
> > date_time {
> > time {
> > start_time 1700
> > end_time 1800
> > }
> > date {
> > valid_date true
> > year 2006
> > month 10
> > day 11
> > weekday 3
> > }
> > }
> > room_size 30
> > room_projector true
> > room_whiteboard true
> > room_computer true
> > room_network true
> > room_location Wean Hall
> > room_size_spec large
> > room_number 4625
> > }
> > }
> > }
> >
> >
> > And here is how my java back end frame looks like:
> >
> > Server environment sending frame:
> > {c java_be.add_event
> > error "false"
> > :hub_opaque_data {c admin_info
> > :reply_requested 1
> > :session_id "Default"
> > :tidx 70
> > :scriptless 1
> > :timestamp [array: type GAL_FLOAT_64, 1 elements]
> > :provider_id "[8]"
> > :invoked_stype "java_be" } }
> >
> > Please make a suggestion on how to return a string from a java server.
> >
> > thank you,
> > Svetlana
> >
> >
> >
> > On 10/10/06, *Dan Bohus* <dbohus at cs.cmu.edu > wrote:
> >
> > Hi Svetlana,
> >
> >
> >
> > I think this is the same problem with "Ravenclaw frames" and "galaxy
> > frames" but on the output side. Basically what you're doing in the code
> > below is constructing a galaxy frame. Instead ravenclaw expects a single
> > string in that galaxy frame which contains the information in a single
> > string in the "string Ravenclaw frame" format…
> >
> >
> >
> > If this message is too cryptic, let me know and I can send you more
> > details,
> >
> > Dan
> >
> >
> > ------------------------------
> >
> > *From:* ravenclaw-developers-bounces at LOGANBERRY.srv.cs.cmu.edu [mailto:ravenclaw-developers-bounces at LOGANBERRY.srv.cs.cmu.edu
> > ] * On Behalf Of *Svetlana Stenchikova
> > *Sent:* Tuesday, October 10, 2006 5:41 PM
> > *To:* ravenclaw-developers at cs.cmu.edu
> > *Subject:* RavenclawDev: returning frame from a back end
> >
> >
> >
> > Hi,
> >
> > How should a back-end function of a ravenclaw dialog manager format a
> > frame?
> >
> > For example, I am expecting to get a "error" parameter from:
> >
> > CALL("java_be.add_event <event_add error>backend_error")
> >
> > backend_error is declared as:
> > BOOL_SYSTEM_CONCEPT(backend_error)
> >
> > In the java back-end:
> >
> > public GFrame serverOpAddEvent(GFrame f) {
> > ...
> >
> > GFrame eventAdded = new Clause("event_add");
> >
> > eventAdded.setProperty("error", "false");
> >
> > return eventAdded;
> > }
> >
> >
> > But the backend_error in DM does not get initialized.
> >
> > Is there a particular way that the return GFrame from the backend server
> > has to be generated?
> >
> > Thank you,
> > Svetlana
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.srv.cs.cmu.edu/pipermail/ravenclaw-developers/attachments/20061013/a3357e94/attachment-0001.html
More information about the Ravenclaw-developers
mailing list