Page 1 of 1

Jabber not loading

Posted: Sun May 01, 2016 8:06 am
by jpm1965
Jabber was working. I restarted the service to add new patterns and now I receive this error:

System.FormatException: 'one-of' must contain at least one 'item' element. at System.Speech.Internal.SrgsCompiler.OneOf.System.Speech.Internal.SrgsParser.IElement.PostParse(IElement parentElement)

I did remove the entries I made to see if they caused the error, but since I don't fully understand the error I don't where to look next...

My install is straight forward using all the installers no customization...

Re: Jabber not loading

Posted: Sun May 01, 2016 12:54 pm
by jpm1965
Well, I downloaded the source code. Reverse engineered what the jabber plugin was loading from the database and figured out the cause.
I had added an object type of thing named Users with a core type: people to group users objects. This loaded default property fields for the object type which included Father and Mother. Well, Father and Mother are Type: Object Type with no default type loaded. The Jabber plugin loads grammar based on the property_datatype field. When the property_datatype is Object Type the function looks for the type. Since no type was entered by default the query came up blank and when the grammar was called with a blank parameter the error was thrown. Here's the section of code I'm referring to:

else if (drType["property_datatype"].ToString().ToUpper() == "OBJECT TYPE")
{
List<string> propertyOTList = new List<string>();
DataSet dsPropObjectType = OSAESql.RunSQL("SELECT object_name FROM osae_v_object_list_full WHERE object_type='" + drType["property_object_type"].ToString() + "'");
foreach (DataRow drName in dsPropObjectType.Tables[0].Rows)
{
propertyOTList.Add(drName["object_name"].ToString());
}
Choices propertyOTChoices = new Choices(propertyOTList.ToArray());
srk = new SemanticResultKey("PARAM2", propertyChoices);
gbObjectPropertyIs.Append(srk);
gbObjectPropertyIs.Append("is");
gbObjectPropertyIs.Append(new SemanticResultKey("PARAM3", propertyOTChoices));
Grammar gObjectPropertyIs = new Grammar(gbObjectPropertyIs);
gObjectPropertyIs.Name = "[OBJECT] [PROPERTY] is [VALUE]";
oRecognizer.LoadGrammar(gObjectPropertyIs);
}


The next challenge was changing the object type from null to person. For whatever reason, selecting person in the type drop down list and clicking save would not commit the change to the database. I ended up editing the record directly using the workbench (once I learned what was what) and committing the change there.

Confirmed the change was seen in the web interface. Restarted jabber plug-in and viola jabber started with no errors...

Re: Jabber not loading

Posted: Sat May 07, 2016 10:37 am
by Vaughn
I will try to open a ticket to force an object type to be selected if you use that datatype. It should be an easy fix.


Edit:
WebUI - Object Type Data Type #348

ok, issue opened so I won't forget...
Vaughn