Jump to content

Talk:Actor model and process calculi

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by CarlHewitt (talk | contribs) at 07:54, 21 December 2005 (Evidence presented by [[User:Allan McInnes|Allan McInnes]]). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Hey Carl, truly love your work; but any reason why you don't want to link directly to copies of the citations themselves? Or, unless you've got a homepage hosting all of your papers, like Henry Baker does... I'm still looking for a copy of Laws for Communicating Parallel Processes. -- zuzu

Needs rewrite?

I think that it's valuable to compare and contrast Actors and process calculi, but there seems to be a lot lacking here. For example, the article goes to great lengths to demonstrate how the Actor model can represent channel-based communications, but does not discuss at all how Actor address-based communications can be modelled in process calculi. Nor does it describe what the real difference is between name-based &pi-calculus communications and address-based communications. It is, of course, difficult to really do this justice, since process calculi is a broad term for a variety of computational models, whereas the Actors model is one particular type. It would be useful to have the article structured in terms of similarities (of which there are many), and differences.--Allan McInnes 17:45, 7 December 2005 (UTC)[reply]

Dear Allan,
Thanks for your suggestions. The article originaly got started because an editor asked for a comparison between Actors and the process calculi. Structuring in terms of similarities and differences is reasonable. Any ideas how we can do this?
Regards, --Carl Hewitt 22:43, 7 December 2005 (UTC)[reply]

We might also consider retitling the article as something like Models of Concurrency, and then reorienting the article itself to a more NPOV, i.e. briefly describe the similarities and differences between the various approaches for modelling concurrency that are out there. As it stands right now, this article looks a lot like “Actors model vs. everything else”.--Allan McInnes 17:49, 7 December 2005 (UTC)[reply]

It seems to me that there is a whole article on Actor model and process calculi in its own right for a variety of reasons not the least of which is the space required to cover the subject matter. This is not to say that we should not also' have an article Models of concurrency that also covers Petri nets, SMPs, Web Services, etc. Regards,--Carl Hewitt 22:48, 7 December 2005 (UTC)[reply]
I'm not sure that I see the need to arbitrarily restrict the comparison to that subset of concurrency models known as process calculi, given the wide diversity of formal systems (synchronous, asynchronous, stochastic, mobile, etc.) that fall under that heading. At this point, the majority of the space in the Actor model and process calculi article is taken up by
  1. a description of how to emulate some process calculus communication styles in the Actor model
  2. a discussion of specific implementations that, while inspired by process calculi, are not actually process calculi themselves
  3. an excessively long reference list
It seems to me that if those were trimmed down there'd be plenty of room for a (brief) discussion of other concurrency models. This is after all supposed to be an encyclopaedia article (i.e. an overview of the subject matter), not a detailed journal-style article.--Allan McInnes 00:14, 8 December 2005 (UTC)[reply]
Being inclusive, in the Wikipedia process articles naturally tend to expand instead of contract. After articles become too large to expand, they then tend to divide into sub-articles. Such is the Wikipedia way of reporting on published knowledge. Eventually this article will probably divide into sub-articles focused on the synchronous, asynchronous, ambient, stochastic, migratory, etc. process calculi. There is not going to be room in this article for comparisons with Petri nets, SMPs, Web Services, etc. Also as the published literature goes up, the references naturally go up. However, as an article divides into sub-articles, the reference lists also naturally divide.
It would be good to report on the published literature on how communication mechanisms of the Actor model can be defined in the various process calculi.
It is going to be difficult to distinguish between the process calculi and programming languages based on process calculi.
Regards, --Carl Hewitt 01:53, 8 December 2005 (UTC)[reply]
  • I have no doubt that this article will eventually sub-divide, should it become expanded. I am simply concerned that the focus of this article is, at present “Actor model vs. process calculi”, which seems to be a case of comparing the specific to the general. My suggestion is that the article become a more general comparison of a variety of models, and thus present more of a NPOV.
Suggestions how to do this are most welcome.--Carl Hewitt 02:47, 8 December 2005 (UTC)[reply]
  • Regarding reference lists, I think that there is a difference between citing one or two relevant sources, and providing a large bibliography composed mostly of tangentially related material (which just clutters up the page). References that are directly relevant to the article at hand (e.g. Montanari and Talcott) are fine, but I think that the bulk of the reference list could probably be replaced with a couple of pointers to the articles for the Actor model and the specific process calculi involved. That is, of course, just my opinion. I don't particularly want to get into an edit war over this, so if you don't concur then I will leave the reference list as is for now.
This is a reasonable suggestion.
However, there are references and comparisons between Actors and the process calculi throughout the literature.
Also, someday a history section of this article will need to be written and the references will be needed.
Regards--Carl Hewitt 07:43, 8 December 2005 (UTC)[reply]
Yes, there are references to Actors and process calculi throughout the literature. That doesn't mean that every possible reference needs to be listed here. This is not a bibliographic database. --Allan McInnes 06:05, 9 December 2005 (UTC)[reply]
I am particularly concerned about the history of the relationship between the Actor model and process calculi. So references that are relevant to that historical relationship belong here. In that regard, it is reasonable to look to see if the current list can be trimmed. I agree with you that all the references to Actors and process calculi throughout the literature on concurrency do not belong here. You are correct that there are far too many and it is not appropriate.--Carl Hewitt 06:59, 9 December 2005 (UTC)[reply]
Thank you. I think that leaving references relevent to the historical relationship sounds like a reasonable compromise. --Allan McInnes 08:36, 9 December 2005 (UTC)[reply]
I am glad that we could work this out. If our tools were better, we could probably make progress a lot faster;-) Cheers,--Carl Hewitt 10:19, 9 December 2005 (UTC)[reply]
  • I don't see why it is difficult to separate process calculi from the languages they inspire. It's easy enough to separate the λ-calculus from, say, Haskell. There are many concerns relevant to programming languages that are irrelevant to models, and vice versa.
In some ways it is natural to treat programming languages like Pict and the Join-calculus as variants of process-calculi.--Carl Hewitt 02:47, 8 December 2005 (UTC)[reply]
--Allan McInnes 02:19, 8 December 2005 (UTC)[reply]
Also I would like to thank you for your edits to the article. They have improved it a lot. Regards,--Carl Hewitt 03:03, 8 December 2005 (UTC)[reply]
Additionally, I think that it would be helpful if we drew a distinction between models of concurrency (i.e. abstractions that permit reasoning about concurrent systems in general) such as the Actor model, Petri nets, process calculi, etc., and implementations of concurrency (i.e. specific types of concurrent systems that perform a specific function), such as SMPs, and Web Services. --Allan McInnes 01:58, 8 December 2005 (UTC)[reply]
It turns out that others have different ideas. They treat SMPs and Web Services as models of computation in their own right.--Carl Hewitt 02:47, 8 December 2005 (UTC)[reply]

Reversion to previous version

Allan,

Modifications of the magnitude that you made in the article should first be discussed in the talk page. So I propose to revert your edit.

Then we can discuss your proposed changes.

Sincerely,--Carl Hewitt 19:49, 15 December 2005 (UTC)[reply]

Carl,
I believe that the modifications I have made were either previously discussed (elimination of unnecessary references, removal of detailed discussion of emulating channels in the Actor model), or required to create an NPOV. IMHO,the earlier version of the article was heavily tilted towards presenting lots of detail about the Actor model, and out-of-date information about the process calculi. I believe the new version is more concise, more balanced, and better focused. It is, of course, your prerogative to revert the edits I have made if you do not agree with me. --Allan McInnes 20:11, 15 December 2005 (UTC)[reply]
Alan,
From your background and POV, I can understand where you are coming from. However suppressing information that does not correspond with your POV is not the way to go. You have simply deleted information that does not correspond with your POV. So I have reverted.
Meanwhile, since there have been no objections, I have created Actor model and process calculi history and placed one of your contributions there.
Please see what you think.
Regards,--Carl Hewitt 23:54, 15 December 2005 (UTC)[reply]
Carl,
I am not sure exactly what you think is being “suppressed”. My edits retained information on the fundamental difference between Actors and process calculi (i.e. inspiration and motivation - including a direct reference to an article by Milner that describes this difference), as well as discussion of the historical differences related to channels, asynchrony, dynamic topology). Granted, it compressed the discussion of these things, because I felt the level of detail that was previously there was unnecessary (it was mostly devoted to showing the Actors model could represent channels - hardly NPOV as it stood, since it didn't mention the converse capabilities [as e.g. Agha does], and contained far more detail than is really suitable for an encyclopaedia article). I added information on more modern variants of process calculi that either do not use channels, are asynchronous, provide migration, or permit dynamic topologies. I removed discussion of denotational semantics since it didn't seem directly relevant to the discussion of process calculi (many of which don't have a denotational semantics at all). Upon review I see that this also resulted in the inadvertent removal of mention of Montanari & Talcott's work, which should not have happened.
Regarding your new article on the history of Actors and process calculi: I personally believe that it is not an appropriate article for an encyclopaedia, because it again delves into far more detail than is necessary. However, you are of course free to create any article you want. Such is the nature of Wikipedia.
--Allan McInnes 23:28, 16 December 2005 (UTC)[reply]
Allan,
You have romoved the discussion of how channels work. Such removal is hardly NPOV so I will restore it. Of course further discussion in this area is welcome.
It is the nature of the growth of the Wikipedia to increase reporting on published literature, not to decrease it.
Regards, --Carl Hewitt 03:36, 18 December 2005 (UTC)[reply]
Carl,
I removed a detailed discussion of how to simulate channels in the Actors model. That is hardly the same as a neutral “discussion of how channels work”. Since you have now reverted to the previous version, this discussion seems moot. --Allan McInnes 18:27, 20 December 2005 (UTC)[reply]
Carl,
You have expressed concerns about suppression of view-points. Why then have you:
  1. Eliminated mention of the fact that many process calculi don't have denotational semnatics, and of those that do, at least some (modern CSP) provide unbounded nondeterminism.
  2. Eliminated any mention of asynchronous communications in process calculi in general, and reduced mention of the asynchronous π-calculus to being a basis for an Actor algbra
  3. Eliminated mention of the dynamic topology capabilities in standard π-calculus
  4. Eliminated discussion of migration capabilities in process calculi, except as an aside about confusion in terminology.
These things do constitute suppression of information, and do not provide a neutral point of view. --Allan McInnes 19:50, 20 December 2005 (UTC)[reply]

Carl,

Modifications of the magnitude that you made in the article should first be discussed in the talk page. So I propose to revert your edit.

Then we can discuss your proposed changes. --Allan McInnes 19:56, 20 December 2005 (UTC)[reply]

History

I propose to start a new article Actor model and process calculi history

What do people think? Thanks,--Carl Hewitt 19:54, 15 December 2005 (UTC)[reply]

I think the article is quite useful. In general I've found detailed historical background of immense value in my programming career--it's always helpful to understand why various decisions were made and the thinking processes involved, and "those who forget the past are condemned to repeat it". But Allan's point is also valid, it's not an article one would find in a traditional encyclopedia. Is this a bad thing?
I don't believe so. Many of the limitations found in traditional encyclopedias were for economic or practical reasons, not because the information wouldn't be useful; Wikipedia doesn't share these concerns, and this sort of thing is a large part of what could make Wikipedia a superior product. But I'm not the arbiter for what goes in Wikipedia, and I claim complete ignorance of Wikipedia style in general.
I'm in favor of this level of detail, but it definitely should be kept separate from main articles. Speaking as a user I prefer to see small overview articles which link to more specific articles on subtopics. That way I don't have to read it, but it's there for me to peruse as needed or at my leisure.
The recent changes to Actor model were very positive. I might suggest going even further and moving more of the text (example: "Models prior to the Actor model" and "Message Passing Semantics") to other article(s) as appropriate. If I'm looking for a quick overview of the Actor model I'm much more likely to be interested in "Why is the Actor model important now?" than those other two sections--too much detail, even though it's useful and interesting in its own right. 12.103.251.203 09:05, 17 December 2005 (UTC)[reply]
I agree that the Wikipedia has room for more content than a traditional encyclopaedia. However, there seems little sense in trying to put everything into the Wikipedia. There are plenty of other forums that are more appropriate for detailed discourses on a specific topic (Wikibooks being an obvious one). There's no reason that Wikipedia articles can't link to those other resources (as many already do). The Wikipedia itself makes a good overview reference. It doesn't need to subsume the entire web. --Allan McInnes 18:35, 20 December 2005 (UTC)[reply]

Not metaphysical

I don't know of any references in the literature to the laws of the process calculi being metaphysical so I have removed the reference.--Carl Hewitt 05:55, 18 December 2005 (UTC)[reply]

Discussion with Allan McInnes from arbitration

Moved from arbitration page

The arbitration pages of the Wikipedia do not allow discussion of content disputes because that is not their purpose.

Consequently, I have copied the content disputes of Allan McInnes to this page so that they can be properly discussed.

It is worth noting that Allan McInnes is a Ph.D. Candidate in Electrical and Computer Engineering at Utah State University who has a definite point of view on concurrency in general and Communicating Sequential Processes (CSP) in particular as exhibited by authoring the following paper:

  • "Design and Implementation of a Proof-of-Concept MMORPG Using CSP and occam-π", Proceedings of the 2005 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'05), Jun. 27-30, 2005.

Regards, --Carl Hewitt 07:07, 21 December 2005 (UTC)[reply]

Evidence presented by Allan McInnes

My initial interactions with Carl Hewitt arose from following links that he had inserted into articles about process calculi. We have since “sparred” (that seems the only appropriate term) on a number of occassions over the quality and quantity of information that Carl puts into his articles. Our interactions have not all been negative: I have worked hard to improve the structure and quality of the articles in question, both through suggesting changes, and by making changes myself [1], and I believe that Carl appreciates at least some of this work (see [2]).

My principal concern is that Carl seems to be attempting to subvert the Wikipedia to push his POV on his theory of concurrency (the Actor model) and to promote that theory. This subversion takes subtle forms:

  • Carl generally presents only his view of a “controversy” (his term for different choices made by different theories, often with different goals in mind), in great detail, and usually gives himself the last word (e.g. [3], [4], )
It would seem to me that no one has the last word on the Wikipedia which is both a blessing and a curse depending on circumstances. It is always open to new material by those who stay engaged. At every opportunity, I urge my colleagues to contribute to the Wikipedia and I discuss my contributions with them to improve the articles.
So the process is to make some specific suggestions and contributions improvement and take it from there.
Regards, --Carl Hewitt 06:57, 21 December 2005 (UTC)[reply]
  • Where comparisons are drawn with other theories they often refer to out-of-date versions, some over 20 years old, without making it clear that more modern theories with the same name exist (for example, compare Carl's original text [5] with the version to which I added some more up-to-date information [6])
The Wikipedia cannot deny that both the Actor model and the process calculi have a history that goes back some time. At the same time, we don't want history to distract us from the presentation of subject matter. In many cases we have addressed the issue of incorporating substantial historical information into a companion article when it grew distracting. For example this was the genesis of the articles Actor model history and Actor model and process calculi history. It may well be that we need to start a new article Unbounded nondeterminism history to address Allan's concern expressed above since there is still a great deal more material that needs to be incorporated into the article on Unbounded nondeterminism.
In the specific case cited by Allan above, he added more material to the article Unbounded nondeterminism reporting on subsequent developments in CSP, which I welcomed. Note that his addition did not invalidate anything that I had previously contributed. Also the previous material helps to make clear part of the rationale for the subsequent developments which he reported.
Regards, --Carl Hewitt 07:28, 21 December 2005 (UTC)[reply]
  • Information about more modern theories is removed or reduced (e.g. [7],
The effect of the above edit was to introduce the following material:
Note that there is a potential confusion in that the the original literature on process calculi used the term mobility to mean the ability to change the topology of communication whereas later mobility is sometimes use to mean migration. E.g., process calculi such as the higher-order π-calculus used mobility to mean change in topology whereas the mobile ambients use mobility to mean migration.
also the following sentence was removed because it is confusing in the light of the above discussion
Other process calculi can model agent migration by moving the channel ends that represent access to an agent.
Regards, --Carl Hewitt 07:53, 21 December 2005 (UTC)[reply]

[8]),

The effect of the above edit was to introduce the following sentence:
The Join-calculus programming language (published in 1996) implemented local and distributed concurrent computations. It incorporated asynchronous channels as well as a kind of synchronous channel that is used for procedure calls.
which was already followed by the following sentence:
Agha's Aπ Actor calculus Template:Ref harvard is based on a typed version of the asynchronous π-calculus.
The upshot is that asynchronous π-calculus was mentioned twice in the article before I peformed my edit. Afterwards it was only mentioned once. Of course the presentation of the material could be further improved.
Regards, --Carl Hewitt 07:53, 21 December 2005 (UTC)[reply]

while up-to-date (and even as yet unpublished [9]) versions of his own theory are presented (e.g. [10], [11])

  • Despite his contention that “It is important to distinguish between the abtract Actor model mathematical theory and various uses and implementations” [12], Carl insists on conflating theory and implementation when discussing competing theories (e.g. [13], [14]).
  • Subtle choices of wording and presentation imply that Carl's Actor model is “better” than other competing theories (e.g. [15], [16])
  • Correct information is deleted if it contradicts Carl's prejudices (e.g. [17] - note that a reading of Cardelli's original paper on mobile ambients makes it clear that the ambient calculus does not use channels for communications [although it can model them])
  • Tenuous connections are drawn with other technologies that, while not obviously related to the Actor model (and often following a contradictory philosophy [18]), are currently popular [19]. References describing these connections are not provided, despite repeated requests [20].

Carl is generally unwilling to take part in any significant discussion on these issues. When questioned he tends to give evasive answers, or avoid answering the question altogether (see Talk:Process calculi, Talk:Actor model and process calculi, Talk:Actor model for examples).

The specific chronological evidence that I would like to present revolves around the Actor model and process calculi article, since that is where Carl and I have had the most significant interaction. It is just one instance of a larger pattern that I have observed in Carl's behavior on Wikipedia. There are a number of other articles that I have concerns about from a POV perspective, but have not had the time or energy to tackle as yet. Other articles about which I have concerns are covered in the evidence given by others on this page.

Actor model and process calculi

  • 2005-12-07 10:27:32 -- I begin work on the article, editing the leader to provide a more neutral POV [22]
  • 2005-12-07 10:45:40 -- I place a couple of comments on the discussion page asking about a rewrite to further improve the neutrality of the POV. [23],

[24]

  • 2005-12-07 15:48:46 -- Carl responds somewhat evasively [25]
  • 2005-12-07 17:14:32 -- Trying to take Carl's evasion seriously, I suggest some ways that the article might be tigtened up to provide room for the discussions that would allow a more neutral POV. [26]
  • 2005-12-07 18:53:38 -- Carl again evades the question, and instead makes claims about the nature of Wikipedia articles in general (but does not directly object to the suggested changes) [27]
  • 2005-12-09 03:19:38 -- The discussion terminates relatively amicably, with an agreement to trim the reference list, and no arguments against the other suggested changes [28]
  • 2005-12-15 12:37:48 -- I undertake a near-complete rewrite of the article to improve the neutrality of the POV, and add direct references on matters of opinion [29]
  • 2005-12-15 12:49:09 -- Carl objects to the rewrite on the discussion page, claiming the revisions are too major for change without discussion [30]. More discussion ensues (and I point out that the changes I have made were already discussed) [31]
  • 2005-12-15 15:35:26 -- Carl reverts my rewrite [32]
  • 2005-12-16 17:55:23 -- I again attempt to moderate the viewpoint of the article and trim down excessive references, this time working within the existing structure of the article [33]
  • 2005-12-17 20:22:59 - 2005-12-19 23:46:29 -- Carl makes some 150+ edits, in the process reverting my attempts at moderating the POV, adding even greater amounts of irrelevant detail, and removing or minimizing information that conflicts with his POV [34]