internal OwlTreeNode AddNode(NodeInstance graphNode) { TreeNode <OwlTreeNode> treePtr = m_tree; int depth = 0; string fullName = ""; foreach (string pathSegment in graphNode.m_pathSegments) { depth++; bool found = false; TreeNode <OwlTreeNode> newPtr = null; fullName += pathSegment + " "; foreach (var kid in treePtr.Children) { OwlTreeNode kidElem = kid.Value; found = kidElem.matchesString(pathSegment); if (found) { newPtr = kid; break; } } if (!found) { newPtr = treePtr.AddChild( new OwlTreeNode(pathSegment, depth, treePtr.Value.mNumKids++)); if (GraphManager.m_debug) { newPtr.Value.mFullName = '<' + fullName + '>'; } } treePtr = newPtr; } if (treePtr.Value.mNodeInstance != null) { Debug.Log("dupe node: " + treePtr.Value); } treePtr.Value.mNodeInstance = graphNode; if (graphNode.m_owlNode != null) // && GraphManager.m_debug) { treePtr.Value.mFullName += "(" + graphNode.m_owlNode.ID + ')'; } return(treePtr.Value); }
private IEnumerator OpenOwl() { string filename = m_OwlFile; IOwlParser parser = new OwlXmlParser(); m_OwlGraph = parser.ParseOwl(filename); m_numNodes = m_OwlGraph.Nodes.Count; m_winText.text += "There are " + m_numNodes + " node(s) in the ontology '" + m_OwlFile + "'\n"; string oldText = m_winText.text; IDictionaryEnumerator nodeIter = (IDictionaryEnumerator)m_OwlGraph.Nodes.GetEnumerator(); int cnt = 0; while (nodeIter.MoveNext()) { //string owlKey = (nodeIter.Key).ToString(); string owlKey = ((OwlNode)nodeIter.Value).ID; OwlNode owlNode = (OwlNode)nodeIter.Value; if (owlNode.IsAnonymous()) { continue; } cnt++; NodeInstance graphNode = new NodeInstance(); graphNode.m_owlNode = owlNode; graphNode.m_pathSegments = new ArrayList(); //Debug.Log("owlKey = <" + owlKey + ">"); //Debug.Log("owlNode = " + owlNode); var uri = new Uri(owlKey); //Debug.Log("absURI = " + uri.AbsoluteUri); //Debug.Log("path = " + uri.PathAndQuery); //Debug.Log("host = " + uri.Host); // build up the node's path segments graphNode.m_pathSegments.Add(uri.Host); foreach (string element in uri.Segments) { //if (element == "/") continue; graphNode.m_pathSegments.Add(element);//.TrimEnd('/')); } if (uri.Fragment != null) { graphNode.m_pathSegments[graphNode.m_pathSegments.Count - 1] += (uri.Fragment); } OwlTreeNode owlTreeNode = m_owlNodeTree.addNode(graphNode); graphNode.m_treeNode = owlTreeNode; //statsElem.mNode = graphNode; m_NodeDictionary.Add(owlKey, graphNode); if (cnt % m_addElementInterval == 0) { string[] dots = { ".", "..", "..." }; for (int jj = 0; jj < 3; jj++) { m_winText.text = oldText + "Opening OWL file" + dots[cnt % 3]; } //Debug.Log("cnt = " + cnt); if (m_testing) { yield break; } else { yield return(null);// new WaitForSeconds(0.052f); } } } m_winText.text = oldText; yield return(null); }
public override bool Equals(object obj) { OwlTreeNode li = obj as OwlTreeNode; return(mSpotName == li.mSpotName); // ID is a property of MyListItem }