private IEnumerable<string> GetClassUris() { MetadataSource source = new MetadataSource(opts); var properties = new ClassQuerySink(opts.IgnoreBlankNodes, opts.OntologyNamespace, new[] { "u" }); SparqlResultSet results; if (opts.ExtractRdfsClasses) { results = source.QueryWithResultSet(sqGetRdfsClasses); } else { results = source.QueryWithResultSet(sqGetClasses); } Console.WriteLine(results.Count + " possible Classes retrieved"); properties.Fill(results); return properties.bindings.Map(nvc => nvc["u"]); }
private IEnumerable <string> GetClassUris() { MetadataSource source = new MetadataSource(opts); var properties = new ClassQuerySink(opts.IgnoreBlankNodes, opts.OntologyNamespace, new[] { "u" }); SparqlResultSet results; if (opts.ExtractRdfsClasses) { results = source.QueryWithResultSet(sqGetRdfsClasses); } else { results = source.QueryWithResultSet(sqGetClasses); } Console.WriteLine(results.Count + " possible Classes retrieved"); properties.Fill(results); return(properties.bindings.Map(nvc => nvc["u"])); }
private OntologyClass GetClass(string classUri) { var u = new Uri(classUri); string className = GetNameFromUri(classUri); Console.WriteLine("Processing Class " + className); string supertype = "OwlClassSupertype"; MetadataSource source = new MetadataSource(opts); var properties = new ClassQuerySink(opts.IgnoreBlankNodes, null, new[] { "p", "r" }); string sparqlQuery = string.Format(sqGetSupertype, classUri); //try //{ // SparqlResultSet results = source.QueryWithResultSet(sparqlQuery); // if (results.Count == 1) // { // if (results[0]["c"].NodeType == NodeType.Uri) // { // supertype = results[0]["c"].ToString(); // if (!supertype.Equals("http://www.w3.org/2002/07/owl#Class")) // { // supertype = GetNameFromUri(supertype); // } // else // { // supertype = "OwlClassSupertype"; // } // } // } //} //catch //{ // //Ignore the errors //} sparqlQuery = string.Format(sqGetProperty, classUri); try { SparqlResultSet results = source.QueryWithResultSet(sparqlQuery); properties.Fill(results); } catch { //Ignore the errors } IEnumerable <Tuple <string, string> > q1 = properties.bindings .Map(nvc => new Tuple <string, string>(nvc["p"], nvc["r"])) .Where(t => (!(string.IsNullOrEmpty(t.First) || string.IsNullOrEmpty(t.Second)))); sparqlQuery = string.Format(sqGetObjectProperty, classUri); try { SparqlResultSet results = source.QueryWithResultSet(sparqlQuery); properties.Fill(results); } catch { //Ignore the errors } IEnumerable <Tuple <string, string> > q2 = properties.bindings .Map(nvc => new Tuple <string, string>(nvc["p"], nvc["r"])) .Where(t => (!(string.IsNullOrEmpty(t.First) || string.IsNullOrEmpty(t.Second)))); IEnumerable <OntologyProperty> ops = q2.Map(t => new OntologyProperty { Uri = t.First.Trim(), IsObjectProp = true, Name = GetNameFromUri(t.First), Range = GetNameFromUri(t.Second), RangeUri = t.Second }); IEnumerable <OntologyProperty> dps = q1.Map(t => new OntologyProperty { Uri = t.First.Trim(), IsObjectProp = false, Name = GetNameFromUri(t.First), Range = GetNameFromUri(t.Second), RangeUri = t.Second }); var d = new Dictionary <string, OntologyProperty>(); IEnumerable <OntologyProperty> props = ops.Union(dps).Map(p => TranslateType(p)); foreach (OntologyProperty prop in props) { d[prop.Uri] = prop; } var result = new OntologyClass { Name = className, Uri = classUri, Supertype = supertype, Properties = d.Values.Where(p => NamespaceMatches(p)).ToArray() }; return(result); }
private OntologyClass GetClass(string classUri) { var u = new Uri(classUri); string className = GetNameFromUri(classUri); Console.WriteLine("Processing Class " + className); string supertype = "OwlClassSupertype"; MetadataSource source = new MetadataSource(opts); var properties = new ClassQuerySink(opts.IgnoreBlankNodes, null, new[] { "p", "r" }); string sparqlQuery = string.Format(sqGetSupertype, classUri); //try //{ // SparqlResultSet results = source.QueryWithResultSet(sparqlQuery); // if (results.Count == 1) // { // if (results[0]["c"].NodeType == NodeType.Uri) // { // supertype = results[0]["c"].ToString(); // if (!supertype.Equals("http://www.w3.org/2002/07/owl#Class")) // { // supertype = GetNameFromUri(supertype); // } // else // { // supertype = "OwlClassSupertype"; // } // } // } //} //catch //{ // //Ignore the errors //} sparqlQuery = string.Format(sqGetProperty, classUri); try { SparqlResultSet results = source.QueryWithResultSet(sparqlQuery); properties.Fill(results); } catch { //Ignore the errors } IEnumerable<Tuple<string, string>> q1 = properties.bindings .Map(nvc => new Tuple<string, string>(nvc["p"], nvc["r"])) .Where(t => (!(string.IsNullOrEmpty(t.First) || string.IsNullOrEmpty(t.Second)))); sparqlQuery = string.Format(sqGetObjectProperty, classUri); try { SparqlResultSet results = source.QueryWithResultSet(sparqlQuery); properties.Fill(results); } catch { //Ignore the errors } IEnumerable<Tuple<string, string>> q2 = properties.bindings .Map(nvc => new Tuple<string, string>(nvc["p"], nvc["r"])) .Where(t => (!(string.IsNullOrEmpty(t.First) || string.IsNullOrEmpty(t.Second)))); IEnumerable<OntologyProperty> ops = q2.Map(t => new OntologyProperty { Uri = t.First.Trim(), IsObjectProp = true, Name = GetNameFromUri(t.First), Range = GetNameFromUri(t.Second), RangeUri = t.Second }); IEnumerable<OntologyProperty> dps = q1.Map(t => new OntologyProperty { Uri = t.First.Trim(), IsObjectProp = false, Name = GetNameFromUri(t.First), Range = GetNameFromUri(t.Second), RangeUri = t.Second }); var d = new Dictionary<string, OntologyProperty>(); IEnumerable<OntologyProperty> props = ops.Union(dps).Map(p => TranslateType(p)); foreach (OntologyProperty prop in props) { d[prop.Uri] = prop; } var result = new OntologyClass { Name = className, Uri = classUri, Supertype = supertype, Properties = d.Values.Where(p => NamespaceMatches(p)).ToArray() }; return result; }