#  some dependencies within the Web Services

@prefix doc: <http://www.w3.org/2000/10/swap/pim/doc#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix rm:    <http://www.w3.org/2001/04/roadmap/vocab#>.   #  @@@@@@@@@@@@@
@prefix u: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix dot: <http://www.w3.org/2001/02pd/gv#>.
@prefix swws: <http://www.w3.org/2001/04/roadmap/swws#>. # rdf2dot.xsl needs namespace URIs absolutized @@
@prefix : <http://www.w3.org/2001/04/roadmap/swws#>.

@prefix w:  <http://www.w3.org/2001/04/roadmap/w3c#>.

<> doc:version "$Id: swws.n3,v 1.33 2006/01/11 18:30:56 timbl Exp $".

<> dot:digraph :theGraph.

rm:needs a dot:EdgeProperty.
rm:protypes a dot:EdgeProperty.
rm:influencedBy a dot:EdgeProperty.

:theGraph dot:label "W3C Web Services + Semantic Web Integrated Architecture $Date: 2006/01/11 18:30:56 $".

:theGraph dot:hasNode w:ws.    # new dummy seed to trace out from

w:ws dot:label "Integrated\\narchitecture"; a rm:goal; rm:needs w:busapp, w:intapp, w:agents.

this log:forAll :n1, :n2, :p, :type.

#{ <> doc:version :s }
#   log:implies { :theGraph dot:label :s }.

:theGraph :likes rm:goal, rm:subgoal, rm:planned, rm:prototyped, rm:current, rm:external.

{ :theGraph dot:hasNode :n1.
  :n1 :p :n2.
  :p a dot:EdgeProperty.
  :n2 a :type.
  :theGraph :likes :type.
 }
   log:implies { :theGraph dot:hasNode :n2. }.

#{ :n1 a rm:external} log:implies {:n1 a log:Chaff}.
{ :n1 a rm:done} log:implies {:n1 a log:Chaff}.
#{ :n1 a rm:current} log:implies {:n1 a log:Chaff}.
#{ :n1 a rm:prototyped} log:implies {:n1 a log:Chaff}.

#{ :theGraph dot:hasNode :n2.
#  :n1 :p :n2.
#  :p a dot:EdgeProperty.
# }
#   log:implies { :theGraph dot:hasNode :n1. }.

############## Diagram Key has example nodes
#
#  Warning - translation from XML to dot can't deal with anonymous nodes.
# Hence explicit ids for :key and :k_* .
#
:theGraph dot:subgraph  :key.
:key	dot:label 	"Key: arrows mean HOW?, reverse of arrow WHY? ";
	dot:hasNode :k_goal, :k_external,
			:k_planned, :k_prototyped, :k_current, :k_done,
			:k_program,
			:k_proto, :k_something, :k_dep, :k_inf.

:k_goal 		a rm:goal;				dot:label "Goal".
:k_external 	a rm:external;			dot:label "external".
:k_planned		a rm:planned;			dot:label "planned".
:k_prototyped	a rm:prototyped;			dot:label "prototyped".
:k_current		a rm:current;			dot:label "current".
:k_done		a rm:done;				dot:label "v1 done".
:k_program		a rm:program, rm:current;	dot:label "LEAD\\nsoftware".

:k_something	a rm:current;			dot:label "the\\nspec X";
									rm:needs :k_dep;
									rm:influencedBy :k_inf.
:k_proto		a rm:program, rm:current;	dot:label "this prototypes X";
									rm:prototypes :k_something.
:k_dep		a rm:current;			dot:label "X depends on this".
:k_inf		a rm:current;			dot:label "X influenced by this".



# end
