|
[
Diagram Elements
Preliminaries
Predicate Symbols
Labels and Pointers
Combined Connectors
Negated Nodes
Contours
Ontological Diagrams
Connectedness
Interpretation
Polyadic Relationships
Implicit Ascriptions
Further Features
Fixed Contour Angles
Groups
Copying
Transformations
‘Snapping’
Contact Points
Line Patterns
Keyboard Commands
Outlook
Pasi Home ] |
The first section and the next are primarily addressed to analytical philosophers. Readers who are mostly interested in features not directly related to ontological diagrams may prefer only to skim these sections or skip ahead to the last one. A note on browser compatibility: some HTML characters used on this page are not properly displayed by earlier versions of Internet Explorer (i.e., pre-Vista), but present no problem for other browsers, such as Firefox or Opera. I should also note that this webpage is part of an ongoing project, so it may be revised from time to time. The first section begins with a fair amount of preliminaries. These should be understood not so much as an introduction in the usual sense, but rather only as a minimalistic outline or summary, meant to provide the reader only with what is absolutely necessary to understand the rest of the following two sections. A more extensive introduction might follow at some later time, perhaps in a different format. Meanwhile, however, the absence of any references to the literature should not be taken as a sign that I am suppressing my sources. As far as I can tell, the only external inspiration for this project (or any part of it) comes from Frege’s Begriffsschrift (1879). Since the main purpose of Pasi is the creation of ontological diagrams, the majority of its features center around the building blocks of such diagrams. In a way, all of these building blocks are already mentioned on the homepage: entity nodes, ornaments, connectors, and contours. From a ‘syntactic’ point of view, this is a satisfactory (albeit very broad) division. But a more detailed description of them will make sense only if our perspective is shifted somewhat to the side of semantics; i.e., to a point of view from where those building blocks are seen not just as elements of diagrams, but of ontological diagrams. From that viewpoint, the division between ornaments and connectors is no longer very useful, since ornaments can play a very similar semantic role to that of connectors. This role is essentially that of predicate symbols, and this will, accordingly, be the heading under which all the connectors (and the single ornament that shares this role) are going to be presented in the following sub-section. But before we can come to them, some terminology has to be introduced. The first concept to be considered is that of ascription. The term can refer, on the one hand, to the act of expressing that something has a certain property or that some two or more things stand in a certain relation to each other. An ascription in this sense can be either implicit or explicit. If explicit, it consists in a certain modification of a diagram, specifically, in the addition of a predicate symbol. In its second sense, the term can be used to refer to the resulting token of that symbol in the diagram. However, for a modification of a diagram to count as an ascription in the first sense, it has to meet certain criteria, and the resulting symbol token will count as an ascription in the second sense only as long as certain conditions are satisfied. For example, if a dot is placed under an entity node, this will be an ascription of obtainment to the entity denoted by the node; but if the node is then erased, the remaining dot will no longer count as an ascription, despite the fact that it can still be regarded as a token of a predicate symbol, and, as such, may also be said to express the corresponding predicate. In the last paragraph, I have made use of two semantic relations: expression and denotation (which will also be called ‘reference’). In the following, a third one will be that of representation. This latter concept is the most general of the three, subsuming both the concepts of expression and denotation. If S1 expresses x and S2 denotes x, both S1 and S2 are therefore said to represent x. The difference between the two will become clearer from two examples taken from the following sub-sections. First: a relationship is expressed by a connector that is drawn in an appropriate way between two nodes; but it is denoted only by the smallish node that becomes visible when one clicks on the region near the center of the corresponding connector. (Such a node will in the following be called ‘connector-node’.) Second: a diagram fragment that is surrounded by a contour is expressed by the fragment and contour taken together, but denoted only by the contour itself. In both of these cases, what expresses the thing in question is not what denotes it, and vice versa. The reason why a connector, or a diagram fragment together with its surrounding contour, does not denote the thing it expresses simply lies in the fact that neither can be involved in an ascription. (It is, of course, physically possible to put a dot under an arrow; but whether this counts as ‘involving something in an ascription’ is a matter of rules specific to the language in question. That ‘language’ is here that of ontological diagrams. Although it is as yet not fully developed, one rule that it seems – for aesthetic reasons, among others – reasonable to have in this language prescribes that only nodes and contours can be involved in ascriptions.) So, to put it more generally: In a language L, a symbol token denotes something only if it can – according to the rules of L – be involved in an ascription. Unfortunately, it is much less easy to specify why a connector-node or a contour alone should not express the thing it denotes, while, on the other hand, a connector is able to express a relationship. For the present, I have to leave this question aside. In making an ascription, one ascribes a property to a thing or a relation to a tuple of things, or in a word, one ascribes a predicate (as I will use the term). To abbreviate this further, we might commit a slight barbarism and say that the ascription ascribes a predicate. This seems a very natural barbarism, however. For while we also say that, in making an ascription, one ‘expresses’ something, we naturally abbreviate this by saying that the ascription itself (be it the act or the symbol token) expresses something. This ‘something’, now, is a state of affairs: either that a particular entity has a certain property, or that two or more particular entities are in a certain way related. In either case, the state of affairs is said to ‘exemplify’ the predicate in question, or to be an ‘exemplification’ of it. A fact is a state of affairs that obtains. Roughly speaking, I consider states of affairs to be individuated by the way in which they are ‘constructed’ from the primitive predicates of the underlying ontological theory. However, it seems that there should also be some room for the possibility that a state of affairs may be ‘constructed’ in two or more different ways. As a consequence, states of affairs may not have a determinate arity, i.e., they cannot determinately be regarded as unary, binary, or ternary (and so on), accordingly as they exemplify a unary, binary, or ternary predicate. On the other hand, when talking about some particular state of affairs, it often seems helpful to indicate what kind of predicate one considers it to exemplify. In this vein, I will refer to states of affairs as ‘property exemplifications’ if they are thought of as exemplifying unary predicates, and as binary, ternary, etc., ‘relationships’ where they are thought of as exemplifying binary, ternary, etc., relations. The concepts of state of affairs and ascription are linked in several ways. First, both the act and the symbol token by which a state of affairs is expressed are called ‘true’ if it obtains, and ‘false’ if it doesn’t. Further, a unary ascription is one that ascribes a unary predicate to a single entity, and an n-ary ascription is one that ascribes an n-ary predicate to an n-tuple of entities. The state of affairs expressed by such an ascription is said to ‘involve’ these entities, and if it obtains (and only then), they are in turn said to be ‘involved’ in it. (Hence, ‘to be involved in’ is here not simply the passive form of ‘to involve’, i.e., not synonymous with ‘to be involved by’.) The notion of involvement is also used for ascriptions, in a way that parallels its usage for states of affairs. In order for a symbol token to ascribe a predicate to one or more entities, it has to be ‘connected’ in a certain way with an appropriate number of other symbols that in turn denote those entities. What it means for a given predicate symbol to be connected with another symbol, and what number of other symbols is appropriate, will obviously differ from one representational system to the other. In the case of an ontological diagram, these symbols will be either entity nodes or contours (see Ontological Diagrams). The predicate symbol itself will be called an ‘ascription’ just in case, and as long as, it is connected with the appropriate number of such other symbols. And just as the entities denoted by them are involved by the state of affairs expressed by the ascription, the ascription itself is said to ‘involve’ these symbols (and the symbols, in turn, are ‘involved in’ it). It should be kept in mind, however, that this sense of ‘to involve’ is (obviously) different from the one in which this term is applied to states of affairs. There is admittedly some awkwardness in this part of our terminology. If a predicate symbol (i.e., a corresponding token; in the following, this kind of specification will usually be omitted) is appropriately connected to the appropriate number of other symbols, it is said to be an ascription, and as an ascription, it is also said to involve those other symbols. But we would of course not normally say that a predicate symbol ‘involves’ certain other symbols. At least, it sounds much more natural to say that an ascription does. The verb ‘to involve’, as it has here been introduced, is however a technical term, and so it would make little sense to look for a linguistic argument to the effect that a predicate symbol can never be an ascription. In focussing on predicate symbols, we have somewhat lost sight of the first sense of ‘ascription’, which is the act of adding such a symbol to a diagram, or an ‘ascriptional act’. To some extent, this is just as well. Naturally, an ascriptional act is said to ‘involve’ exactly the same entity nodes and contours as the resulting predicate symbol. However, it will often be the case that a contour or entity node changes its denotation as a result of the added ascription. Moreover, at the time when a diagram is completed, it will typically contain at least several predicate symbols, making it in most cases impossible to decide what entities have been denoted by the contours and entity nodes at each time they have become involved in an ascription. For this reason, only the predicate symbols themselves, and not the original ascriptional acts, will be considered in the interpretation of an ontological diagram. That not just contours, but also entity nodes can change their denotations (or ‘referents’) due to additional ascriptions is a consequence of several factors, which will be spelled out in the section on the Interpretation of Ascriptions and Entity Nodes. To conclude this sub-section, I will only introduce one further pivotal concept, namely that of individuation. A property P is called a ‘strongly individuating property’ if and only if there is exactly one x with P(x), or a property P′ such that there is at least one x with P′(x) ∧ ¬P(x), but exactly one x with P′(x) ∧ P(x). If already the first disjunct is true of P (i.e., if there is exactly one x with P(x)), P is moreover called a ‘fully individuating property’. On the other hand, P is called a ‘weakly individuating property’ (individuating ‘up to indiscernibility’) if and only if all x with P(x) are indiscernible from each other, or there is a property P′ such that there is at least one x with P′(x) ∧ ¬P(x), but all x with P′(x) ∧ P(x) are indiscernible from each other. If already the first disjunct holds, P is called ‘maximally individuating’. An entity is said to be strongly, fully, weakly, or maximally individuated by a given predicate just in case this predicate is, respectively, a strongly, fully, weakly or maximally individuating property of that entity. Since these latter conceps (viz., of ‘weak’ and ‘maximal’ individuation) are applicable irrespective of the identity of indiscernibles, they seem more useful to me than their ‘stronger’ counterparts. Consequently, unless otherwise specified, I will use the terms ‘individuating’ and ‘individuation’ (etc.) in the sense of weak individuation. In many cases, it is convenient to express an individuation relationship not by reference to the individuating property itself. These are cases where that property is derived from an injective (i.e., one-to-one or many-to-one) relation, in the way in which, e.g., the property of being the successor of 2 is derived from the ‘successor-of’ relation, or symbolically: in the way in which (λ x: S(x, 2)) is derived from (λ x, y: S(x, y)). Instead of saying that 3 is individuated by the property of being the successor of 2, we can abbreviate this as: ‘3 is individuated by its predecessor’. But the idiom can usefully be extended even further. If an entity is individuated by some property, it is sometimes convenient to be able to express this by saying that the entity is individuated by the state of affairs of its having that property. In particular, if the property is relational – so that the state of affairs in question will be a relationship –, we can say: ‘x is individuated by its R-relationship to y’, where x is the entity in question, R the relation from which the individuating property is derived, and y the entity to which x is in this way related. By way of recapitulation, it may be useful simply to have a list of the concepts just introduced. These are: ‘ascription’ (two senses); ‘expression’, ‘denotation’, and ‘representation’ (the latter introduced but not defined); ‘state of affairs’, ‘exemplification’, ‘obtainment’ (not defined), and ‘fact’; ‘truth’ and ‘falsity’ for ascriptions (in either sense); ‘involvement’ both for states of affairs and ascriptions in the second sense (i.e., as tokens of predicate symbols); ‘connectedness’, in reference to a relation between a predicate symbol and other symbols, and ‘appropriate connectedness’, in reference to a property of predicate symbols; ‘involvement’ for ascriptional acts; and four different ways in which a property may be said to be ‘individuating’. Most of these will recur at several points in the following. As far as the semantics of Pasi’s predicate symbols is concerned, I should emphasize that I will merely provide a sketch, with semantic suggestions only for a subset of the symbols. Users should therefore feel free to give those arrows etc. whatever meanings they consider suitable for their own purposes. This sort of semantic flexibility – in fact, a fair amount of it – is even necessary for Pasi’s primary purpose, which is to be a tool for the graphical representation of states of affairs, and as such to be useful in the development of ontological theories. Admittedly, some ontological conceptions have already influenced the selection of predicate names in Pasi. As there seems to be no satisfactory way of laying out those ideas in the present context – especially as far as ontology of concrete objects is concerned – I decided not to give any semantic suggestions at all for the corresponding predicate symbols. This means that I will make no suggestions (or at least, hardly any) regarding the connectors corresponding to the predicates of Adjunction, Inclusion, and Transition. The symbols for Obtainment and Negation are also originally part of a vocabulary intended for the description of concrete objects. But since something like Obtainment and Negation is also quite useful for the ontology abstract objects, I will indicate at least how these terms (and hence the corresponding symbols) should plausibly be understood in this latter context. The preceding remarks could be taken to suggest that all the predicates for which symbols are available in Pasi generally fall into one of two categories: predicates that are applicable only to concrete objects, and those applicable only to abstract objects, and where a term or symbol can be used in both contexts (like ‘Negation’ and ‘Obtainment’), this will only be due to its ambiguity. This picture would, however, not be very accurate. Leaving aside the (admittedly interesting) question of whether ‘Negation’ and ‘Obtainment’ would really have to be ambiguous in order to apply both to concrete and abstract objects, there are also predicates that clearly fit into neither category, viz., Containment, Instantiation, and Predication. Moreover, the dichotomy between concrete and abstract objects is simply too broad as to allow for an accurate characterization of the ranges of applicability even of the other predicates. By ‘concrete object’, we typically understand such things as the notorious ‘tables and chairs’ and their constituents, and that is also how the term is used here. However, there are good reasons to believe that tables and chairs do strictly speaking not fall into the ranges of applicability of the fundamental predicates that (arguably) form the prime subject matter of ontology. This, then, should also be kept in mind when some predicate is occasionally characterized as belonging to the ontology of concrete or of abstract objects. In the introduction on the homepage, I said (using slightly different words) that connector-nodes denote the relationships expressed by the corresponding connectors, and that, in an earlier version of this website, I regarded those nodes as denoting the third relata of ternary relationships. This was, of course, not incorrect, since it is certainly possibly to construct, for a given binary relation R, a ternary one that holds between exactly those entities x, y and z where z is the R-relationship between x and y. However, it is not this sort of relationship that I think the arrows and lines in Pasi are most plausibly used to express. For instance, Entailment arrows should obviously express entailment relationships, and it would be absurd if we were forced to think of the entailment relation as anything else but binary. For this reason, it seemed best not to treat connector-nodes uniformly as denoting the third relata of the expressed relationships. But this is still not to preclude that the connectors in Pasi could never be used to express ternary relationships. For instance, the Abstraction relation (whose symbol is a variant of that for Universal Quantification – see below) is a ternary relation whose third relata could by no stretch of the imagination be regarded as binary relationships. Hence, the connector-nodes of Abstraction arrows denote no relationships at all, but instead those third relata. Further, it also seems somewhat questionable whether a universally quantified state of affairs can plausibly be regarded as a relationship between a state of affairs and one of the entities involved in the latter. If not, then the connector-nodes of Universal Quantification arrows must be taken to denote third relata of ternary relationships, rather than to denote binary relationships. And finally, the Adjunction relation raises questions in this context as well, since its relationships are supposed to have different degrees of ‘strength’ and moreover to hold between concrete entities. In particular, the question arises what kind of ontological commitment is entailed by saying that adjunctions can differ in strength. For example, do we need additional concrete entities that, for each pair of adjoined entities x and y, ‘encode’ (in a certain sense) the strength of their adjunction? (It would then be these that the connector-nodes of Adjunction arrows would most plausibly be taken to denote.) Or can we say that x is simply to such-and-such a degree of strength adjoined to y, without any need to assume further concrete entities? However this may be, it seems that it will for most purposes still be possible to regard the connector-nodes of Adjunction arrows as denoting Adjunction relationships. In this last paragraph, I have already made use of a general convention with regard to the names of predicates and states of affairs that, in the following, I am going to rely on time and again. Namely, I am using capitalized names (‘Adjunction’, ‘Containment’, etc.) for the predicates themselves, and the lower-case versions of these names as generic terms for the corresponding relationships. Containment relationships, for instance, are called ‘containments’, Entailment relationships ‘entailments’, and so on. In fact, even where the connector-nodes do not denote any binary relationships (as in the case of Abstraction), it will, I think, usually be appropriate to use the lower-case name for whatever entities are denoted by those nodes. Lastly, in designing the shapes of the arrowheads, I have usually tried to make them at least somewhat reminiscent of the first letters of the corresponding predicate names. Similarities between those shapes are in general (that is, with the exception of the symbols for Predication and Restriction) not meant to suggest any similarity in their envisioned semantics.
As already mentioned in the introduction, a connector is created in Pasi by first selecting two nodes and then either (a) clicking on the Create button (having first selected the desired kind of connector in the list directly above that button), or (b) using the appropriate keyboard command (see below). But Pasi also offers possibilities for creating more than one connector at the same time, and this also holds for labels and other ornaments. For example, if one first selects three entity nodes and then presses Alt+L (the keyboard command for the creation of a label), a label will be added to each of the three selected nodes. In the case of connectors, matters are somewhat more complicated, as there are three different behaviors, depending on the kind of connector to be created:
Any node can be given one or more labels or pointers. Although it is not possible, in Pasi, to attach a label directly to a connector, the same effect can be achieved by attaching the label instead to the connector-node, which can then be made ‘invisible’ by setting the corresponding line width to zero. What follows are a few remarks on how the semantics of an ontological diagram is affected by including labels or pointers.
Two or more connectors that run between the same two nodes can be combined into a single connector by first selecting the to-be-combined connectors and then clicking on the Combine Connectors button (as it will then be labelled; most of the time, it is labelled Copy Selection). Besides the straightforward advantage of a greater number of possible shapes of arrow-heads, this also allows for standardized expansions of the ‘diagram language’. For instance, it is very natural to use bidirectional arrows in order to express two-way relationships: if a certain kind of unidirectional arrow is used to express R-relationships, then a bidirectional arrow created from two simple ones will naturally express mutual R-relationships. Accordingly, the connector-node of such a bidirectional arrow would have to be interpreted as denoting the conjunction of two R-relationships. The following two diagrams will then have the same referent:
Another natural expansion would be to provide for means of expressing indirect relationships. By combination of two similar arrows that run in the same direction between the same two nodes (and after increasing the ‘gap’ parameter of one of them), one can create a new kind of arrow that has a double arrowhead, as shown here:
If the original arrows are used to express ‘direct’ R-relationships, these new arrows could for instance be used to express R-relationships that are ‘either direct or indirect’ (i.e., more technically speaking: they could be used to express exemplifications of the ancestral of R). A ‘negated node’ denotes an entity that stands in the Negation relation to a certain other entity. These nodes are filled out in black and somewhat smaller than their unnegated counterparts. Their purpose is to allow states of affairs to be expressed by less complex diagrams. For example, the formula ¬∀x: ¬(P(x) ∧ ¬Q(x))
expresses a state of affairs that could essentially also be expressed by either of the following two diagrams (pretending for the moment that P and Q are two bona fide predicates):
(I say ‘essentially’ because the Containment relation is strictly speaking not the same as membership in a logical conjunction in the classical sense. The two diagrams, however, do denote the exact same entity.) Since negated nodes each effectively collapse two nodes into one, they create a danger of ambiguity, as it may become unclear which ascriptions involving the new, negated node should be interpreted as being directed at which one of the two entities originally denoted. To prevent this kind of ambiguity, we may stipulate that only those nodes can be negated that, if unnegated, would denote states of affairs. Thus, suppose N is a node that, if unnegated, would denote a state of affairs S. Exactly those ascriptions by virtue of which N would denote this state of affairs should then be interpreted as being directed at S, and all others should be interpreted as being directed at the negation of S. Contours are groups of nodes connected by Bézier curves. Since both the number of nodes and the geometric parameters of the connecting curves can be freely modified, contours can be given almost any kind of shape. For example, starting from the ‘default contour’ (a rectangle with rounded corners, consisting of eight nodes) each of the following three shapes can be created relatively easily:
A few remarks on the last two of these contours might help to illustrate some aspects of Pasi’s usage. Contour b) consists of seven nodes, two of which coincide at the base of the spike near the center. If the Fixed angles option is selected in the editor pane, the spike can be shifted along the horizontal axis and at the same time elongated, simply by dragging around any of the three nodes that define it. Similarly, the nodes defining the sides can be dragged to make the contour either broader or narrower, all the while preserving the angles and curves between successive nodes. As for the last example, its somewhat peculiar shape results from selecting the Fixed corner angle option for all the six nodes of the contour. (The ‘corner angle’ of a given contour node is the angle in which the two corresponding Bézier curves meet at that node.) Before this step, it is best to arrange the nodes into a regular hexagon using the two Equalize buttons in the editor pane. This makes it possible to set all the corner angles to 180 degrees by ‘mass-editing’ the deviation angles (see Selection and Grouping, on the homepage). After selecting the Fixed corner angle option, the corners then remain 180-degree (non-)corners even when the nodes are subsequently dragged to different locations. Contours are the only diagram elements in Pasi that can occupy different ‘levels of depth’. By default, they are painted on the zeroth level, i.e., below all of the other elements; but negative and rational-numbered levels are also possible. (Labels occupy the third and highest level, other ornaments and connectors the second, and entity nodes the first.) The reason for this is that one of the purposes of contours is to provide a – possibly shaded – backdrop for certain parts of a diagram. In the context of the ‘language’ of ontological diagrams, contours play the role of quotation device. Thus, a given (closed) contour denotes precisely that fragment of a diagram that is enclosed in it (including ‘empty space’). In order to involve such a contour in an ascription – i.e., to ‘say something’ about the denoted diagram fragment –, one would then want to add arrows and ornaments in the usual way. In Pasi, it is not possible to draw connectors to contours or contour nodes directly, but the problem can be solved by placing invisible entity nodes as proxies inside the contour in question. Of course, different kinds of contour can be employed as different kinds of quotation device. For example, dotted contours (as shown below) can be used as an analogue of Quinean corner quotes. Such a contour might be interpreted as denoting a type of ontological diagram, namely the type characterized by just the same arrangement of nodes and predicate symbols as exhibited by those that are enclosed by the contour. Connectors may then safely reach from the outside into such contours, for instance to specify certain properties of the nodes inside.
In addition to the relatively specific suggestions made in the previous section, an interpretation of ontological diagrams also requires some more general rules, which, for the most part, have already at least been alluded to. As a whole, a diagram does not denote anything unless it contains one or more pointers (see Labels and Pointers). However, it can nevertheless, if it is complete, be said to express something, viz., the conjunction of all its ascriptions, which can be either explicit or implicit. As to whether an ontological diagram should also be regarded as asserting what it expresses, it seems almost natural to say that it should – but then, it is perhaps even more natural to let this remain a matter of pragmatics. If a natural-language sentence appears all by its own in a book or article, separated from the main text and unusually indented, we are often inclined to read it as a quotation or an example sentence, rather than as an assertion made by the author (although we are ready to grant that it could be, and possibly has been, used for making an assertion in a different context); and this is the situation in which diagrams usually find themselves. One might speculate that, if diagrams, and not natural language sentences, were to constitute the main matter of a text, we would automatically interpret those diagrams as asserting whatever they express. A symbol can become involved in an ascription only if it is either an entity-node or a contour. If the ascription’s predicate symbol is an ornament, it has to be attached to the respective entity node or contour in a visually unequivocal way. (That is, it has to be clear to which entity node or contour the ornament belongs.) Similarly, if the predicate symbol is a connector, it has to create a clear visual link between exactly two entity nodes, two contours, or between one entity node and one contour. The connector should cross at most one entity node, which will then denote the relationship expressed by the connector. As has already been noted in the Preliminaries, an ascription does not denote, but only expresses a state of affairs, whereas an entity node does not express, but only denotes an entity (which may also be a state of affairs). So, by ‘interpretation’, I here mean the process of determining whether an ascription expresses something (and if so, what), and analogously the process of determining whether an entity node has a referent, and if so, which. The interpretation of an ascription, however, depends on the interpretation of the nodes involved in it, and vice versa. This complicates the task of describing how such an interpretation should proceed. In general, the denotation of an entity node N is determined by the network of positive ascriptions in which it is embedded. Every diagram will consist of one or more such networks: to a first approximation, these are the sets of nodes in a diagram that are directly or indirectly linked to each other by way of connectors. (A completely unconnected node may still be said to form a ‘minimal’ network.) A positive ascription is simply any ascription that expresses a positive state of affairs; and a state of affairs is called ‘positive’ just in case it is not individuated by its being the contradictory of another state of affairs. To obtain all the positive ascriptions made in a diagram, one will have to add to the explicit ones all those that, though they do involve a node of the diagram, have been left implicit. These include certain exemplifications of transitive and reflexive relations, as well as ascriptions of obtainment involving implicit entity nodes (see below). N’s ‘ascription graph’ is then the set of positive ascriptions that involve any node of N’s network. (‘Graph’ must here be understood in a somewhat broader sense, since this set may of course also contain unary ascriptions.) Before we go on, a brief remark on the notion of a predicate. We often refer to predicates by expressions like, ‘the property of being R-related to x’, where ‘R’ is the name of some relation and ‘x’ the name of some entity. Call this property ‘P’. Now suppose that there is – contrary to the principle of the identity of indiscernibles – some other entity x′ that shares all its properties with x, even though ‘x’ may still be the name of only a single entity. The property of being R-related to x′ may then be called ‘P′’. One might think that P and P′ are two different properties. This, however, is not how properties (or any predicates, for that matter) are conceived of here. To put it as a slogan, names do not enter into the individuation of predicates. Instead, predicates are either primitive or individuated purely as constructs of other predicates by way of the usual logical operations (i.e., truth-functions, quantification, predicate application and abstraction). This will be relevant when, in the next paragraph, we are dealing with the properties of a certain hypothetical entity. To determine N’s denotation, we begin by supposing that its ascription graph is completely ‘realized’ as a set of corresponding states of affairs, such that every ascription of a predicate P is matched by an exemplification of P and every node by a corresponding entity. To have a name for the hypothetical entity that in this way (possibly) corresponds to N, let us call it ‘e’. Next, we assume that not only do all those states of affairs obtain, but that also, they include all the positive facts by which e is individuated. On the basis of this assumption, our ontological theory should then be able to tell us exactly which of e’s properties, whether positive or negative, are individuating. And in particular, it should be able to tell us whether the conjunction of all these individuating properties is also individuating. If it is, and only then, there exists an actual entity (according to our ontology) that is individuated by that conjunction – i.e., what we have here called ‘e’. Moreover, the conjunction will according to our ontology be maximally individuating. This follows from the premiss that the conjunction contains all (other) properties by which that entity is individuated. (If the entity were not maximally individuated by it, there would have to be another entity that also bears all the properties contained in the conjunction, but still differs from the first one by having some property P′. So ¬P′ would be another property by which e is individuated, in contradiction to the premiss.) But this maximal individuation is reasonably viewed as criterial for N’s having a denotation. For if we regard all the entities of which the said conjunction is true (and no others) as N’s referents, its referents will all be indiscernible from each other, and that is all one could hope to achieve in constructing a reference relation. Once the interpretation of a diagram’s entity nodes is complete, so will be the interpretation of its ascriptions. As may already be clear, every ascription expresses a state of affairs that is an exemplification of the ascribed predicate, such that this state of affairs involves exactly the same entities that are denoted by the nodes or contours which (in a different sense) are involved in the ascription itself. So far, Pasi does not have any inbuilt mechanism for denoting relationships of higher arity than two, and offers only a limited means for expressing them. By the latter, I simply mean the possibility to interpret a connector-node as denoting not a binary relationship, but the third relatum of a ternary one. But even this possibility is practicable only where there is no danger that the third relatum of one relationship might also be the third relatum of another one (where both are supposed to be expressed by single connectors). For, in such a case, the two ternary relationships could only be expressed by two connectors that cross each other so that they can have a common connector-node: which in general leads to ugly results. On the other hand, I have so far not come across any two ternary relationships that are both sufficiently fundamental to warrant their being expressed by single connectors and threaten to have common third relata. (Of course, since it is generally open to us to decide which relata should count as ‘first’, ‘second’ and ‘third’ – as long as we do this consistently across the different exemplifications of a given relation – this ‘threat’ only exists where, on any such renumbering, a third relatum of one relationship is also a third relatum of another.) So there seems to be, at least in this respect, no need to give up the pasigraphic ambition from which Pasi has its name. But in another respect, we at least have to increase the number of basic expressive devices available in Pasi: namely, by a new kind of connector-node. This results simply from the fact that some of our predicates are bona fide ternary relations, such as Abstraction and possibly Adjunction. Suppose that Adjunction is a ternary relation, and let it be abbreviated by the (unitalicized) letter ‘A’, so that ‘A(x, y, z)’ means that z is an adjunction of x to y (in addition, I am going to use ‘A(x, y, z)’ as a name for this relationship). The problem, then, is that we have so far no way of denoting this ternary relationship A(x, y, z) by an ontological diagram. As a solution, I would suggest that we allow for an additional kind of connector-node, to be used for all those connectors that express ternary relationships. This second connector-node would be concentric with the first one, but of considerably larger diameter, and drawn with a thinner line, as follows:
This ‘secondary connector-node’ is not yet supported by Pasi (so that one has to create it and take care of its placement oneself), but I hope that it will be some day. – One might ask whether there is no need for further connector-nodes in order to denote, e.g., the quaternary relationship between x, y, z and A(x, y, z); but in fact, that is not the case. For, just like one can in set-theoretical notation construct the quaternary predicate (λ w, x, y, z : w = A(x, y, z)), so one can use connectors for Identity and Abstraction to construct the very same predicate in an ontological diagram:
And, just as one would apply this predicate – which is here called ‘A+1’ – to a quadruple (a, b, c, d) by writing ‘A+1(a, b, c, d)’, so one could in the language of ontological diagrams use the Order relation to construct an analogous ‘quadruple’, and apply A+1 to it using a Predication connector:
The connector-node of the Predication arrow, here called ‘p’, denotes on the one hand a binary relationship between A+1 and a ‘quadruple’. But states of affairs do not necessarily have a fixed arity. Thus, p can just as well be seen as a relationship between A+1 and all the four members of that quadruple, or, indeed, as a quaternary relationship (of a certain ‘type’) between just those four members. The idea of implicit nodes and ascriptions poses a little ontological problem of its own, since these nodes and ascriptions do not take any visible form as symbol tokens or otherwise. So we could not properly say that they express anything, nor could we think of implicit ascriptions as modifications of a diagram. But instead, we suppose that they ‘could be made explicit’ and that, in such a case, they would take the form of explicit nodes and ascriptions. Ontologically speaking, then, they would have to be thought of simply as two further kinds of abstract objects. Nevertheless, they are relevant for the interpretation of a diagram. To say that a diagram ‘contains’ an implicit ascription is to say that the diagram expresses a state of affairs that would be expressed by that ascription if it were ‘made explicit’. In order to avoid an uncontrolled proliferation of implicit ascriptions, let us stipulate that a diagram cannot contain any implicit ascriptions that do not involve at least one of the diagram’s entity nodes. (An implicit ascription may be said to ‘involve’ a given entity node just in case it would involve that node if both it and the node were made explicit.) Still, the proliferation will easily be infinite, since implicit connectors have implicit connector-nodes, which count as ‘nodes of the diagram’ just like explicit ones. These implicit nodes may then be involved in further implicit ascriptions, which again have their own connector-nodes, and so on. Both primary and secondary connector-nodes may be left implicit. They will then of course not be able to be involved in explicit ascriptions, but they may be involved in implicit ascriptions (see below). Where their denotation is already determined by the fact that they are the (primary or secondary, as applicable) connector-node of such-and-such a connector, they will also denote the same entities as if they were made explicit. Where this is not the case, they are to be interpreted as ‘some entity’: i.e., the implicit ascriptions in which they may be involved will have to be read as existentially quantified. E.g., if the primary connector-node of an Adjunction arrow is left implicit, the implicit obtainment ascription involving this node will read: ‘some adjunction between such-and-such entities obtains’. Suppose that T is the ontological theory that provides the context in which the diagram in question is to be interpreted; further, that P1, …, Pn are T’s basic predicates; and finally, that R is a binary relation. Then there are three cases, as follows:
All other states of affairs that are meant to be expressed by an ontological diagram have to be expressed by explicit ascriptions. The following sub-sections describe in loose order several of Pasi’s features that are not directly related to ontological diagrams. The information presented here is meant to supplement the section on Basic Usage on the homepage. One of the controls in a contour node’s editor pane is a checkbox with the label Fixed angles. Selecting it will give rise to two axes running through the center of the node’s contour, and enable two further controls that allow the user to adjust the angles of these axes. The axes will disappear again once the primarily selected item is (through a change of selection) no longer a node of that contour. As long as a contour’s fixed-angles feature is left deactivated, that contour’s nodes can be dragged around the canvas without affecting the location of any unselected nodes (for ways to change the selection, see Selection and Grouping). This allows for a wide variety of shapes to be created, but it is often desirable that at least the angles between successive line segments should stay constant. This is achieved by setting the fixed-angles property. When it is set, dragging one node will also cause other nodes to be moved with it, either in the same direction as it, or parallel to one of the axes. In this way, as many additional nodes will be moved as is necessary to keep the angles between successive segments (approximately) constant. As a result, it is possible to increase or decrease the height and width of a ‘default contour’ by dragging a single node, while the curvature of its corners remains unchanged. In addition, the two axes can be adjusted independently of each other, so that even the sides of a tilted parallelogram can be lengthened or shortened in this way. Under certain conditions, the angles between successive line segments may not stay completely constant, even if the fixed-angles property is set. This is due to the fact that Pasi has a certain tolerance (viz., of slightly more than 5 degrees in either direction) for vectors that are not fully parallel to either contour axis. Whenever one contour node is moved in parallel with one of these axes, and the distance vector between that node and the next (either the first node’s successor or predecessor) is ‘sufficiently parallel’ to this axis, that next node will not be moved with it. (Hence the lengthening or shortening of the contour’s sides.) If that distance vector is at the beginning not fully parallel to the axis and thus neither to the movement of the first node, it will at the end of the movement not have quite the same orientation as before (imagine a stone landing next to a spot in relation to which it was a moment ago ‘almost above’). This can in particular lead to the result that the distance vector will no longer count as ‘sufficiently parallel’ to the axis in question, so that the second node, instead of being left in place, will begin to be moved together with the first node. To ‘unlock’ their movements in such a case, one may re-adjust that axis so that it again becomes sufficiently parallel to the changed distance vector. Groups can consist of one or more entity nodes, contour nodes, ornaments, and even of other groups (as long as this does not result in circularity: if a group already directly or indirectly contains another group, it cannot itself become a member of the latter). There are two kinds of groups: standard groups and contour node groups. Only contour nodes can be members of contour node groups, and only these can have contour nodes as members. The Create Group button in the Groups tab on the other hand, and correspondingly the grouping (G) key, only serve to create standard groups. New contour node groups come into existence only through the creation of new contours. If a given item is a member of some group, it can be either an active or a passive member. The transition between these two states is effected by the Leave Group and Rejoin buttons in the Groups tab, or by the corresponding key commands L and J. As long as something is a passive member of its group, it behaves exactly as if it were no member of it at all, except for the possibility of ‘rejoining’ it. (The term ‘reactivation of membership’ would be more accurate here, but also less convenient.) If a new group is created, all its members are initially active. A crucial concept both for selection and the management of group membership is that of ‘highest active group’. For any given item, its highest active group is the highest-level group, if it exists, that is connected with that item by an unbroken chain of active membership relations. If the user clicks on an item, all those items that are directly or indirectly active members of the first item’s highest active group will be selected along with it. Similarly, the concept of highest active group helps to clarify the function of the four middle buttons of the Groups tab. Let H be the highest active group (if it exists) of the primarily selected item P. If H contains P directly, the Leave Group button deactivates P’s membership in H. However, if H contains P only indirectly, the to-be-deactivated membership is that of G in H, where G is that group that is directly contained in H and directly or indirectly contains P. Once this is clear, the functioning of the other buttons can be explained fairly easily. The Rejoin button reactivates the membership that has last been deactivated by the Leave Group button or the corresponding key command; the Dissolve button deactivates the memberships of all the directly contained members of H; and the Restore button reactivates them. An exception, however, is the case where a passive member of one group has been added to another, either by a Create Group command or in the way described in the next paragraph. For that member will then no longer be a member of that former group at all, and the memberships to be reactivated by Rejoin or Restore will concern only the new group. New members can be added to an already existing group by using the Add... toggle button. If it is pressed, clicking on items on the canvas will add the highest active groups of these items as members to the highest active group of the primarily selected item. This behavior can be modified in two ways. First, if the user clicks on the respective items while holding the control key pressed, only the items themselves will be added to that group. Second, if the All members box is checked, clicking on a node will add all the direct members (active or not) of its highest active group. In this way, it is for example possible to merge two contours into one: With a contour node as a primarily selected item and the All members box checked, clicking on one of another contour’s nodes will add all of them to the contour of the primarily selected node, leaving their order and geometrical parameters unchanged. Their positions in the first contour’s node list will lie between the primarily selected node and its successor. Everything that can be selected, except for locations on the canvas, can also be copied. Copying is effected by either pressing the multi-purpose button in the upper half of the interface (below the Create button), or by pressing the C key. The former can have each of the following labels: Copy Selection, Copy Label, Copy Ornament, Copy Connector, and Combine Connectors. Evidently, only the last one of these does not have to do with copying; it will appear only if the selection contains two or more connectors running between the same two entity nodes. The other labels appear accordingly as the first copyable element of the selection is, respectively: a node (either entity or contour, but with the exception of connector-nodes); a label; some other kind of ornament; or a connector-node, in which case the to-be-copied item is understood to be the connector itself. In the first case, copying a node has no further prerequisites, and so the button will be enabled as soon as a node becomes the first copyable element of the selection. Copying a label, ornament, or connector, however, means to copy the respective item to one or more other entity nodes, or pairs thereof, which in turn means that these have to be added to the selection before the copying can take place. So, for copying a label or ornament, one will have to add at least one entity node to the selection; the label or ornament will then be copied to each of the selected entity nodes. For copying a connector, at least two entity nodes have to be added. For each consecutive pair of additional entity nodes in the selection, new connectors with the same characteristics as the original will then be established between the respective elements of these pairs. Thus, if the selection after the third-relatum node of the to-be-copied connector contains four entity nodes, the new connectors will be created between the first and the second and between the third and the fourth of these nodes. Unlike other drawing programs, Pasi puts all created copies directly onto the canvas, and automatically selects them. The initial placement of the copies can be controlled by adjusting the values of horizontal and vertical Copy Displacement in the editor pane of the canvas (which opens whenever the user clicks on some unoccupied location). If a connector is copied, its third-relatum node will be copied with it. If an entity node is copied, then so will its labels and other ornaments, and copies of the original node’s connectors to other nodes will be created between the copy and those other nodes. If two or more entity nodes are copied together and there are connectors between them, then copies of these will be created between the copies of the nodes, so that the latter will be connected with each other in the same way as the original nodes. Slightly different rules apply to the copying of contour nodes. If all the nodes of a contour are copied together, the result will simply be a copy of the contour. However, if only a subset of a contour’s nodes are selected before copying, the new contour will also contain a copy of every unselected node that is adjacent to (i.e., successor or predecessor of) at least one selected node. These latter copies are not subject to copy displacement, i.e., they will occupy the same locations as the original nodes. Moreover, adjacent copies of unselected nodes will initially have no connecting lines. Thus, if one first selects the two top corners of a hexagon and then presses the C key five times in a row with a copy displacement of 0 horizontally and 10 vertically, the outcome will be as shown below. Note that the diagram contains only one hexagon; the other five shapes are trapezoids with their base lines omitted.
Whenever a contour node is copied, its copy will be a member of a new contour node group. This is not so for members of standard groups (i.e., entity nodes, ornaments, and both contour node and standard groups). When a member of a standard group is copied, only the groups up to its highest active group are copied with it (in such a way that, if two members of the same group are copied together, their copies will be likewise be members of the same group). If a certain item is only a passive member of its group, the latter will also contain the copy of that member. Moreover, and again unlike contour node groups, standard groups can overlap. If an entity node is selected that is an active member of a standard group while another member of that group is left unselected, copying will result in a new group that contains both the unselected member and a copy of the selected node. Still, the new group will not be a group ‘of’ that unselected member, at least not for the purpose of determining its highest active group, and thus neither for the purpose of selection. Every node and every group can ‘have’ only one group, even though many groups may have that node or group as their direct member. Using the controls of the Transform tab or the corresponding keyboard commands, all diagram elements can be subjected to geometrical transformations, in particular: scaling, rotation, and horizontal or vertical flips. In addition, these transformations allow for various options, in particular: Scale arrow heads, Scale entity nodes, Scale line widths (which, in fact, is to mean: ‘Scale line widths and dash patters’), and Flip arrow heads. Each of the mentioned transformations is performed with respect to a reference point that, by default, lies in the center of the primarily selected item (or, if there is no primarily selected item, in the center of the canvas). However, if the last element in the selection is a location on the canvas, the reference point will lie there instead. In addition, the reference point is the center of rotations as well as the focal point of scaling transformations. Selected nodes will uniformly move away from it as the scaling factor increases, and move toward it as the factor decreases. Finally, it is the point where the axes for horizontal and vertical flips meet. Pasi’s snapping feature allows for an easier alignment of nodes and contour centers, and also makes it easier to select contour centers as reference points for geometrical transformations. There are three different snapping modes, characterized by their respective snapping points – i.e., the points that ‘something can snap to’. These are (1) points arranged on a grid, (2) the centers of contour nodes, and (3) the centers of contours themselves, computed as the average locations of the respective node groups. The grid of points can be adjusted in the canvas’ editor pane, with respect both to width and offset. This editor pane (which can be opened by selecting any unoccupied location) is also the place where the other two modes can be switched on and off. All three snapping modes come into effect on two different sorts of occasion: first, when selecting a location on the canvas, and second, when dragging a selected node to a new location. Clicking on any unoccupied location will result in the selection of either the nearest point on the mentioned grid, or the nearest contour node or center, provided that the respective snapping mode is activated and the node or center in question lies either (a) closer to the clicked-on point than the nearest point of the grid, or (b) within a radius of, respectively, ten or twenty pixels. The same principle applies to dragging, except for two complications. First, the question of ‘what snaps’ is slightly less straightforward than in the case of point-selection. Dragging can take place only if the primarily selected item is either an entity node or a contour node. In the first case, where the primarily selected item is an entity node, what will snap to the nearest possible snapping point is always the center of that node. In the second case, however, the center of the primarily selected contour node will snap only to points of the grid and the centers of other contour nodes. What snaps to contour centers – provided the corresponding snapping mode is activated – will in this case instead be the center of the primarily selected node’s contour. The second complication consists in the fact that the set of snapping points may be somewhat smaller in the case of dragging, in order to avoid erratic behavior. In particular, where a point would otherwise be included in that set if only it were the center of some contour node, this will no longer hold if that node is itself undergoing dragging. And, with respect to the third mode: where a point would otherwise be included if only it were the center of some contour, this will no longer hold if that contour contains any nodes that are at that time being dragged. As mentioned on the homepage, Pasi’s ‘auto-flexing’ feature involves the automatic adjustment of a connector’s contact points on the peripheries of the connected nodes as the latter are moved closer together. This mechanism also extends, however, to the contact points of ornaments. As a result, not only the start and end points of connectors, but the contact points of ornaments as well, are automatically placed so as not to come too close to each other on the periphery of an entity node. This mechanism is controlled by several parameters. The two most important ones are the turning direction and the priority associated with each ornament and connector. The turning direction, which can be either clockwise or counter-clockwise, is the direction in which the end point of a connector is normally moved around the periphery of an entity node when the two connected nodes are moved too close together. It is also the direction in which the contact points of ornaments are moved in order to give way to the contact point of some other ornament or connector of higher priority. This priority (the second one of the parameters just mentioned) is adjusted by the topmost control on the editor pane for the ornament or connector in question. Each ornament or connector is given a lower priority in the order in which they are created. Thus, the first ornament or connector created during a given session receives a value of 1, the next one a value of 2, and so on. If desired, intermediate values can be set by hand, using the mentioned control. When a flipping transformation is performed, it should be kept in mind that the turning direction associated with the affected items is changed, with each successive flip, from clockwise to counter-clockwise and vice versa. The editor panes of all items that are drawn by using lines (which excludes only labels) contain controls for one or more line patterns. The expected input of such a control is a list of numbers that alternatingly indicate the lengths for which the corresponding line should be opaque or transparent, respectively. For example, the input “5 7” means that the line will be alternatingly opaque and transparent for, respectively, five and seven pixels. In general, any list will have the same effect as its concatenation with itself, so that “5” will have the same effect as “5 5”, “2 2 5” the same as “2 2 5 2 2 5”, etc. All line segments have rounded ends, which reach into the pattern’s transparent portions as far as half the specified line width. As a result, an opaque segment whose length is specified as zero will appear as a round dot with a diameter equal to the line width. The following example illustrates three different line patterns. The pattern used for the nodes is specified by “5 3.1” (or “5 3,1” on, for instance, French or German platforms), that of the arrow line by “2 2 5”, and the line pattern of the arrow head by “0 2”.
When there is time, I hope to add support for secondary connector-nodes and rotated text, and make it possible to select nodes by drawing a box around them. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||