''Programming_ConcurrentConstraint_DataCentric_MultiAgent_DistributedGrammar_NotLogic_IllustrationsAndUserStories'' ThinkingOutLoud.DonaldNoyes.20101103-20101104 and beyond ---- This is a marker page which will deal with two items from ArtifactOrientedProgramming * How does it differ from ObjectOrientedProgramming (which I strongly suspect this is a variant of)? ** I must admit ... until ... objective processing *** Sorry, you've lost me. Could you provide some simple worked examples? * Not quite sure what you are getting at here. ** [It sounds like some sort of data-centric programming, possibly related to concurrent constraint or publish subscribe. Multi-agent and distributed grammar systems might be a close match. I'd like to see some UserStories for this idea - i.e. a story to distinguish it from OO, and another to distinguish it from LogicProgramming, etc.] ---- Definitions_Basis * UserStories ** User stories (adapted from WikiPedia article ) *** are written by the customers for a software project and are their main instrument influencing the development of the software. *** are a quick way of handling customer requirements without having to elaborate vast formalized requirements *** are documents which are not overloaded with the administrative tasks related to software development *** intend to able to respond faster and with less overhead to rapidly changing real-world requirements. * Programming_ConcurrentConstraint ** Vijay A. Saraswat, Xerox PARC and Martin Rinard, Stanford University ***''in constraint programming the store is itself a constraint, a set of valuations which provides partial information about the possible values for the given variables. The basic operations an agent may execute are Ask (instead of read), which checks whether or not the store entails a given constraint (that is, whether every valuation permitted by the store is permitted by the constraint), and Tell (instead of write), which adds a given constraint to the store, provided that the resultant store is consistent (that is, permits at least one valuation.'' **** quoted from http://people.csail.mit.edu/rinard/paper/popl90.pdf... * Programming_DataCentric ** Peter Alvaro, Tyson Condie, Neil Conway, Khaled Elmeleegy, Joseph M. Hellerstein, and Russell C Sears *** ''most of the non-trivial logic involves managing various forms of asynchronously-updated state — sessions, protocols, storage— rather than intricate, uninterrupted sequences of operations in memory.'' **** quoted from http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-98.pdf * Programming_MultiAgent ** Alberto Finzi1, and Thomas Lukasiewicz *** ''a control program is specified through a language based on high-level actions as primitives. Another way is the planning approach, where goals or reward functions are specified and the agent is given a planning ability to achieve a goal or to maximize a reward function.'' **** quoted from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.93.8404&rep=rep1&type=pdf Programming Goals * ObjectOrientedProgramming Programming_ObjectOriented ** Source: Webopedia *** ''A type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another.'' **** quoted from http://www.webopedia.com/TERM/O/object_oriented_programming_OOP.html * LogicProgramming Programming_Logic ** Frank Pfenning, August 29, 2006, Carnegie-Mellon University *** ''.. first observation is that computation can be seen as a limited form of deduction because it establishes theorems. For example, 15 + 26 = 41 is both the result of a computation, and a theorem of arithmetic. Conversely, deduction can be considered a form of computation if we fix a strategy for proof search, removing the guesswork (and the possibility of employing ingenuity) from the deductive process. This latter idea is the foundation of logic programming. Logic program computation proceeds by proof search according to a fixed strategy. By knowing what this strategy is, we can implement particular algorithms in logic, and execute the algorithms by proof search.'' **** quoted from http://www.cs.cmu.edu/~fp/courses/lp/lectures/lp-all.pdf * PublishSubscribeModel Model_PublishSubscribe ** Source: Oracle9i Application Developer's Guide - Fundamentals *** ''Applications that communicate through a publish and subscribe paradigm require the sending applications (publishers) to publish messages without explicitly specifying recipients or having knowledge of intended recipients. Similarly, receiving applications (subscribers) must receive only those messages that the subscriber has registered an interest in. This decoupling between senders and recipients is usually accomplished by an intervening entity between the publisher and the subscriber, which serves as a level of indirection. This intervening entity is a queue that represents a subject or channel.'' **** quoted from http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96590/adg15pub.htm * DistributedGrammar Grammar_Distributed ** Axel Theofilidis, and Paul Schmidt *** ''realizes an object-oriented environment. As such it assumes storage of data at two levels: the file level and the object level. At the file level, data (grammar code) may be distributed over an arbitrary number of files, each of them containing a particular type of data (e.g. type and feature declarations, lexical entries, .. and .. phrase structure rules. A phrase structure grammar, .. may be distributed over several files each of them containing a set of rules accounting for a particular domain of constituency.'' **** quoted from http://acl.ldc.upenn.edu/W/W97/W97-1512.pdf ** Related: UnderstandingDistributedSystems ---- Begin Comparison, Illustrations, and Stories ... The following items on the page NotBuiltInOneDay -- DonaldNoyes.20101106 ''I'm impressed by how quick you could pull these references for this research-like topic.'' Thank you for your kind response. It is because I am fond of the idea of PositiveDialogue and is my way of showing how honest questions and concerns should be handled. It is also because there is far more that I do not know, than what I do. In some of the questions about ArtifactOrientedProgramming I am forced to discover terms for approaches quite familiar with the questioner or respondant, but unfamiliar to me. In researching these, I find things that are related to the concept, but which have a different intersection of structure and methods, as well as a different approach and focus. The internet is a rich repository of useful information which when handled correctly can enrich the reader's understanding of a whole range of ideas and knowledge. I have found a way to use SearchEngines to zero in on ideas, by looking at more than abstracts or summaries, and often find more relevant and explanatory items further down, almost buried in the remainder of the document. I have recently been labeled a pack-rat of information. This is true in the sense of securing all kinds of information and storing it locally, but it is also true that I am developing in ArtifactOrientedProgramming a certain style and approach so as to make these snapshots of the internet available and reachable regardless of where in the pile-of-stuff I have packed it. It uses a liquistic approach which makes the title or name of an artifact into a WordPile. This is related to an approach introduced as the OnePileFilingSystem, where most used documents are in the upper most reachable parts of the pile. I will begin in comments below this point to tell, in a story form, a story of a ModernDiogenes, who has in his hand instead of a lamp, a PersonalComputer, hooked to millions and millions of connections, and who is looking for "UsefulTruth". ---- ---- CategoryProject CategoryFuture