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); }