What is SP? (FAQ)

Frequently Asked Questions
(or rather at this point it's the 'I guess these are likely questions' page)

1. What is Semiotic Programming?
Semiotic Programming (SP) is a new approach to programming computers that was developed in the age where computers are ubiquitous and connected. In particular SP proposes a specific model for encoding all programs and data across a network of computers into a single graph (the SP Graph) together with the design of a computational machine that should be used to animate this graph.

The SP Graph is composed out of 'nodedges' which, as the name suggests, form both the nodes and the edges of the SP Graph. Each nodedge is itself composed out of signs that refer to other nodedges.

SP learns a lot from existing approaches (such as object oriented programming, functional programming, service oriented architecture, semantic networks, event driven programming, and more) but puts all of these ideas (and others) together into a particular, novel paradigm conceived for the internet age.

2. Why call it 'semiotic' programming?

Roughly speaking, 'semiotics' is the study of the ways that signs have meaning and are used in communication. As with most projects that appropriate the name of a philosophical domain with a long and complex history, Semiotic Programming (SP) takes a few ideas from semiotics (in particular using terminology from the Saussurean semiology tradition, but not exclusively) in order to describe what is happening when a machine is executing an SP program. 

Again, very roughly, semiotics talks about a sign, such as the word 'tree' in the sentence, "look at that tree" as being composed of three things:
  • The signifier - in this case the actual text of the word:  tree  
  • The signified - in this case the concept of the tree being referred to
  • The referent - the actual tree in the world being referred to
Often within semiotics the referent is left out (the theorist 'brackets the referent') because it is considered so philosophically hard to reason about the connection with the 'real' things being referred to. However, within Semiotic Programming the tendency will be to 'bracket the signified' as it is so hard to talk about the conceptual realm of a computational machine. 

However, I do not think that this diminishes the value of using semiotic terminology to discuss what is going on, precisely because these computation machines will be using signifiers to communicate with humans who we know will understand these signifiers through the concepts signified to the receiving human.

So, I think it is entirely valid, and indeed extremely important, to understand the ongoing 'sign processes' between groups of humans and machines in semiotic terms. 

3. What is 'Standard Semiotic Programming'?
Standard Semiotic Programming (Standard SP, or SSP) is a set of specific nodedges that are defined to have particular meaning. The existence of these nodedges, together with the SSP virtual machine (SSPVM) that is programmed to understand the meaning of these specific nodedges, enables a particular web of 'meaning' to get off the ground.

4. What is 'Semprola'?
Semprola is a programming language that compiles to run on the SSPVM virtual machine.It is therefore the first Semiotic Programming Language, hence its name. Semprola is therefore used to program the behaviours of nodedges.