@prefix v: <http://www.w3.org/2001/07/25-swws/egv#>.
@prefix dot: <http://www.w3.org/2001/02pd/gv#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

# visualization rules for p3p

this log:forAll v:s, v:p, v:o.

# pick arbitrary relationship for starting graph 

v:theGraph dot:hasNode <http://www.w3.org/2001/08/p3pv1#Organization>.

# display properties a certain way

# The following recipe basically says... if there is a assertion with
# a predicate 'contact:mailbox' in the file 'announce.n3' then make
# this 'red'

{ <p3p.n3> log:resolvesTo [ log:includes { v:s rdfs:description v:o } ] }
log:implies
{ v:s [ a dot:EdgeProperty;
	dot:label "rdfs:description";
	dot:color "red" ] v:o }.

{ <p3p.n3> log:resolvesTo [ log:includes { v:s rdfs:label v:o } ] }
log:implies
{ v:s [ a dot:EdgeProperty;
	dot:label "rdfs:label";
	dot:color "red" ] v:o }.

{ <p3p.n3> log:resolvesTo [ log:includes { v:s rdfs:subPropertyOf v:o } ] }
log:implies
{ v:s [ a dot:EdgeProperty;
	dot:label "rdfs:subPropertyOf";
	dot:color "red" ] v:o }.

{ <p3p.n3> log:resolvesTo [ log:includes { v:s rdfs:subClassOf v:o } ] }
log:implies
{ v:s [ a dot:EdgeProperty;
	dot:label "rdfs:subClassOf";
	dot:color "red" ] v:o }.

{ <p3p.n3> log:resolvesTo [ log:includes { v:s rdfs:domain v:o } ] }
log:implies
{ v:s [ a dot:EdgeProperty;
	dot:label "rdfs:domain";
	dot:color "red" ] v:o }.

{ <p3p.n3> log:resolvesTo [ log:includes { v:s rdfs:range v:o } ] }
log:implies
{ v:s [ a dot:EdgeProperty;
	dot:label "rdfs:range";
	dot:color "red" ] v:o }.

{ <p3p.n3> log:resolvesTo [ log:includes { v:s rdf:type v:o } ] }
log:implies
{ v:s [ a dot:EdgeProperty;
	dot:label "rdf:type";
	dot:color "green" ] v:o }.

#{ v:s rdfs:label v:o } log:implies { v:s dot:label v:o; dot:shape "box" }.
#{ v:s rdfs:description v:o } log:implies { v:s dot:label v:o; dot:shape "box" }.





