Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    public override bool Equals(object obj)
    {
        OwlTreeNode li = obj as OwlTreeNode;

        return(mSpotName == li.mSpotName);   // ID is a property of MyListItem
    }