diff --git a/Assets/Scenes/TreeWorld_02.unity b/Assets/Scenes/TreeWorld_02.unity index 947462c0b74a8d09f8b84f136bd6518c631a7d4b..e5643ffc183324e7fa6f48487b004fe3643ebc53 100644 --- a/Assets/Scenes/TreeWorld_02.unity +++ b/Assets/Scenes/TreeWorld_02.unity @@ -41107,7 +41107,7 @@ PrefabInstance: - target: {fileID: 2089306640899292912, guid: 4d99275c6663c25469ad3b65efcd4f5f, type: 3} propertyPath: m_AnchoredPosition.y - value: -0.00035664605 + value: -0.000012699486 objectReference: {fileID: 0} - target: {fileID: 2524590709578595355, guid: 4d99275c6663c25469ad3b65efcd4f5f, type: 3} diff --git a/Assets/Scripts/InteractionEngine/Fact.cs b/Assets/Scripts/InteractionEngine/Fact.cs index a63e2dd3b75d94c06cc682f5a388239ab7cd0ffe..13a8e445269a282f8c6dfdb24e899819a1e80e0d 100644 --- a/Assets/Scripts/InteractionEngine/Fact.cs +++ b/Assets/Scripts/InteractionEngine/Fact.cs @@ -1,6 +1,8 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; +using static JSONManager; public abstract class Fact { @@ -23,8 +25,9 @@ public abstract class DirectedFact : Fact public class AddFactResponse { //class to Read AddFact Responses. - public string factUri; - public string factValUri; + // public string factUri; + // public string factValUri; + public string uri; public static AddFactResponse sendAdd(string path, string body) { @@ -69,29 +72,31 @@ public PointFact(int i, Vector3 P, Vector3 N) this.Point = P; this.Normal = N; - List<JSONManager.MMTTerm> arguments = new List<JSONManager.MMTTerm> + List<MMTTerm> arguments = new List<MMTTerm> { - new JSONManager.OMF(P.x), - new JSONManager.OMF(P.y), - new JSONManager.OMF(P.z) + new OMF(P.x), + new OMF(P.y), + new OMF(P.z) }; //OMS constructor generates full URI - JSONManager.MMTTerm tp = new JSONManager.OMS("point"); - JSONManager.MMTTerm df = new JSONManager.OMA(new JSONManager.OMS("tuple"), arguments); + MMTTerm tp = new OMS(MMTURIs.Point); + MMTTerm df = new OMA(new OMS(MMTURIs.Tuple), arguments); - JSONManager.MMTDeclaration mmtDecl = new JSONManager.MMTDeclaration("test", tp, df); - string body = JSONManager.ToJson(mmtDecl); + //TODO: rework fact list + labeling + MMTDeclaration mmtDecl = new MMTDeclaration(((Char)(64 + Id + 1)).ToString(), tp, df); + string body = ToJson(mmtDecl); AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add", body); - this.backendURI = res.factUri; + this.backendURI = res.uri; + Debug.Log(this.backendURI); /* * old approach string body = @"{ ""a"":" + format(P.x) + @"," + @"""b"":" + format(P.y) + @"," + @"""c"":" + format(P.y) + "}"; Debug.Log(body); AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/vector", body); - this.backendURI = res.factUri; + this.backendURI = res.uri; */ } @@ -127,14 +132,41 @@ public LineFact(int i, int pid1, int pid2) string p1URI = pf1.backendURI; string p2URI = pf2.backendURI; float v = (pf1.Point - pf2.Point).magnitude; - string body = @"{ ""pointA"":""" + p1URI + @"""," + @"""pointB"":""" + p2URI + @"""," + @"""value"":" + format(v) + "}"; - AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/distance", body); - this.backendURI = res.factUri; - this.backendValueURI = res.factValUri; - this.flippedFact = new LineFact(pid2, pid1); + + + /* string body = @"{ ""pointA"":""" + p1URI + @"""," + @"""pointB"":""" + p2URI + @"""," + @"""value"":" + format(v) + "}"; + AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/distance", body); + */ + MMTTerm tp = + new OMA( + new OMS(MMTURIs.Ded), + new List<MMTTerm> { + new OMA( + new OMS(MMTURIs.Eq), + new List<MMTTerm> { + new OMA( + new OMS(MMTURIs.Metric), + new List<MMTTerm>{ + new OMS(p1URI), + new OMS(p2URI)} + ), + new OMF(v) + } + ) + } + ); + + MMTTerm df = null; + //see point label + MMTDeclaration mmtDecl = new MMTDeclaration(((Char)(64 + Id + 1)).ToString(), tp, df); + string body = ToJson(mmtDecl); + AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress + "/fact/add", body); + this.backendURI = res.uri; + // this.backendValueURI = res.factValUri; + // this.flippedFact = new LineFact(pid2, pid1); } - // to create flipped fact + /* // to create flipped fact public LineFact(int pid1, int pid2) { this.Pid1 = pid1; @@ -146,7 +178,7 @@ public LineFact(int pid1, int pid2) float v = (pf1.Point - pf2.Point).magnitude; string body = @"{ ""pointA"":""" + p1URI + @"""," + @"""pointB"":""" + p2URI + @"""," + @"""value"":" + format(v) + "}"; AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/distance", body); - this.backendURI = res.factUri; + this.backendURI = res.uri; this.backendValueURI = res.factValUri; } @@ -160,7 +192,7 @@ public LineFact(int i, int pid1, int pid2, string uri, string valuri) this.backendValueURI = valuri; this.flippedFact = new LineFact(pid2, pid1); - } + }*/ } @@ -192,8 +224,8 @@ public RayFact(int i, int pid1, int pid2) //TODO: fix body string body = @"{ ""base"":""" + p1URI + @"""," + @"""second"":""" + p2URI + @"""" + "}"; AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/line", body); - this.backendURI = res.factUri; - this.backendValueURI = res.factValUri; + this.backendURI = res.uri; + // this.backendValueURI = res.factValUri; } public RayFact(int i, int pid1, int pid2, string uri, string valuri) @@ -225,8 +257,8 @@ public OnLineFact(int i, int pid, int lid) string lURI = lf.backendURI; string body = @"{ ""vector"":""" + pURI + @"""," + @"""line"":""" + lURI + @"""" + "}"; AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/onLine", body); - this.backendURI = res.factUri; - this.backendValueURI = res.factValUri; + this.backendURI = res.uri; + // this.backendValueURI = res.factValUri; Debug.Log("created onLine" + this.backendURI + " " + this.backendValueURI); } @@ -263,8 +295,8 @@ public AngleFact(int i, int pid1, int pid2, int pid3) "}"; Debug.Log(body); AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/angle", body); - this.backendURI = res.factUri; - this.backendValueURI = res.factValUri; + this.backendURI = res.uri; + // this.backendValueURI = res.factValUri; this.flippedFact = new AngleFact(pid3, pid2, pid1); } @@ -289,8 +321,8 @@ public AngleFact(int pid1, int pid2, int pid3) "}"; Debug.Log(body); AddFactResponse res = AddFactResponse.sendAdd(CommunicationEvents.ServerAdress+"/fact/add/angle", body); - this.backendURI = res.factUri; - this.backendValueURI = res.factValUri; + this.backendURI = res.uri; + // this.backendValueURI = res.factValUri; } //pushout return diff --git a/Assets/Scripts/InventoryStuff/ScrollDetails.cs b/Assets/Scripts/InventoryStuff/ScrollDetails.cs index 2715bba29d3f1d7da538367fe205867806690bc1..210867e59de974d401d74ba901da9e8c05fe1173 100644 --- a/Assets/Scripts/InventoryStuff/ScrollDetails.cs +++ b/Assets/Scripts/InventoryStuff/ScrollDetails.cs @@ -321,7 +321,7 @@ private void readPushout(string txt) int id = factManager.GetFirstEmptyID(); int pid1 = getIdforBackendURI(f.pointA); int pid2 = getIdforBackendURI(f.pointB); - LineFact lf = new LineFact(id, pid1, pid2, f.uri, f.value); + LineFact lf = new LineFact();//id, pid1, pid2, f.uri, f.value); CommunicationEvents.Facts.Insert(id, lf); CommunicationEvents.AddFactEvent.Invoke(lf); CommunicationEvents.PushoutFactEvent.Invoke(lf); diff --git a/Assets/Scripts/JSONManager.cs b/Assets/Scripts/JSONManager.cs index e1e552bbfe4667e18fd0f579d3c728e1da1974e4..a0049c8940e6b620249ad429bd12687069d045c8 100644 --- a/Assets/Scripts/JSONManager.cs +++ b/Assets/Scripts/JSONManager.cs @@ -4,17 +4,32 @@ using System.Collections.Generic; using UnityEngine; + +public class MMTURICollection +{ + public string Point = "http://mathhub.info/MitM/core/geometry?3DGeometry?point"; + public string Tuple = "http://gl.mathhub.info/MMT/LFX/Sigma?Symbols?Tuple"; + public string Line_type = "http://mathhub.info/MitM/core/geometry?Geometry?Common?line_type"; + public string LineOf = "http://mathhub.info/MitM/core/geometry?Geometry?Common?lineOf"; + public string Ded = "http://mathhub.info/MitM/Foundation?Logic?ded"; + public string Eq = "http://mathhub.info/MitM/Foundation?Logic?eq"; + public string Metric = "http://mathhub.info/MitM/core/geometry?Geometry?Common?metric"; + public string Sketch = "http://mathhub.info/MitM/Foundation?InformalProofs?proofsketch"; +} + public static class JSONManager { + //could init the strings of MMTURIs with JSON or other settings file instead + public static MMTURICollection MMTURIs = new MMTURICollection(); + /* public static Dictionary<string, string> URIDictionary = new Dictionary<string, string> { {"point", "http://mathhub.info/MitM/core/geometry?3DGeometry?point" }, {"tuple", "http://gl.mathhub.info/MMT/LFX/Sigma?Symbols?Tuple"}, {"line", "http://mathhub.info/MitM/core/geometry?Geometry/Common?line_type" }, {"distance", "http://mathhub.info/MitM/core/geometry?Geometry/Common?lineOf" } }; - - + */ [JsonConverter(typeof(JsonSubtypes), "kind")] @@ -40,12 +55,21 @@ public class OMS : MMTTerm public string uri; public string kind = "OMS"; - public OMS(string uri, bool convertToURI = true) + public OMS(string uri) + { + this.uri = uri; + } + } + + public class OMSTR : MMTTerm + { + [JsonProperty("float")] + public string s; + public string kind = "OMSTR"; + + public OMSTR(string s) { - if (convertToURI) - this.uri = URIDictionary[uri]; - else - this.uri = uri; + this.s = s; } }