private int GetSearchTripeIndex(NtripleSearchType searchType)
        {
            switch (searchType)
            {
            case NtripleSearchType.Subject:
                return(0);

            case NtripleSearchType.Object:
                return(2);

            default:
                throw new Exception();
            }
        }
        public NTripleCollection GetTriples(string path, List <string> nTriples, NtripleSearchType searchType)
        {
            int searchTypeIndex = GetSearchTripeIndex(searchType);

            Console.WriteLine("Reading triples from " + path);
            NTripleCollection nTripleCollection = new NTripleCollection();
            long         currentLine            = 0;
            StreamReader reader = new StreamReader(path);

            string[] nTriplesFormatted = nTriples.Select(x => "<" + x + ">").ToArray();

            while (!reader.EndOfStream)
            {
                currentLine++;
                Console.Write("\rLine {0}", currentLine);
                string line = reader.ReadLine();
                if (nTriplesFormatted.Length == 0)
                {
                    string[] values = line.Split('>');
                    nTripleCollection.Triples.Add(new NTriple(RemoveUnwantedChars(values[0]), RemoveUnwantedChars(values[1]), RemoveUnwantedChars(values[2])));
                }
                else
                {
                    for (int i = 0; i < nTriplesFormatted.Length; i++)
                    {
                        if (line.Contains(nTriplesFormatted[i]))
                        {
                            string[] values = line.Split('>');
                            if (nTriples.Count == 0 || nTriples.Any(x => values[searchTypeIndex].Contains(x)))
                            {
                                nTripleCollection.Triples.Add(new NTriple(RemoveUnwantedChars(values[0]), RemoveUnwantedChars(values[1]), RemoveUnwantedChars(values[2])));
                                break;
                            }
                        }
                    }
                }
            }

            Console.WriteLine(Environment.NewLine + "Reading triples from " + path + " - Done");

            reader.Close();

            return(nTripleCollection);
        }