File: select.cs

package info (click to toggle)
semweb 1.05%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,000 kB
  • ctags: 2,832
  • sloc: cs: 14,483; makefile: 176; perl: 20; sh: 11; ansic: 7
file content (38 lines) | stat: -rw-r--r-- 1,256 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using SemWeb;

public class Select {
	const string RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
	const string FOAF = "http://xmlns.com/foaf/0.1/";

	const string example_foaf_file = "http://rdfweb.org/people/danbri/rdfweb/danbri-foaf.rdf";
	
	static readonly Entity rdftype = RDF+"type";
	static readonly Entity foafPerson = FOAF+"Person";
	static readonly Entity foafknows = FOAF+"knows";
	static readonly Entity foafname = FOAF+"name";
	
	public static void Main() {
		Store store = new MemoryStore();
		store.Import(RdfReader.LoadFromUri(new Uri(example_foaf_file)));
		
		// Dump out the data, for fun
		using (RdfWriter writer = new RdfXmlWriter(Console.Out)) {
			writer.Write(store);
		}

		Console.WriteLine("These are the people in the file:");
		foreach (Statement s in store.Select(new Statement(null, rdftype, foafPerson))) {
			foreach (Resource r in store.SelectObjects(s.Subject, foafname))
				Console.WriteLine(r);
		}
		Console.WriteLine();

		Console.WriteLine("And here's RDF/XML just for some of the file:");
		using (RdfWriter w = new RdfXmlWriter(Console.Out)) {
			store.Select(new Statement(null, foafname, null), w);
			store.Select(new Statement(null, foafknows, null), w);
		}
		Console.WriteLine();	
	}
}