public void TestLangSpecParsing(String file) { this.EnsureTestData(file); MimeTypeDefinition def = MimeTypesHelper.GetDefinitions(MimeTypesHelper.GetMimeTypes(Path.GetExtension(file))).FirstOrDefault(); if (def != null) { if (def.CanParseRdf) { Graph g = new Graph(); g.LoadFromFile(file); Assert.AreEqual(this._original, g); } else if (def.CanParseRdfDatasets) { TripleStore store = new TripleStore(); store.LoadFromFile(file); Assert.AreEqual(this._original, store.Graphs.First()); } } else { Assert.Fail("Unsupported file type"); } }
/// <summary> /// Loads data from ontology file and initialize some intances for querying /// </summary> public static void Start() { store = new TripleStore(); store.LoadFromFile("PhoneOntology.owl"); InMemoryDataset ds = new InMemoryDataset(store); processor = new LeviathanQueryProcessor(ds); sparqlparser = new SparqlQueryParser(); }
public void ParsingFileLoaderGraphIntoTripleStore() { Graph g = new Graph(); g.LoadFromEmbeddedResource("VDS.RDF.Configuration.configuration.ttl"); g.SaveToFile("fileloader-graph-to-store.ttl"); TripleStore store = new TripleStore(); store.LoadFromFile("fileloader-graph-to-store.ttl"); Assert.True(store.Triples.Count() > 0); Assert.Equal(1, store.Graphs.Count); }
public void SparqlAggregatesMaxBug1() { TripleStore store = new TripleStore(); store.LoadFromFile(@"resources\LearningStyles.rdf"); IGraph graph = ExecuteGraphQuery(store, @"prefix sage: <http://www.semanticsage.home.lc/LearningStyles.owl#> prefix xsd: <http://www.w3.org/2001/XMLSchema#> prefix : <http://semanticsage.home.lc/files/LearningStyles.rdf#> CONSTRUCT { ?MTech :max ?maxScore } WHERE { SELECT ?MTech max(?max) as ?maxScore WHERE { SELECT ?MTech ?LessonType sum(?hasValue) as ?max WHERE { ?MTech sage:attendsLessons ?Lesson. ?Lesson sage:hasLessonType ?LessonType. ?MTech sage:undergoesEvaluation ?Quiz. ?Quiz sage:isForLesson ?Lesson. ?MTech sage:hasQuizMarks ?QuizMarks. ?QuizMarks sage:belongsToQuiz ?Quiz. ?QuizMarks sage:hasValue ?hasValue. ?Lesson sage:inRound '1'^^xsd:int. } GROUP BY ?MTech ?LessonType } GROUP BY ?MTech }"); Assert.NotNull(graph); INode zero = (0).ToLiteral(graph); foreach (Triple t in graph.Triples) { Assert.False(t.Object.CompareTo(zero) == 0, "Unexpected zero value returned"); } }
public void SparqlUpdateLoadQuads5() { var tripleStore = new TripleStore(); tripleStore.LoadFromFile(@"resources\core-421\test.nq"); Assert.Equal(3, tripleStore.Triples.Count()); Assert.Equal(2, tripleStore.Graphs.Count); tripleStore.SaveToFile("core-421.nq", new NQuadsWriter()); var newStore = new TripleStore(); newStore.LoadFromFile("core-421.nq", new NQuadsParser()); Assert.Equal(3, newStore.Triples.Count()); Assert.Equal(2, newStore.Graphs.Count); }
public void SparqlUpdateLoadQuads5() { var tripleStore = new TripleStore(); tripleStore.LoadFromFile(@"resources\core-421\test.nq"); Assert.That(tripleStore.Triples.ToList(), Has.Count.EqualTo(3)); Assert.That(tripleStore.Graphs, Has.Count.EqualTo(2)); tripleStore.SaveToFile("core-421.nq", new NQuadsWriter()); var newStore = new TripleStore(); newStore.LoadFromFile("core-421.nq", new NQuadsParser()); Assert.That(newStore.Triples.ToList(), Has.Count.EqualTo(3)); Assert.That(newStore.Graphs, Has.Count.EqualTo(2)); }
public void SparqlUpdateLoadQuads3() { var tripleStore = new TripleStore(); SparqlUpdateCommandSet cmds = this._parser.ParseFromFile(@"resources\core-421\test3.ru"); tripleStore.ExecuteUpdate(cmds); Assert.Equal(3, tripleStore.Triples.Count()); Assert.Equal(3, tripleStore.Graphs.Count); tripleStore.SaveToFile("core-421.nq", new NQuadsWriter()); var newStore = new TripleStore(); newStore.LoadFromFile("core-421.nq", new NQuadsParser()); Assert.Equal(3, newStore.Triples.Count()); Assert.Equal(2, newStore.Graphs.Count); }
public void SparqlUpdateLoadQuads2() { var tripleStore = new TripleStore(); SparqlUpdateCommandSet cmds = this._parser.ParseFromFile(@"resources\core-421\test2.ru"); tripleStore.ExecuteUpdate(cmds); Assert.That(tripleStore.Triples.ToList(), Has.Count.EqualTo(3)); Assert.That(tripleStore.Graphs, Has.Count.EqualTo(3)); tripleStore.SaveToFile("core-421.nq", new NQuadsWriter()); var newStore = new TripleStore(); newStore.LoadFromFile("core-421.nq", new NQuadsParser()); Assert.That(newStore.Triples.ToList(), Has.Count.EqualTo(3)); Assert.That(newStore.Graphs, Has.Count.EqualTo(2)); }
public void SparqlEvaluationMultipleOptionals2() { TripleStore store = new TripleStore(); store.LoadFromFile("resources\\multiple-options.trig"); SparqlQueryParser parser = new SparqlQueryParser(); SparqlQuery query = parser.ParseFromFile("resources\\multiple-optionals-alternate.rq"); LeviathanQueryProcessor processor = new LeviathanQueryProcessor(store); Object results = processor.ProcessQuery(query); if (results is SparqlResultSet) { TestTools.ShowResults(results); } else { Assert.Fail("Expected a SPARQL Result Set"); } }
public void SparqlUpdateLoadQuads4() { var tripleStore = new TripleStore(); String g1 = Path.GetFullPath(@"resources\core-421\g1.nq").Replace('\\', '/'); String g2 = Path.GetFullPath(@"resources\core-421\g2.nq").Replace('\\', '/'); tripleStore.ExecuteUpdate("LOAD <file:///" + g1 + "> into graph <http://test.org/user>"); tripleStore.ExecuteUpdate("LOAD <file:///" + g2 + "> into graph <http://test.org/prodList/>"); Assert.Equal(3, tripleStore.Triples.Count()); Assert.Equal(3, tripleStore.Graphs.Count); tripleStore.SaveToFile("core-421.nq", new NQuadsWriter()); var newStore = new TripleStore(); newStore.LoadFromFile("core-421.nq", new NQuadsParser()); Assert.Equal(3, newStore.Triples.Count()); Assert.Equal(2, newStore.Graphs.Count); }
static void Main() { ITripleStore store = new TripleStore(); store.LoadFromFile("input.trig"); var factory = new EntityContextFactory(); // it is also possible to add fluent/attribute mappings separately factory.WithMappings(mb => mb.FromAssemblyOf <IPerson>()); // this is necessary to tell where entities' data is stored in named graphs // see the input.trig file to find out how it does that factory.WithMetaGraphUri(new Uri("http://romanticweb.net/samples")); // this API bound to change in the future so that custom // namespaces can be added easily factory.WithOntology(new DefaultOntologiesProvider(BuiltInOntologies.DCTerms | BuiltInOntologies.FOAF)); factory.WithDotNetRDF(store); var context = factory.CreateContext(); foreach (var person in context.AsQueryable <IPerson>().Where(p => p.Name != "Karol")) { var pubId = "http://romanticweb.net/samples/publication/" + Guid.NewGuid(); var pub = context.Create <IPublication>(pubId); pub.Title = string.Format("Publication about RDF by {0} {1}", person.Name, person.LastName); pub.DatePublished = DateTime.Now; person.Publications.Add(pub); } context.Commit(); store.SaveToFile("output.trig", new TriGWriter()); }
public PartialViewResult ExecuteQuery(Query data) { ResultSet _ResultSet = new ResultSet(); SparqlResultSet _SparqlResultSet = null; //string query = Request.Unvalidated["SparqlQuery"]; // Create a Triple Collection with only a subject index BaseTripleCollection tripleCollection = new TreeIndexedTripleCollection( true, false, false, false, false, false, MultiDictionaryMode.AVL); // Create a Graph using the customized triple collection // Graph g = new Graph(tripleCollection); TripleStore _TripleStore = new TripleStore(); string _OwlFileName = GetAttachedOwlFile(); if (!_OwlFileName.Equals("Error")) { string _OWLFilePath = Server.MapPath("~/DataSets/" + _OwlFileName); _TripleStore.LoadFromFile(_OWLFilePath); ISparqlDataset _ISparqlDataset = new InMemoryDataset(_TripleStore); LeviathanQueryProcessor _LeviathanQueryProcessor = new LeviathanQueryProcessor(_ISparqlDataset); SparqlQueryParser _SparqlQueryParser = new SparqlQueryParser(); // Then we can parse a SPARQL string into a query if (ModelState.IsValid) { try { SparqlQuery _SparqlQuery = _SparqlQueryParser.ParseFromString(data.query); var results = _LeviathanQueryProcessor.ProcessQuery(_SparqlQuery); _SparqlResultSet = (SparqlResultSet)results; /// _ResultSet.Columns = _SparqlResultSet.Variables; string value = null; foreach (SparqlResult _SparqlResult in _SparqlResultSet) { foreach (var _Col in _ResultSet.Columns) { INode _Node; if (_SparqlResult.TryGetValue(_Col, out _Node)) { switch (_Node.NodeType) { case NodeType.Uri: value = ((IUriNode)_Node).Uri.AbsoluteUri; break; case NodeType.Literal: value = ((ILiteralNode)_Node).Value; break; default: Console.WriteLine("Error Node"); ModelState.AddModelError("", "Error in The Node Type "); break; } } else { value = String.Empty; } //Data To Rows _ResultSet.Rows.Enqueue(value); } } /// } catch (RdfParseException e) { // Console.SetError(e.ToString()); ModelState.AddModelError("", "Error in The Syntax " + e.Message); TempData["message"] = string.Format("Syntaxerror"); } } else { TempData["message"] = string.Format("EmptyQuery"); } } else { TempData["message"] = string.Format("ChooseDb"); } return(PartialView("_ExecuteQuery", _ResultSet)); }
public void SparqlEvaluationMultipleOptionals2() { TripleStore store = new TripleStore(); store.LoadFromFile("multiple-options.trig"); SparqlQueryParser parser = new SparqlQueryParser(); SparqlQuery query = parser.ParseFromFile("multiple-optionals-alternate.rq"); Object results = query.Evaluate(store); if (results is SparqlResultSet) { TestTools.ShowResults(results); } else { Assert.Fail("Expected a SPARQL Result Set"); } }
public Uri Read(Uri graphUri, Uri url, RdfSerializationFormat format, bool update) { IGraph graph = null; if (url.AbsoluteUri.StartsWith("file:")) { string path; if (url.IsAbsoluteUri) { path = url.LocalPath; } else { path = Path.Combine(Directory.GetCurrentDirectory(), url.OriginalString.Substring(5)); } if (graphUri != null) { if (format == RdfSerializationFormat.Trig) { TripleStore s = new TripleStore(); s.LoadFromFile(path, new TriGParser()); foreach (VDS.RDF.Graph g in s.Graphs) { if (!update) { _store.Remove(g.BaseUri); } _store.Add(g, update); } } else { graph = new Graph(); graph.LoadFromFile(path, GetReader(format)); graph.BaseUri = graphUri; } } } else if (url.Scheme == "http") { graph = new Graph(); UriLoader.Load(graph, url); graph.BaseUri = graphUri; } if (graph != null) { if (!update) { _store.Remove(graph.BaseUri); } _store.Add(graph, update); return(graphUri); } return(null); }