Administrator
|
Folks: This is an OK talk on neo4j & graph dbs:
http://www.scribd.com/doc/17062895/Neo4j-The-Benefits-of-Graph-Databases Here's the pdf in case you find scribd as annoying as I do! http://backspaces.net/temp/Neo4jTalk.pdf -- Owen On Aug 25, 2009, at 6:29 PM, Owen Densmore wrote: > Hmm..just a thought: Have you considered "semantic networks"? Marko > Rodriguez: > "Marko A. Rodriguez" <[hidden email]> > .. has drawn several of us into considering "triple stores" as an > adjunct to our work, both in redfish and the santa fe complex. > > The triple stores contain many triples of the nature of > A verb B > .. where A & B are nouns: Marko Knows Steve. Knows is a link > between Marko and Steve. > > The triple store is a graph database such as: > http://neo4j.org/ > RDF is the "semantic web" use of triple stores: > http://en.wikipedia.org/wiki/Resource_Description_Framework > .. and neo4j has an RDF layer, I believe. > > From your description, I could see models where agents were nodes > with links between themselves. The dynamic nature you describe > could be simply removing and adding links. > > I think the graph database idea is on the brink of exploding upon > the computing scene. Its been around for quite a while, but folks > are just starting to understand just how powerful a notion they > are. Definitely NOT sql structured .. but might work very well in a > Big Table like Google's App Engine. > > -- Owen ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
Thanks Owen.
Yet another very interesting development that I had completely missed. From the introductory papers it seems to me the primary advantage is in what they call semi-structured data. (At least that's what the "KNOWS" examples in the two tutorial-level papers seem to illustrate.) Basically KNOWS is a relation -- either a link in their ontology or a table in a traditional relational DB. The attributes that hang off it and the attributes that hang off the entities being related are much more open-ended than in a traditional Relational DBMS. But they give up SQL in the process. Now, I've always thought SQL was ugly. But at least its declarative. Their substitute consists of Java methods that facilitate navigating around their database. So agents aren't going to be writing new navigational methods. Perhaps everything can be raised to a sufficiently abstract level that new navigational methods aren't needed. I guess that's to be seen. Since my model will certainly be network-oriented, Neo4j may be a good choice for a way to store and manipulate it. I actually hadn't begun to consider how the network should be stored. I figured that nodes would be just linked together somehow. And I hadn't thought about persistence at all! So Neo4j answers questions I hadn't begun to ask. Thanks. -- Russ On Wed, Aug 26, 2009 at 10:44 AM, Owen Densmore <[hidden email]> wrote: Folks: This is an OK talk on neo4j & graph dbs: ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
Russ Abbott wrote:
> But they give up SQL in the process. Now, I've always thought SQL was > ugly. But at least its declarative. I believe many of these graph database / triple store packages support SPARQL.. http://www.w3.org/TR/rdf-sparql-query/ ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
Unfortunately, a glaring hole in SPARQL is lack of add or update
capability. Jena (http://jena.sourceforge.net), the framework sponsored by HP Labs, includes an implementation of a proposed update language for SPARQL - see http://jena.sourceforge.net/ARQ/update.html. The other major framework for RDF is Sesame (http://openrdf.org), and they appear to emphasize their own propietary language (SeRQL) that is considerably more powerful, but only supported by Sesame. All the same, semantic web technology is worth keeping an eye on, even if it is still in its infancy. ;; Gary On Aug 25, 2009, at 10:04 PM, Marcus G. Daniels wrote: > Russ Abbott wrote: >> But they give up SQL in the process. Now, I've always thought SQL >> was ugly. But at least its declarative. > I believe many of these graph database / triple store packages > support SPARQL.. > http://www.w3.org/TR/rdf-sparql-query/ ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
In reply to this post by Russ Abbott
Hi Miles,
I got both of your messages. Thanks. Our situation is that we have embarked on building a framework based on the Drools Expert Rete rules engine. Drools was developed within JBoss for controlling distributed J2EE applications. It wasn't developed with agent-based modeling in mind. Nonetheless I like it as a starting point for a number of reasons.
Part of my vision is that the framework will support what I've been calling service oriented agent-based modeling. That means that everything an agent does can be understood as a service that another agent can make use of. The simple paradigm is that an agent operates on objects in its environment -- including possibly other agents. An agent rule would take objects as input and produce either new objects or modified objects as output. Clearly this is an extraordinarily simple paradigm. But I think it supports a great deal of what I think we need in a modeling environment. Once we have that layer going, I'd like to develop mechanisms to hook agents up in networks. (Again, something quite simple.) A simple version of such a network within my basic paradigm is a supply chain. But the network would allow loops and it would be dynamically reconfigurable. The agents could restructure it as circumstances suggest. So what I'm saying here is that a networking capability would be another layer in this framework. One wouldn't be forced to use it, but it would be there. My question for you is what would you want to see as additional agent support in a project that took this route? -- Russ On Tue, Sep 1, 2009 at 9:22 AM, Miles Parker <[hidden email]> wrote:
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
"As I see it, Drools is essentially a layer above Java that supplies a
great many of the capabilities I want. It doesn't have the notion of
agent at all. But we can build that." I think I get it. Layers of abstraction, piled upon more layers. That's the answer. I forget what the question was. I can get behind that (hey, I work for a living too). Aside: Warning flag #2 usually goes up when I see the words "Schwa, schwa, schwa, Framework, schwa, schwa" preceding the description of some historically-vetted simulation approach, or another. What I would really love to see is a concise statement of what the added value that this proposed approach is supposed to bring to the table. --Doug On Mon, Aug 31, 2009 at 6:54 PM, Russ Abbott <[hidden email]> wrote: Hi Miles, -- Doug Roberts [hidden email] [hidden email] 505-455-7333 - Office 505-670-8195 - Cell ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
Hi Doug,
I got Miles message as well, but I want to ask you about this one anyway. I'd be interested to know what your answer to your question about added value would be for you to think that an ABM framework is worth the trouble to build. I'm not asking as a challenge but so that I have some guidance about what you think would be valuable/important to include in our system. I'm copying Miles who may not actually be on the list. Miles, I'd be very interested in your answer also. How would you respond to Doug's added-value question wrt AMF -- Russ On Tue, Sep 1, 2009 at 11:35 AM, Douglas Roberts <[hidden email]> wrote:
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
When you say high-level support for agent state, space, and composition, would you mind giving examples. In most cases the agent state and space (beyond networks and grids) will probably be fairly problem-specific. (I'm not sure what you mean by composition.) Other than building our own version of something like AMF, which is very ambitious and beyond the scope of our current capability, what sort of high-level support can be provided? Besides, why wouldn't we want to use AMF itself when we get to that point? As the AMP page says, "AMF generates models for Escape, Ascape and Repast Simphony." Why not plan to extend it to include models for our system as well if/once it becomes useful enough to want to generate models for it?
-- Russ On Tue, Sep 1, 2009 at 1:00 PM, Miles Parker <[hidden email]> wrote:
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
In reply to this post by Russ Abbott
Hi, Russ.
As you might suspect from my previous comments, I have spent many years building models, most of them ABMs, many of them large distributed ones. What I have found over the years is that each problem domain is significantly different from other domains, meaning there there is very little generic agent behavior or functionality that could realistically be captured and reused in an "ABM framework". There is some, however, and in fact I have built my own very lightweight framework (in C++) that uses it. I chose C++ because it is a language that is well-supported in HPC environments. In an abm, agents interact, and their interactions result in changes to the system to occur. Some of the changes to the system occur instantaneously; some interactions will cause a change to occur in the future. An example of the latter is when an agent causes disease to be be transmitted through interactions with other agents. After a latent period some or all of the infected agents will become symptomatic. My framework therefore has a mechanism to cause the simulation clock to advance as a result of agent interactions. My distributed agent framework also has an interface that allows agents to migrate between cpus on a distributed machine, and to send messages between agents residing on different cpus. It also has a mechanism to keep the distributed machine synchronized in time as part of the time update mechanism. That's all the framework does. All of the other logic that defines the agent interactions is written by the model developer. Since the framework is implemented in C++, agents are implemented as C++ objects. As with any well-designed OO code, the objects contain their state information as object member data, and their logic definitions (rules) as object member methods. There is a very simple API that allows the agents to recognize the system clock and to cause it to be updated as interactions dictate. That's where the framework functionality stops. There is no generic rule generation in the framework. There is no rule rewriting. The framework does not provide any generic genetic algorithms. There are no classes of agents. No doctor agent classes. No stock arbitrage agent classes. No hospital patient agent classes. No car agent classes. No house agent classes. No airplane agent classes. These are all examples of application-specific agent functionality that may or may not be required to implement an abm for a specific problem definition. This is my abm design methodology as it relates to implementation within my own abm framework:
I looked at the AMP platform that Miles mentioned, and it appears to me to be extremely constraining, and not well-suited to implementing large abms as it only appeared to support serial, non-distributed compute architectures. I think I would feel like a slave to the AMP IDE were I to try to use it. I would prefer more flexibility that it seems to provide. Regards, --Doug On Mon, Aug 31, 2009 at 8:36 PM, Russ Abbott <[hidden email]> wrote: Hi Doug, ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
The system you describe reminds me of WarpIV by Jeff Steinman. I haven't kept up with this work in a few years, but it might be worth looking at. It's intended for very large simulations that run on diestributed processors. It includes a time warp capability so that processors aren't required to be synchronized at all time.
-- Russ On Tue, Sep 1, 2009 at 5:13 AM, Douglas Roberts <[hidden email]> wrote: Hi, Russ. ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
In reply to this post by Douglas Roberts-2
Posture?
Russ asked for my input; I gave it to him. And that's my posture on this issue. ;-} On Tue, Sep 1, 2009 at 10:29 AM, Miles Parker <[hidden email]> wrote:
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
In reply to this post by Douglas Roberts-2
On Tue, Sep 01, 2009 at 06:13:37AM -0600, Douglas Roberts wrote:
> Hi, Russ. > > As you might suspect from my previous comments, I have spent many years > building models, most of them ABMs, many of them large distributed ones. > What I have found over the years is that each problem domain is > significantly different from other domains, meaning there there is very > little generic agent behavior or functionality that could realistically be > captured and reused in an "ABM framework". > > There is some, however, and in fact I have built my own very lightweight > framework (in C++) that uses it. I chose C++ because it is a language that > is well-supported in HPC environments. > Doug, did you ever take a look at EcoLab? (http://ecolab.sf.net) It is a C++ ABM framework that I've worked on that addresses similar issues to yours. One of its key features is adding automatic reflection to C++ making it extremely easy to migrate agents between processors. A couple of years ago, I did a 13.5 million agent simulation running on 8 processors, which worked like a charm. Anyway, given your experience, I'd be interested in your honest opinion on it. -- ---------------------------------------------------------------------------- Prof Russell Standish Phone 0425 253119 (mobile) Mathematics UNSW SYDNEY 2052 [hidden email] Australia http://www.hpcoders.com.au ---------------------------------------------------------------------------- ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
Sorry, it's the first I've heard of it. Looks interesting, though.
--Doug On Tue, Sep 1, 2009 at 4:21 PM, russell standish <[hidden email]> wrote:
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org |
Free forum by Nabble | Edit this page |