Re: [Gegl-developer] Terminology

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

 



Øyvind Kolås wrote:
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)

well, I think data should only flow in one direction, but other than that, I don't think it matters how we draw our diagrams.

    .-----------.
    |           |<------- 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?

I like using both. But it we are going to pick one, we should use Connection, since that has a verb form.

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.

Yeah, sure, an op with only one input and one output is a filter.

Graph
	A compositing graph consisting of Node's, (and Graphs (which
	have an interface in common with Node's?))

Yeah, the graphs will have a similar interface and be able to behave like nodes.

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.

I am a little unclear about that last bit about parameters. Lets just stick to "properties" since that is what we will be using to set them (g_object_get_property).

Port/Pad/Source/Input/Output/Faucet/Sink
	Exists both in input and output variety, the place where
	Connections are made between the Nodes.

Gstreamer uses pad and port, yes? Lets be consistent with. I don't really care about the terminology here.

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.

Well, I have a revised class structure where I specifically rearrage the concept of "GeglNoInput" I _really_ don't like that name. Technically, a leaf node would be any node with either inputs or outputs but not both. Lets call it a source node.

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).

Lets call it a Sink node to be consistant with Source node.

I think source nodes or sink nodes can have any number of outputs or inputs, (respectively), though I can't think of any case where that would be.

Attachment: pgpwhPZS4FGcc.pgp
Description: PGP signature


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

  Powered by Linux