[Gegl-developer] Terminology

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We need to sort out our Terminology, this will facilitate both
communication internal to the project, and the projects communication
with other projects, for instance the Gimp.

If at all possible it is good to have a consistent naming scheme from
variable names, through comments, api documentation, user interface,
through to user manual and webpages.

The reason I'm bringing this up now, is that there is a slight change
I'll be mentioning gegl in some presentations I'll do on bauxite,
and dsrogers is planning to do a presentation at Guadec.

The Graph,  (data flow downwards,. wheter data flows down or up is something 
we should decide on as well, I like downwards flow, but that's just a matter 
of personal preference)

    .-----------.
    |           |<------- source node
    |membuf     | 
    |   ,---.<----------- output port
    `---' | `---' 
       .--^--.
      /       \<--------- connection 
     |   .---. | .---.
     |   |   `---'<------ input port
     |   |coloradj   | 
     |   |   .---.   |<-- filter node
     |   `---'/  `---'
     |       / 
     |      /
 .-. | .-. / .-.
 | `---' `---' |<-------- composer node
 | sidebyside  |
 |    .---.    |
 `----' | `----'
        |
  .---. | .---.
  |   `---'   |<--------- target node
  |display    |
  |           |
  `-----------'

  (type of node not shown, decomposer,. e.g. RGB->R,G,B and similar)

At least the following concepts are important that we use consistantly,
preferablly using the least ambiguous, of the terms listed for eact, and
not use the others.

Composer Node
	A type of node that has more than one input,. compositing
	nodes,. adding of alphamask,. and similar
Connection/Edge
	From a programmer and informatics point of view, a graph has
	edges, but a end user might just as well want to call them
	Connections, should there be any policy on this?
Decomposer Node
	A type of node that has more than one output port.
Filter/Op
	These two should only be used about node's that have both inputs
	and outputs, and thus transform image data. Using them for any
	other nodes is just plain confusing. Actually I find the concept
	of Op's confusing, and would prefer that a filter is a node that
	has exactly one input, and exactly one output,. thinking of for
	instance brightness/contrast, for me at least thinking is easier
	using the term Filter.
Graph
	A compositing graph consisting of Node's, (and Graphs (which
	have an interface in common with Node's?))
Node
	An instance of a kind of operation that is performed by gegl,
	anything processing image data,. wheter creating it,
	transforming it or consuming it.
Parameter/Attribute
	Some value that can be changed for a node, can be the amount of
	contrast in a color adjustment filter, the file to load from a
	png file, position of a layer etc. It is possible to generalise
	parameters and ports into a attribute list where attributes have
	read/write flags, meaning even parameters could be changed by
	the filter, if this is done attribute is a more appropriate
	word.
Port/Pad/Source/Input/Output/Faucet/Sink
	Exists both in input and output variety, the place where
	Connections are made between the Nodes.
Source-, Provider-, Leaf Node
	At the moment called, GeglNoInput, GeglProvider is probably a
	better name, any node that provides provides image data only
	from parameters, e.g. png load, v4l frame grabber, noise gen,
	in memory framebuffer etc.
Target-, Root-, Consumer Node
	A node that has a single input port, and no output ports.
	Example, file writers, display, statistical analysis, (assuming
	that we're only passing image data).


Comments and changes are expected, but at least this could be a starting
point. If things need to change names in the code that is no problem
yet, but once other projects starts depending on gegl, variable, object,
filename, and other changes get a lot harder.

/Øyvind K.

-- 
  .^.
  /V\    Øyvind Kolås,  Gjøvik University College, Norway 
 /(_)\   <oeyvindk@xxxxxx>,<pippin@xxxxxxxxxxxxxxxxxxxxx>
  ^ ^    

[Index of Archives]     [Yosemite News]     [Yosemite Photos]     [gtk]     [GIMP Users]     [KDE]     [Gimp's Home]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux