public void Select(Statement template, StatementSink sink) { // extract the fields for easy access Entity subj = template.Subject; Entity pred = template.Predicate; Resource obj = template.Object; // convert the SemWeb fields to the RDFQuery fields Uri s; string p, o; rdf_to_beagle_hook(subj, pred, obj, out s, out p, out o); RDFQuery query = new RDFQuery(s, p, o); RDFQueryResult result = (RDFQueryResult)query.Send(); foreach (Hit hit in result.Hits) { Entity subject = new Entity(hit.Uri.ToString()); //FIXME: Do we have to use strings here? foreach (Property prop in hit.Properties) { Entity predicate = BeaglePropertyToEntity(prop.Type, prop.Key); Resource _object; property_to_rdf_hook(prop, out _object); // now create a the statement and add it to the result Statement st = new Statement(subject, predicate, _object); sink.Add(st); } } }
static public ArrayList DoRDFQuery(RDFQuery query) { ArrayList all_results = new ArrayList(); try { iqueryable_lock.AcquireReaderLock(System.Threading.Timeout.Infinite); foreach (Queryable q in Queryables) { if (!q.AcceptQuery(query)) { continue; } ICollection results = q.DoRDFQuery(query); if (results == null || results.Count == 0) { continue; } all_results.AddRange(results); } } finally { iqueryable_lock.ReleaseReaderLock(); } return(all_results); }
public override ResponseMessage Execute(RequestMessage request) { RDFQueryResult result = new RDFQueryResult(); RDFQuery query = request as RDFQuery; if (query == null) { return(new ErrorResponse("Only RDF query please!")); } result.Hits = QueryDriver.DoRDFQuery(query); return(result); }
public static void Main(string[] args) { if (args.Length != 3) { Console.WriteLine("Usage: program-name <subject> <predicate> <object>"); Console.WriteLine(" <subject> : URI or path"); Console.WriteLine(" <predicate> : property name (string)"); Console.WriteLine(" <object> : object (string)"); Console.WriteLine(" Use \"\" (empty string) for unspecified subject, predicate, type or object"); return; } RDFQueryResult result; Console.WriteLine("subject:'{0}' predicate:'{1}' object:'{2}'", args [0], args [1], args [2]); Uri subject = null; if (args [0] != String.Empty) { subject = new Uri(args [0]); } RDFQuery query = new RDFQuery(subject, args [1], args [2]); result = (RDFQueryResult)query.Send(); if (result == null) { Console.WriteLine("null......."); return; } foreach (Hit hit in result.Hits) { foreach (Property prop in hit.Properties) { Console.WriteLine("<{0}> <{1}> \"{2}\" .", hit.Uri, prop.Key, prop.Value); } } }
public static void Main (string[] args) { if (args.Length != 3) { Console.WriteLine ("Usage: program-name <subject> <predicate> <object>"); Console.WriteLine (" <subject> : URI or path"); Console.WriteLine (" <predicate> : property name (string)"); Console.WriteLine (" <object> : object (string)"); Console.WriteLine (" Use \"\" (empty string) for unspecified subject, predicate, type or object"); return; } RDFQueryResult result; Console.WriteLine ("subject:'{0}' predicate:'{1}' object:'{2}'", args [0], args [1], args [2]); Uri subject = null; if (args [0] != String.Empty) subject = new Uri (args [0]); RDFQuery query = new RDFQuery (subject, args [1], args [2]); result = (RDFQueryResult) query.Send (); if (result == null) { Console.WriteLine ("null......."); return; } foreach (Hit hit in result.Hits) { foreach (Property prop in hit.Properties) Console.WriteLine ("<{0}> <{1}> \"{2}\" .", hit.Uri, prop.Key, prop.Value); } }
public void Select (Statement template, StatementSink sink) { // extract the fields for easy access Entity subj = template.Subject; Entity pred = template.Predicate; Resource obj = template.Object; // convert the SemWeb fields to the RDFQuery fields Uri s; string p, o; rdf_to_beagle_hook (subj, pred, obj, out s, out p, out o); RDFQuery query = new RDFQuery (s, p, o); RDFQueryResult result = (RDFQueryResult) query.Send (); foreach (Hit hit in result.Hits) { Entity subject = new Entity (hit.Uri.ToString ()); //FIXME: Do we have to use strings here? foreach (Property prop in hit.Properties) { Entity predicate = BeaglePropertyToEntity (prop.Type, prop.Key); Resource _object; property_to_rdf_hook (prop, out _object); // now create a the statement and add it to the result Statement st = new Statement (subject, predicate, _object); sink.Add (st); } } }
static public ArrayList DoRDFQuery (RDFQuery query) { ArrayList all_results = new ArrayList (); try { iqueryable_lock.AcquireReaderLock (System.Threading.Timeout.Infinite); foreach (Queryable q in Queryables) { if (! q.AcceptQuery (query)) continue; ICollection results = q.DoRDFQuery (query); if (results == null || results.Count == 0) continue; all_results.AddRange (results); } } finally { iqueryable_lock.ReleaseReaderLock (); } return all_results; }