Esempio n. 1
0
    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);
            }
        }
    }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
    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);
            }
        }
    }
Esempio n. 5
0
	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);
		}
	
	}
Esempio n. 6
0
	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);
			}
		}
	}
Esempio n. 7
0
		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;
		}