/// loads all facts and rules acquired from the RDF URI in that proof engine /// of the RDF resource public virtual void Load(String uri) { lock(this) { if (loaded == null) loaded = new Hashtable(); if (loaded[uri] != null) return; String rk = fromWeb(uri); String u = baseURI; if (!uri.StartsWith("data:")) loaded[baseURI] = this; ArrayList vt = new ArrayList(); Parser np = new Parser(rk, vt, this, u); if (ns == null) { ns = new Hashtable(); nsp = new Hashtable(); syn = new Hashtable(); mto = new Hashtable(); otm = new Hashtable(); dds = new Hashtable(); ns["log:"] = LOG + "#>"; } StringBuilder gen = new StringBuilder("data:,"); if (debug || trace) Console.Error.WriteLine("(" + engine + ") load " + uri); while (true) { far.near = np.Parse(); if (far.near == null) break; while (far.near != null) { // check the register classes // FIRSTPASS else { // @@ rule generation Euler s = far.near.subj; String p = far.near.verb; Euler o = far.near.obj; // SECOND PASS! if (debug || trace) Console.Error.WriteLine("@@ assert " + far.near); far = far.near; } } syno(this); String gener = gen.ToString(); if (!gener.Equals("data:,")) this.Load(gener); if (vt.Count > varmax) varmax = vt.Count; doc++; } }