Bevisuali.UX.ExtSerialization.ToBayesianNetwork C# (CSharp) Method

ToBayesianNetwork() public static method

public static ToBayesianNetwork ( this json ) : BayesianNetwork
json this
return BayesianNetwork
        public static BayesianNetwork ToBayesianNetwork(this JObject json)
        {
            string networkName = json["name"].Value<string>();

            var bn = new BayesianNetwork(networkName);

            // Load variables and note parents.
            var variableList = new List<string>();
            var parentsList = new Dictionary<string, string[]>();
            foreach (var jrv in json.Property("variables").Value)
            {
                var rv = ToRandomVariable(jrv);
                bn.AddVariable(rv);

                variableList.Add(rv.Name);
                parentsList.Add(rv.Name, jrv["parents"].Values<string>().ToArray());
            }

            // Reparent.
            foreach (var rv in variableList)
            {
                string[] parents = parentsList[rv];
                foreach (var parentName in parents)
                {
                    bn.ConnectVariables(parentName, rv);
                }
            }

            return bn;
        }