You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 3, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Oct 3, 2026. It is now read-only.
line 22 should be like this (with a type), otherwise it errors out and some unit tests do not pass:
private static readonly MethodInfo s_string_contains = typeof(String).GetMethod("Contains", new Type[] { typeof(String) });
Most in FanoutSearch.UnitTest.JSONDSLTest (and 2). I ran from Visual Studio compiled with .net 6.0. And I see there are more JSON issues when using Newtonsoft version 13...
the and_pred has a value of null and the fails in the call:
return Expression.Condition(GenerateBooleanPredicateExpression(pred_object, icell), action_const, noaction_const);
I changed language version to 10 on FanoutSearch (as I left only .net 6 compilation) and I that's why that line is broken for me. but seems like your and_pred is null for similar reasons, I will see how it works in my project.
The call to FanoutSearchDescriptor fails: FanoutSearchDescriptor fanoutSearch_desc = new FanoutSearchDescriptor(queryPath, queryObject);
Here is the JsonQuery content that fails:
These LIKQ JsonQuery statements are slightly different:
The first one fails while the second one works. It looks like the results field is the first statement is expecting a Conditional while the second one is not.
Something is not right with the JSON parsing logic. I don't use JsonDSL but do use LambdaDSL and KnowledgeGraph LIKQ dialects and have not had any problems with the .NET 6 version.
I actually changed few other files as well:
src\Modules\LIKQ\FanoutSearch\Descriptors\FanoutSearchDescriptor.cs
Line 141 was:
JObject jobj = JsonConvert.DeserializeObject(m_origin_query);
changed to:
var jobj = JObject.Parse(m_origin_query);
file:
src\Modules\LIKQ\FanoutSearch\QueryLanguage\Standard.cs
line 31 was:
string json_search_body = Newtonsoft.Json.JsonConvert.SerializeObject(search_body);
changed to:
string json_search_body;
if (search_body is string) {
json_search_body = search_body.ToString();
} else {
json_search_body = Newtonsoft.Json.JsonConvert.SerializeObject(search_body);
}
at the moment all my test pass. but there is one problem, as I think that JSON message that goes to the server is still not good.
If I try to use json for start from like this, then I get server response error:
var search = KnowledgeGraph.StartFrom($@"{{""type"":""Person"",""match"":{{""text"":""{word}""}}}}";);
Alenas (@alenas) not all LIKQ language dialects will process json statements. I am just looking at Lambda DSL, and Json DSL processing as there are some test case failing.
Alenas (@alenas) I think I have the fix in place; will need to re-run the existing tests and add a few new tests and the changes to the JSON parser do require some changes to the code.
Activity
TaviTruman commentedon Aug 16, 2022
Alenas (@alenas) - I am looking at this right now; what Test Case failed for you?
alenas commentedon Aug 16, 2022
Most in FanoutSearch.UnitTest.JSONDSLTest (and 2). I ran from Visual Studio compiled with .net 6.0. And I see there are more JSON issues when using Newtonsoft version 13...
TaviTruman commentedon Aug 16, 2022
TaviTruman commentedon Aug 16, 2022
I found the actual bug!

the and_pred has a value of null and the fails in the call:
return Expression.Condition(GenerateBooleanPredicateExpression(pred_object, icell), action_const, noaction_const);
in method: GenerateConditionalPredicateExpression
alenas commentedon Aug 16, 2022
I changed language version to 10 on FanoutSearch (as I left only .net 6 compilation) and I that's why that line is broken for me. but seems like your and_pred is null for similar reasons, I will see how it works in my project.
TaviTruman commentedon Aug 16, 2022
Here is the offending outer code block:
The call to FanoutSearchDescriptor fails: FanoutSearchDescriptor fanoutSearch_desc = new FanoutSearchDescriptor(queryPath, queryObject);
Here is the JsonQuery content that fails:
These LIKQ JsonQuery statements are slightly different:
The first one fails while the second one works. It looks like the results field is the first statement is expecting a Conditional while the second one is not.
TaviTruman commentedon Aug 16, 2022
Something is not right with the JSON parsing logic. I don't use JsonDSL but do use LambdaDSL and KnowledgeGraph LIKQ dialects and have not had any problems with the .NET 6 version.
alenas commentedon Aug 16, 2022
I actually changed few other files as well:
src\Modules\LIKQ\FanoutSearch\Descriptors\FanoutSearchDescriptor.cs
Line 141 was:
JObject jobj = JsonConvert.DeserializeObject(m_origin_query);
changed to:
var jobj = JObject.Parse(m_origin_query);
file:
src\Modules\LIKQ\FanoutSearch\QueryLanguage\Standard.cs
line 31 was:
string json_search_body = Newtonsoft.Json.JsonConvert.SerializeObject(search_body);
changed to:
string json_search_body;
if (search_body is string) {
json_search_body = search_body.ToString();
} else {
json_search_body = Newtonsoft.Json.JsonConvert.SerializeObject(search_body);
}
at the moment all my test pass. but there is one problem, as I think that JSON message that goes to the server is still not good.
If I try to use json for start from like this, then I get server response error:
var search = KnowledgeGraph.StartFrom($@"{{""type"":""Person"",""match"":{{""text"":""{word}""}}}}";);
TaviTruman commentedon Aug 16, 2022
Yeah - I totally don't use Json in any KnowledgeGraph productions:
This works just fine for me:
TaviTruman commentedon Aug 17, 2022
Alenas (@alenas) not all LIKQ language dialects will process json statements. I am just looking at Lambda DSL, and Json DSL processing as there are some test case failing.
TaviTruman commentedon Oct 18, 2022
Alenas (@alenas) I think I have the fix in place; will need to re-run the existing tests and add a few new tests and the changes to the JSON parser do require some changes to the code.