1 Introduction
In this paper we examine the process involved in the design and implementation of a portgraph model to be used for the analysis of an agentbased rational negligence model. Rational negligence describes the phenomenon that occurred during the financial crisis of 2008 whereby investors chose to trade assetbacked securities without performing independent evaluations of the underlying assets. This proposal is motivated by the interest an analyst or policymaker might have in analysing whether or not the purchase of a particular class of assetbacked security ought, going forward, to be subjected to a full duediligence.
By replacing more traditional Dynamic Stochastic General Equilibrium (DSGE) models [7] with heterogenous, proactive, agentbased models able to produce more realistic representations, a more efficient system is produced. Such a system is able to support rapid prototyping, run system simulations, and, thanks to its formal semantics, also reason about system properties. Turning to a declarative portgraph transformation system facilitates the analysis of processes of interest. This is because it is able to model the dynamic behaviour of complex systems given that its declarative nature and visual aspects produces a shorter distance between mental picture and implementation. Such a tool is not only able to convert a black box model into a white box but also provide an extensively flexible platform as shall be seen later. There are nonvisual elements, such as an inbuilt strategy language, but details of the states produced by the resulting strategy programs are highlighted in a visual trace/derivation tree.
In addition, over extant approaches, the rewrite rules that drive graph transformation systems are an intuitive and natural way of expressing dynamic, structural changes which are generally more difficult to model using traditional simulation approaches where the structure of the model is usually fixed [6]. Over many of the declarative languages used within agentbased simulation tools, this approach, given its visual declarative nature, provides more conceptualization support. The use of the portgraph highlights the heterogeneous agentbased nature of the model. Given support for attributes at componentlevel more realistic simulations can be produced. As a graph transformation system underlying, portgraphs are in addition particularly useful in the development of more concise graph models and in the production of more concise model results given support of both topology and data at the same time. The portgraph makes comprehensive modeling much easier to manage and provides extensive conceptualization support.
Contributions.
We outline the typical specification of a graph program that can be used to represent the workings of a small Rational Negligence agentbased system. We include broad implementation details highlighting design choices and alternatives that could otherwise have guided our approach. We also carry out a thorough validation of the model with respect to its equational specification producing a base case that provides an effective platform for incrementally increasing the complexity and scope of the model. In a previous work; [3], we have defined a hierarchical portgraph extension useful in producing a more integrated model.
Overview.
This paper is organised as follows: We briefly examine the general structure of a simple Portgraph Transformation System and equational semantics of the chosen Rational Negligence model in Section 2. Details of the actual implementation can be found in Section 3 and Section 4 examines the results of key tests and checks on the system. We finally conclude and briefly outline future plans in Section 5.
2 Background
2.1 Portgraph Transformation Systems
A port graph is a graph where nodes have explicit connection points, called ports, and edges are attached to ports. Nodes, ports and edges are labelled by a set of attributes describing properties such as colour, shape, etc. Port graphs are transformed by applying port graph rewrite rules. We refer to [5] for a formal definition of labelled port graphs, where labels are records, i.e., lists of pairs attributevalue. The values can be concrete (numbers, Booleans, etc.) or abstract (expressions in a term algebra, which may contain variables). More precisely:
Definition 1 (Signature)
A port graph signature consists of the following pairwise disjoint sets: , a set of attributes; , a set of attribute variables; , a set of values; , a set of value variables.
Definition 2 (Attributed Port Graphs)
Let be pairwise disjoint sets. A port graph over a signature is a tuple where is a finite set of nodes ( range over nodes); is a finite set of ports ( range over ports); is a finite set of edges between ports ( range over edges; edges are undirected and two ports may be connected by more than one edge); is a set of records over , and is a set of functions , and such that

for each edge , the two ports connected by e

for each port , , the node to which p belongs

is the labelling function that returns the record associated to a component
Each maintains an attribute called whose value is the list of names of the ports attached to , that is, , , satisfying the following constraint:
Definition 3 (Portgraph Rewrite Rule)
A port graph rewrite rule is a port graph consisting of two subgraphs and together with a node (called arrow node) that captures the correspondence between the ports of and the ports of , and includes a condition that will be checked at matching time. More precisely, each of the ports in the arrow node has an attribute Type, which can have three different values: bridge, wire and blackhole, values that indicate how a rewriting step using this rule should affect the edges that connect the redex to the rest of the graph and that satisfy the following conditions:

A port of type bridge must have edges connecting it to and to (one edge to and one or more to ).

A port of type blackhole must have edges connecting it only to (at least one edge).

A port of type wire must have exactly two edges connecting to and no edge connecting to .
Let and be two port graphs over the same signature . A port graph morphism maps nodes, ports and edges of to those of such that the attachment of ports and the edge connections are preserved, and all attributes are preserved except for variables in , which must be instantiated in (attribute instantiation can take place within the algorithm tab associated with the rule). Intuitively, the morphism identifies a subgraph of that is equal to except at positions where has variables (at those positions could have any value).
Definition 4 (Port Graph Morphism)
More formally given two port graphs and over the same signature , a morphism f from X to Y, denoted , and with a definition domain , is a family injective functions such that:

are injective i.e. distinct components are not identified

if then

if for some then

Note that can also instantiate variables
We denote by the subgraph of consisting of the set of nodes, ports and edges that are images of nodes, ports and edges in .
Let be a port graph. A rewrite step via the port graph rewrite rule is obtained by replacing in a subgraph by , where is a morphism from to satisfying . More precisely:
Definition 5 (Match)
[5] Let be a port graph rewrite rule and a port graph. We say a match of the lefthand side (i.e., a redex) is found if: there is a port graph morphism from to (hence is a subgraph of ), holds, and for each port in that is not connected to the arrow node, its corresponding port in must not be an extremity in the set of edges of . This last point ensures that ports in that are not connected to the arrow node are mapped to ports in that have no edges connecting them with ports outside the redex, thus ensuring that there will be no dangling edges when is replaced by .
For a given graph, several outcomes on application of a rule may be possible (due to the intrinsic nondeterminism of rewriting). Strategies in rewriting systems are a means of controlling the creation of rewriting steps and improving rewriting opportunities. A sequence of rewriting steps is called a derivation. A derivation tree is a collection of derivations with a common root. Intuitively, the derivation tree is a representation of the possible evolutions of the system starting from a given initial state (each derivation provides a trace, which can be used to analyse and reason about the behaviour of system). In Porgy [5], the strategy language allows us to control the way derivations are generated. The strategy expression setPos(crtGraph) sets the position graph as the full current graph. If is a rule, then the strategy randomly selects one possible occurence of a match of rule in the current graph , which should superpose the position subgraph but not superpose the banned subgraph . This strategy fails if the rule cannot be applied. and denote success and failure, respectively. The strategy expression is used to check if the rule can be applied (i.e., if there is a match for the left hand side of the rule in the current graph) but does not apply the rule. tries strategy and if it fails then tries to apply . If both strategies fail then the whole statement fails. selects one of the transformations , …
according to the given probability distribution
. executes strategy (not exceeding iterations if the optional parameter is specified) while succeeds. repeatedly executes a strategy , not exceeding times. It can never fail (when fails, it returns ).2.2 The Rational Negligence Model.
As defined in [8] “Securitisation is the process of converting cash flows arising from underlying assets or debts/receivables (typically illiquid such as corporate loans, mortgages, car loans and credit cards receivables) due to the originator into a smoothed liquid marketable repayment stream” and this ensures that the originator can raise assetbacked finance through loans or the issuance of debt securities also known as assets. An originator is any financial intermediary with a portfolio of assets on its balance sheet. In a securitisation, assets are selected, pooled and transferred to a tax neutral, liquidationefficient (i.e bankruptcy avoiding), Special Purpose Vehicle (SPV), who funds them by issuing securities.
In the core rational negligence model [2], the profit expected by an agent (e.g., a bank) from trading an asset depends on whether or not follows the negligence rule, i.e., the rule of not performing independent risk assessment. Let
be a binary variable indicating whether or not the agent is following the negligence rule, then
can be characterised by the following equations, where is the probability of asset toxicity, is the average of all ’s in the domain, is the cost of purchasing an asset (note that the payoff from successfully reselling the asset is normalised to unity), is the cost of performing a complete risk analysis, is the number of trading partners of the seller bank and is the set of agents.
Expected profit for when following the negligence rule, i.e., when , if buys an asset and then tries to sell it to :
This is because if the asset is toxic then will loose if checks, and will have a profit of if does not check. Of course does not know a priori whether
will or not follow the rule, but it can estimate
as the average of all the values of in the system, . Note that when the profit is as expected 
Similarly, the expected profit for when the rule is not followed, i.e., , is defined by:
This is because if the asset is toxic, then will not buy it (losing only ), but if it is not toxic then it will resell it with a profit of .
So the best response of agent to a buying request is determined by analysing the projected profitability of assuming a negligent approach over a diligent approach:
Following [2], we implement a model that mimicks the transactions that follow the trading of one asset since this is sufficient to perform validations against equivalent DSGE analyses. The goal of the model is to study the evolution of the system till fixed point or stable state is reached i.e., in this case, a state such that all potential buyers in the universe of discourse no longer alternate between diligent and nondiligent behaviour in their handling of the purchase of a particular asset. Details of the set of portgraph rules that encapsulate this computation can be found in Tables 1 and 2. The beginanalysis rule in Table 1 performs the profitability check.
3 Implementation
We represent the full ABS (Assetbacked Securitization) universe hierarchically as several initial graphs. Port graph rewriting rules and strategies are used to control the stepwise evolution of the graphs and to create a derivation tree that can be used for plotting and analysing parameter values. The asset trading model sits at the top level of the model hierarchy and it is nondeterministic in nature. Below this system, also able to handle asset pricing and valuation issues, lie several deterministic subsystems that model origination, structuring of the deal, SPV transfers and profitability of the sale.
We chose to model assettransfer transactions using a combination of global and local data, and a global state, the node (an indicator of market behaviour obtained as the average value of each individual bank’s approach, represented by the local lowercase attribute and not to be confused with the global value ). A indicator node is used within a rule to detect whether the market has reached a stable state. Tables 3 and 4 contain a description of the nodes used. Alternative designs are possible, highlighting the flexibility of the approach: For example, local copies of the zattribute could be used to propagate negligent/diligent behaviour using propagation algorithms borrowed from social network models whereby information is transmitted, or in this case received, based on the actions of neighbours or neighboursofneighbours or other clusters [10]. The details of this alternative model shall be future work.
Name of Rule  Description 

requesttobuy  Sends a requesttobuy message to a random bank changing 
the name of this node to (PotentialBuyer).  
A copy of the rule:  
beginanalysis  Computes profitability , of , generating 
a node Theta with attribute DeltaU1U0 = .  
Computation in the algorithm tab is as follows:  
updatez  Updates the attribute in node Z. The new value in 
is .  
Computation in the algorithm tab is as follows:  
Name of Rule  Description 

followresult  Applies if DeltaU1U0 . 
As additional visualisation support, it generates a follow  
node if more profitable to not do a full risk analysis.  
Arrownode Application Condition:  
If  
deviationresult  Applies if DeltaU1U0 
As additional visualisation support, it generates a deviation  
node if more profitable to do a full risk analysis  
(Similar to followresult).  
followdecision  Transfers asset and prepares for a new transaction (i.e. cleans 
up after the decision negligence rule), updating bank’s attribute ,  
updating the Change counter if necessary.  
deviationdecision  Transfers asset and prepares for a new transaction (i.e. cleans 
up after the decision to deviate from the negligence rule), updating  
bank’s attribute , updating the Change counter if necessary  
(Similar to followdecision).  
change  Sets the Change counter back to 0 if greater than 0. 
Computation in the algorithm tab is as follows:  
Entity  Attribute  Description 
Buyer (B/PB)  Payoff (payoff)  Returns from reselling an asset. 
Bank/Potential  
Indicates whether or not,  
as a rule, the institution  
performs independent risk analyses  
Bank ID (b_id)  Bank identifier  
Asset  Current Value (c_val)  Cost of purchasing an asset 
Probability  An asset is toxic if the borrowers  
of Toxicity (p_tox)  of the underlying loans are  
likely to default or are in default  
Actualised Toxicity  Current toxicity level  
(a_tox)  
Perception (pe)  External rating of the asset  
by rating agencies  
Due Diligence Cost  Full cost of an independent  
(ddcost)  risk assessment  
Change  change  Change in bank approach 
Sum of change  Sums all changes in a current cycle  
(sumofchange)  
z  Represents the global average z  
Number of Iterations  Counter that keeps track of  
Z  (numofiterations)  AllTrade iterations 
Number of Agents  Variable that keeps track of  
(numofagents)  number of banks  
Theta  U1  Profitability of being negligent 
U0  Profitability of being diligent.  
DeltaU1U0  Difference between U1 and U0. 
Entity  Ports  Description 

Bank  O (Owns)  Edges attached to this port highlight 
assets owned by the bank  
C (Contacts)  Communication channel with another bank  
Asset  OB (Owned_by)  Connects the asset to its current owner 
Z  EN (Environment)  Global entity that tracks current average sentiment 
PotentialBuyer  O (Owns)  Links to assets owned by the bank 
C (Contacts)  Communication channel with another bank  
GE (Generates)  Declares a relationship with an analysis node  
Change  CH (change)  Counter that keeps track of behaviour changes 
Theta  PB (Produced_by)  Entity that produces this computation helper 
After the creation of a comprehensive set of rules, reduction strategies were created that defined the subgraphs to be selected for evaluation and which rules should be applied to the starting state of the model and it is from this point that the derivation tree begins to undergo construction as the execution strategy calls on rules that create stepwise transformations. Specifically, the asset transfer processes are governed by the strategies AllTrade and FixedPointSearch (see Strategies 1 and 2 below), using 8 rewrite rules summarised in Tables 1 and 2.
Also highlighting flexibility is the fact that a variant of strategy AllTrade can simply replace the orelse operator by a ppick
operator, and then begin to model probabilistic choice of logit type between following or deviating from the negligence rule. The probability distribution used in this case implements the stochastic “trembles” described in
[4] and can be written within our strategy environment as follows:ppick(followResult, deviationResult, udfLogitModel)
where udfLogitModel is a function that reads the profitability of being negligent or diligent (attributes U1 and U0 in the node Theta of the graph produced by the relevant rule) and returns the following values as a list:
where is the current agent number and is the intensity of choice parameter that controls the ease by which fixed point is reached (as specified in [4]).
4 Testing
A successful base case validation has seen test results (see Figure 2 where average Z count value is plotted versus depth of the simulation) line up qualitatively with results from the more traditional ABM simulation given in [2]. In particular, for high values of (that is, high probability of toxicity), we observe the expected result when the initial state contains a mixture of negligent and diligent agents: a sharp drop in , corresponding to a sharp switch in average approach (i.e., more banks decide to perform independent analysis), which in turn will generate stability. An illustration of this can be seen in Figure (c)c and notice that given high due diligence costs Figures (b)b and (e)e highlight a negligent approach whereas Figures (c)c and (h)h reflect the favouring of a diligent approach. However, even for high toxicity, if the initial state is a set of negligent agents, the model reaches equilibrium without switching approach as seen in Figure (l)l.
5 Some Related Work and Conclusion
Fundamentally, general purpose agentbased simulation tools and platforms^{1}^{1}1http://jasss.soc.surrey.ac.uk/18/1/11.html like JAS, Netlogo, AgentBuilder, Swarm, MASON, Repast, SeSAm, GAMA and INGENIAS Development Kit, support an imperative objectoriented approach to model development, facilitating the modular approach to coding. EMERALD and JADE middleware integrate a declarative approach but without any visualization support. Other tools and languages like Stratego, Maude and ELAN [9] support a pure termwriting approach which in the case of Maude is augmented by probabilistic features. What can we do in our chosen approach that we could not have achieved using existing solutions cited? The visual, declarative nature of graph transformation systems are welcome in the cases where users seek to primarily focus on describing what the system should accomplish in terms of problem domain versus the how, and maintain strong conceptualization support that can subsume the details of spatial and topological constraints.
We have shown that strategic portgraph rewriting provides a basis for the design and implementation of a multilevel graph model able to capture the inner workings of the subprime secondary securitisation market in a manner that reflects the aforementioned rational negligence phenomenon and that provides optional operational support.
We observed that a declarative approach is much easier to program and maintain, and the incremental manner in which development was approached (e.g. coarsegrained rules tested before finer optimizations), in addition to the modular nature of development, eliminated many coding bugs. Interacting with the system was not convoluted in anyway and being able to view the states generated by each rule within the resulting derivation tree was useful in addition to being able to view nodes within the tree that maintained specific properties.
In future, we hope to further develop the hierarchical model to be able to capture all details of the full securitisation lifecycle and cater for more dynamically to changing parameters.
References
 [1]
 [2] Kartik Anand, Alan Kirman & Matteo Marsili (2013): Epidemics of rules, rational negligence and market crashes. The European Journal of Finance 19(5), pp. 438–447, doi:10.1080/1351847X.2011.601872.
 [3] Nneka Ene, Maribel Fernández & Bruno Pinaud (2017): Attributed Hierarchical Port Graphs and Applications. In: Proceedings Fourth International Workshop on Rewriting Techniques for Program Transformations and Evaluation, WPTE@FSCD 2017, Oxford, UK, 8th September 2017., pp. 2–19, doi:10.4204/EPTCS.265.2.
 [4] J.Doyne Farmer, M. Gallegati, C. Hommes, A. Kirman, P. Ormerod, S. Cincotti, A. Sanchez & D. Helbing (2012): A complex systems approach to constructing better models for managing financial markets and the economy. The European Physical Journal Special Topics 214(1), pp. 295–324, doi:10.1140/epjst/e2012016969.
 [5] Maribel Fernández, Hélène Kirchner & Bruno Pinaud (2017): Strategic Port Graph Rewriting: an Interactive Modelling Framework. Research Report, N/A. Https://hal.inria.fr/hal01251871.
 [6] Juan de Lara, Esther Guerra, Artur Boronat, Reiko Heckel & Paolo Torrini (2014): Domainspecific discrete event modelling and simulation using graph transformation. Software and System Modeling 13(1), pp. 209–238, doi:10.1007/s1027001202423.
 [7] Charles Ka Yui Leung & Thomas A. Lubik: Introduction: Dynamic Stochastic General Equilibrium Modelling and the Study of AsiaPacific Economies. doi:10.1111/j.14680106.2012.00579.x.
 [8] Sheri Markose, Yang Dong & Bewaji Oluwasegun (2008): An MultiAgent Model of RMBS, Credit Risk Transfer in Banks and Financial Stability: Implications of the Subprime Crisis.
 [9] Narciso MartíOliet, José Meseguer & Alberto Verdejo (2005): Towards a Strategy Language for Maude. Electronic Notes in Theoretical Computer Science 117, pp. 417 – 441, doi:10.1016/j.entcs.2004.06.020. Proceedings of the Fifth International Workshop on Rewriting Logic and Its Applications (WRLA 2004).
 [10] Jason Vallet, Hélène Kirchner, Bruno Pinaud & Guy Melançon (2015): A Visual Analytics Approach to Compare Propagation Models in Social Networks. In A. Rensink & E. Zambon, editors: Proc. Graphs as Models, GaM 2015, EPTCS 181, pp. 65–79, doi:10.4204/EPTCS.181.5.