@prefix g: <http://www.w3.org/2001/02pd/gv#>.
@prefix l: <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#>.
@prefix : <http://www.w3.org/2001/02pd/rdfsConstraints#>.
@prefix v: <#>.

rdfs:subClassOf a g:EdgeProperty;
  g:color "blue".

this l:forAll v:c, v:c2, v:p, v:str,
  v:g.

{ v:c a rdfs:Class; rdfs:label v:str }
  l:implies { v:c g:label v:str; g:shape "box" }.

{ v:g g:hasNode v:c.
  v:p rdfs:subClassOf v:c2. } l:implies { v:g g:hasNode v:c2. }.

<> g:digraph :theGraph.

{ v:c rdfs:subClassOf v:c2 }
  l:implies { :theGraph g:hasNode v:c, v:c2 }.


this l:forAll v:p, v:CD, v:CR, v:s.

{ v:p rdfs:domain v:CD; rdfs:range v:CR; rdfs:label v:s. }
  l:implies
{ v:CD [ a g:EdgeProperty; g:label v:s; g:color "red" ] v:CR. }.


###
#
# copy some, but not all, of rdfs.rdf
rdf:Property a rdfs:Class; rdfs:label "Property".
rdfs:Resource a rdfs:Class; rdfs:label "Resource".
rdfs:Literal a rdfs:Class; rdfs:label "Literal".
rdf:Bag a rdfs:Class; rdfs:label "Bag".
rdfs:Resource is rdfs:subClassOf of
	rdf:Property,
	rdf:Bag.

