Knowledge (XXG)

Graph rewriting

Source 📝

164: 54:
Graph transformations can be used as a computation abstraction. The basic idea is that if the state of a computation can be represented as a graph, further steps in that computation can then be represented as transformation rules on that graph. Such rules consist of an original graph, which is to be
765:
Graphs are an expressive, visual and mathematically precise formalism for modelling of objects (entities) linked by relations; objects are represented by nodes and relations between them by edges. Nodes and edges are commonly typed and attributed. Computations are described in this model by changes
713:
and logical programming since they are well-suited to representing quantified statements in first order logic. Symbolic programming software is another application for term graphs, which are capable of representing and performing computation with abstract algebraic structures such as groups, fields
725:
Graph rewriting systems naturally group into classes according to the kind of representation of graphs that are used and how the rewrites are expressed. The term graph grammar, otherwise equivalent to graph rewriting system or graph replacement system, is most often used in classifications. Some
650:
From the practical perspective, the key distinction between DPO and SPO is how they deal with the deletion of nodes with adjacent edges, in particular, how they avoid that such deletions may leave behind "dangling edges". The DPO approach only deletes a node when the rule specifies the deletion of
155:; the different wording is used to emphasize the goal of constructions, like the enumeration of all graphs from some starting graph, i.e. the generation of a graph language – instead of simply transforming a given state (host graph) into a new state. 766:
in the relations between the entities or by attribute changes of the graph elements. They are encoded in graph rewrite/graph transformation rules and executed by graph rewrite systems/graph transformation tools.
823:, a Java-based tool set for editing graphs and graph transformation rules, exploring the state spaces of graph grammars, and model checking those state spaces; can also be used as a graph transformation engine. 647:
diagram. Practical understanding of this is similar to the DPO approach. The difference is, that there is no interface between the host graph G and the graph G' being the result of the rewriting step.
682:. In this approach, graphs are treated as database instances, and rewriting operations as a mechanism for defining queries and views; therefore, all rewriting is required to yield unique results ( 264: 709:. Term graphs are also used as abstract machines capable of modelling chemical and biological computations as well as graphical calculi such as concurrency models. Term graphs can perform 950:
is an interpreter and UI environment for creating unrestricted graph grammars as well as testing and searching the resultant language variant. It saves graphs and graph grammar rules as
296: 641: 428: 388: 322: 86: 686:), and this is achieved by applying any rewriting rule concurrently throughout the graph, wherever it applies, in such a way that the result is indeed uniquely defined. 128:
being called replacement graph (or right-hand side of the rule). A graph rewrite rule is applied to the host graph by searching for an occurrence of the pattern graph (
598: 578: 558: 538: 518: 498: 474: 454: 126: 106: 1204: 705:
Term graphs are a prominent topic in programming language research since term graph rewriting rules are capable of formally expressing a compiler's
580:
is needed to attach the pattern being matched to its context: if it is empty, the match can only designate a whole connected component of the graph
1132: 1347: 1318: 1282: 1176: 655:
can be checked for a given match), whereas the SPO approach simply disposes the adjacent edges, without requiring an explicit specification.
136:) and by replacing the found occurrence by an instance of the replacement graph. Rewrite rules can be further regulated in the case of 965: 658:
There is also another algebraic-like approach to graph rewriting, based mainly on Boolean algebra and an algebra of matrices, called
1142: 955: 830: 814: 199: 193: 961: 477: 133: 32: 930: 989:
is a rule-based language for modeling systems of interacting agents, primarily motivated by molecular systems biology.
777: 773: 225: 1027: 912: 870: 792: 843: 644: 352: 1367: 730: 786:
is a visual rule-based graph programming language designed to facilitate formal reasoning over graph programs.
1201: 560:
serves as an interface, containing the nodes and edges which are preserved when applying the rule. The graph
269: 55:
matched to a subgraph in the complete state, and a replacing graph, which will replace the matched subgraph.
741:
to characterising replacements, mentioned in the above section on the algebraic approach to graph rewriting.
738: 734: 614: 401: 361: 968:
for graph transformation systems. Its main application focus is data analytics in the field of engineering.
710: 920: 853: 745: 706: 40: 1296: 1148: 717:
The TERMGRAPH conference focuses entirely on research into term graph rewriting and its applications.
916: 874: 839: 749: 171: 36: 301: 65: 1334:. Handbook of Graph Grammars and Computing by Graph Transformation. Vol. 3. World Scientific. 1305:. Handbook of Graph Grammars and Computing by Graph Transformation. Vol. 2. World Scientific. 1269:. Handbook of Graph Grammars and Computing by Graph Transformation. Vol. 1. World Scientific. 862: 44: 191:. The algebraic approach is further divided into sub-approaches, the most common of which are the 1260: 1057: 1015: 604: 219: 933:, an integrated environment and very high level language for PROgrammed Graph REwriting Systems. 603:
In contrast a graph rewriting rule of the SPO approach is a single morphism in the category of
1343: 1314: 1278: 1248: 1172: 1138: 683: 1329: 1300: 1264: 1335: 1306: 1270: 1238: 1228: 976: 432: 129: 48: 20: 163: 1208: 866: 796: 753: 679: 188: 152: 803:
and transformation. It is an implementation of an extension of Messmer’s algorithm using
698:
rewriting, which involves the processing or transformation of term graphs (also known as
1328:
Hartmut Ehrig; Hans-Jörg Kreowski; Ugo Montanari; Grzegorz Rozenberg, eds. (Aug 1999).
1052: 924: 902: 886: 800: 583: 563: 543: 523: 503: 483: 459: 439: 111: 91: 1361: 1292: 1095: 1047: 137: 35:
out of an original graph algorithmically. It has numerous applications, ranging from
1042: 1011: 981: 1233: 1216: 1168: 1001: 695: 1252: 829:, a software specification and verification system based on graph rewriting ( 214:
From the perspective of the DPO approach a graph rewriting rule is a pair of
898: 338: 325: 59: 1010:
is an English-language parser that employs graph re-writing to convert a
356: 215: 174:
from compiler construction: multiplication with 2 replaced by addition).
1198:
Analysis and Verification of Systems with Dynamically Evolving Structure
977:
Functional-structural plant modeling with a graph grammar based language
826: 789: 1190: 997: 982:
Multicellular development modeling with string-regulated graph grammars
883:
uses Story driven modelling, a graph rewrite language based on PROGRES.
1243: 783: 936: 813:, the graph rewrite generator, a graph transformation tool emitting 62:
system usually consists of a set of graph rewrite rules of the form
908: 804: 1007: 892: 810: 675: 162: 1339: 1310: 1274: 1134:
Handbook of Graph Grammars and Computing by Graph Transformations
1096:"A Graph-Oriented Object Model for Database End-User Interfaces" 1215:
Lobo, Daniel; Vico, Francisco J.; Dassow, Jürgen (2011-10-01).
1112: 820: 1165:
Matrix Graph Grammars: An Algebraic Approach to Graph Dynamics
951: 852:, an EMF-compliant model-transformation tool with support for 744:
Hypergraph grammars, including as more restrictive subclasses
986: 947: 178:
Application of the rule to optimize "y=x*2" into "y=x+x".
880: 187:
The algebraic approach to graph rewriting is based upon
859: 849: 617: 586: 566: 546: 526: 506: 486: 462: 442: 404: 364: 304: 272: 228: 114: 94: 68: 994:
Artificial Intelligence/Natural Language Processing
1004:) which is used to implement various AI algorithms. 799:, the Graph Matching and Transformation Engine for 721:
Classes of graph grammar and graph rewriting system
108:being called pattern graph (or left-hand side) and 670:Yet another approach to graph rewriting, known as 635: 592: 572: 552: 532: 512: 492: 468: 448: 422: 382: 316: 290: 258: 120: 100: 80: 1217:"Graph grammars with string-regulated rewriting" 1191:Electronic Notes in Theoretical Computer Science 643:. Thus a rewriting step is defined by a single 430:models an occurrence of L in G and is called a 1137:, vol. 1–3, World Scientific Publishing, 259:{\displaystyle r=(L\leftarrow K\rightarrow R)} 140:, such as in string-regulated graph grammars. 398:-pushout comes from). Another graph morphism 8: 1060:— a generalization of graph rewriting 770:Tools that are application domain neutral: 31:, concerns the technique of creating a new 16:Creating a new graph from an existing graph 1331:Concurrency, Parallelism, and Distribution 1202:Habilitation thesis, Universität Stuttgart 901:, a graph-based programming language (see 889:often support dynamic rewriting of graphs. 436:. Practical understanding of this is that 1242: 1232: 915:, supporting in-place and model-to-model 873:, supporting in-place and model-to-model 616: 585: 565: 545: 525: 505: 485: 461: 441: 403: 363: 303: 271: 227: 113: 93: 67: 733:, typically formalised using either the 611:that preserve the multigraph structure: 1299:; Grzegorz Rozenberg, eds. (Oct 1999). 1075: 776:, the attributed graph grammar system ( 702:) by a set of syntactic rewrite rules. 694:Another approach to graph rewriting is 291:{\displaystyle L\supseteq K\subseteq R} 636:{\displaystyle r\colon L\rightarrow R} 423:{\displaystyle m\colon L\rightarrow G} 383:{\displaystyle k\colon K\rightarrow D} 355:diagrams both originating in the same 1193:148 (1 SPEC. ISS.), pp. 187–198. 1082: 1030:is implemented using graph rewriting. 1000:provides a basic pattern matcher (on 911:, a graph rewriting system based on 7: 456:is a subgraph that is matched from 203:. Other sub-approaches include the 1187:Graph transformation in a nutshell 966:integrated development environment 869:a graph rewriting system based on 14: 1302:Applications, Languages and Tools 651:all adjacent edges as well (this 761:Implementations and applications 1085:covers this approach in detail. 480:), and after a match is found, 151:, especially in the context of 1023:Computer programming language 627: 414: 374: 317:{\displaystyle K\rightarrow L} 308: 253: 247: 241: 235: 218:in the category of graphs and 81:{\displaystyle L\rightarrow R} 72: 1: 944:Mechanical engineering tools 674:graph rewriting, came out of 200:single-pushout (SPO) approach 194:double-pushout (DPO) approach 1221:Theoretical Computer Science 1131:Rozenberg, Grzegorz (1997), 478:subgraph isomorphism problem 170:Example graph rewrite rule ( 134:subgraph isomorphism problem 666:Determinate graph rewriting 1384: 1028:Clean programming language 856:and Triple Graph Grammars. 159:Graph rewriting approaches 1234:10.1016/j.tcs.2011.07.004 817:-code or .NET-assemblies. 731:Attributed graph grammars 147:is used as a synonym for 954:files and is written in 846:) with graph rewriting: 700:abstract semantic graphs 394:(this is where the name 328:. The graph K is called 51:and picture generation. 1196:König, Barbara (2004). 739:double-pushout approach 735:single-pushout approach 921:critical pair analysis 711:automated verification 637: 594: 574: 554: 534: 514: 494: 470: 450: 424: 384: 318: 292: 260: 179: 149:graph rewriting system 122: 102: 82: 973:Biology applications 854:Story-Driven Modeling 750:linear graph grammars 707:operational semantics 660:matrix graph grammars 638: 595: 575: 555: 535: 515: 495: 471: 451: 425: 385: 319: 293: 261: 166: 123: 103: 83: 45:software verification 41:software construction 1163:Perez, P.P. (2009), 840:software engineering 690:Term graph rewriting 615: 584: 564: 544: 524: 504: 484: 460: 440: 402: 362: 351:G is defined by two 302: 270: 226: 112: 92: 66: 37:software engineering 25:graph transformation 1185:Heckel, R. (2006). 746:port graph grammars 605:labeled multigraphs 220:graph homomorphisms 132:, thus solving the 1297:Hans-Jörg Kreowski 1263:, ed. (Feb 1997). 1261:Grzegorz Rozenberg 1211:, pp. 65–180. 1207:2007-06-25 at the 1058:Abstract rewriting 865:2016-04-22 at the 795:2018-03-13 at the 726:common types are: 653:dangling condition 633: 590: 570: 550: 530: 510: 490: 466: 446: 420: 380: 314: 288: 256: 183:Algebraic approach 180: 118: 98: 78: 58:Formally, a graph 1349:978-981-02-4021-9 1320:978-981-02-4020-2 1295:; Gregor Engels; 1284:978-981-02-2884-2 1227:(43): 6101–6111. 1178:978-3-639-21255-6 838:Tools that solve 684:up to isomorphism 593:{\displaystyle G} 573:{\displaystyle K} 553:{\displaystyle K} 533:{\displaystyle G} 513:{\displaystyle R} 500:is replaced with 493:{\displaystyle L} 469:{\displaystyle G} 449:{\displaystyle L} 347:of a rule r to a 332:or sometimes the 209:pullback approach 121:{\displaystyle R} 101:{\displaystyle L} 49:layout algorithms 1375: 1353: 1324: 1288: 1256: 1246: 1236: 1181: 1158: 1157: 1156: 1147:, archived from 1117: 1116: 1109: 1103: 1102: 1100: 1092: 1086: 1080: 1016:dependency parse 754:interaction nets 642: 640: 639: 634: 609:partial mappings 599: 597: 596: 591: 579: 577: 576: 571: 559: 557: 556: 551: 539: 537: 536: 531: 519: 517: 516: 511: 499: 497: 496: 491: 475: 473: 472: 467: 455: 453: 452: 447: 429: 427: 426: 421: 389: 387: 386: 381: 323: 321: 320: 315: 297: 295: 294: 289: 265: 263: 262: 257: 153:formal languages 130:pattern matching 127: 125: 124: 119: 107: 105: 104: 99: 87: 85: 84: 79: 21:computer science 1383: 1382: 1378: 1377: 1376: 1374: 1373: 1372: 1368:Graph rewriting 1358: 1357: 1356: 1350: 1327: 1321: 1291: 1285: 1259: 1214: 1209:Wayback Machine 1179: 1162: 1154: 1152: 1145: 1130: 1126: 1121: 1120: 1111: 1110: 1106: 1098: 1094: 1093: 1089: 1081: 1077: 1072: 1067: 1039: 903:Graph Rewriting 887:Graph databases 867:Wayback Machine 797:Wayback Machine 763: 723: 692: 680:database theory 668: 613: 612: 582: 581: 562: 561: 542: 541: 522: 521: 502: 501: 482: 481: 458: 457: 438: 437: 400: 399: 390:, where D is a 360: 359: 300: 299: 268: 267: 266:, also written 224: 223: 189:category theory 185: 161: 110: 109: 90: 89: 64: 63: 29:graph rewriting 17: 12: 11: 5: 1381: 1379: 1371: 1370: 1360: 1359: 1355: 1354: 1348: 1325: 1319: 1289: 1283: 1257: 1212: 1194: 1183: 1177: 1160: 1143: 1127: 1125: 1122: 1119: 1118: 1104: 1087: 1074: 1073: 1071: 1068: 1066: 1063: 1062: 1061: 1055: 1053:Formal grammar 1050: 1045: 1038: 1035: 1034: 1033: 1032: 1031: 1021: 1020: 1019: 1005: 992: 991: 990: 984: 979: 971: 970: 969: 959: 942: 941: 940: 934: 928: 925:model checking 917:transformation 906: 896: 890: 884: 878: 875:transformation 857: 842:tasks (mainly 836: 835: 834: 824: 818: 808: 801:graph matching 787: 781: 762: 759: 758: 757: 742: 722: 719: 691: 688: 667: 664: 632: 629: 626: 623: 620: 589: 569: 549: 529: 520:in host graph 509: 489: 465: 445: 419: 416: 413: 410: 407: 379: 376: 373: 370: 367: 313: 310: 307: 287: 284: 281: 278: 275: 255: 252: 249: 246: 243: 240: 237: 234: 231: 222:between them: 205:sesqui-pushout 184: 181: 160: 157: 138:labeled graphs 117: 97: 77: 74: 71: 15: 13: 10: 9: 6: 4: 3: 2: 1380: 1369: 1366: 1365: 1363: 1351: 1345: 1341: 1337: 1333: 1332: 1326: 1322: 1316: 1312: 1308: 1304: 1303: 1298: 1294: 1293:Hartmut Ehrig 1290: 1286: 1280: 1276: 1272: 1268: 1267: 1262: 1258: 1254: 1250: 1245: 1240: 1235: 1230: 1226: 1222: 1218: 1213: 1210: 1206: 1203: 1199: 1195: 1192: 1188: 1184: 1180: 1174: 1170: 1166: 1161: 1151:on 2013-10-04 1150: 1146: 1140: 1136: 1135: 1129: 1128: 1123: 1114: 1108: 1105: 1097: 1091: 1088: 1084: 1079: 1076: 1069: 1064: 1059: 1056: 1054: 1051: 1049: 1048:Shape grammar 1046: 1044: 1041: 1040: 1036: 1029: 1025: 1024: 1022: 1017: 1013: 1009: 1006: 1003: 999: 996: 995: 993: 988: 985: 983: 980: 978: 975: 974: 972: 967: 963: 960: 957: 953: 949: 946: 945: 943: 938: 935: 932: 929: 926: 922: 918: 914: 910: 907: 904: 900: 897: 894: 891: 888: 885: 882: 879: 876: 872: 868: 864: 861: 858: 855: 851: 848: 847: 845: 841: 837: 832: 828: 825: 822: 819: 816: 812: 809: 806: 802: 798: 794: 791: 788: 785: 782: 779: 775: 772: 771: 769: 768: 767: 760: 755: 751: 747: 743: 740: 736: 732: 729: 728: 727: 720: 718: 715: 712: 708: 703: 701: 697: 689: 687: 685: 681: 677: 673: 665: 663: 661: 656: 654: 648: 646: 630: 624: 621: 618: 610: 606: 601: 587: 567: 547: 527: 507: 487: 479: 463: 443: 435: 434: 417: 411: 408: 405: 397: 393: 392:context graph 377: 371: 368: 365: 358: 354: 350: 346: 342: 340: 335: 331: 327: 311: 305: 285: 282: 279: 276: 273: 250: 244: 238: 232: 229: 221: 217: 212: 210: 206: 202: 201: 196: 195: 190: 182: 177: 173: 169: 165: 158: 156: 154: 150: 146: 145:graph grammar 141: 139: 135: 131: 115: 95: 75: 69: 61: 56: 52: 50: 46: 42: 38: 34: 30: 26: 22: 1340:10.1142/4181 1330: 1311:10.1142/4180 1301: 1275:10.1142/3303 1265: 1224: 1220: 1197: 1186: 1164: 1153:, retrieved 1149:the original 1133: 1107: 1090: 1078: 1043:Graph theory 962:Soley Studio 764: 724: 716: 704: 699: 693: 671: 669: 659: 657: 652: 649: 608: 602: 431: 395: 391: 348: 344: 337: 334:gluing graph 333: 329: 213: 208: 204: 198: 192: 186: 175: 172:optimization 167: 148: 144: 142: 57: 53: 28: 24: 18: 1266:Foundations 1113:"TERMGRAPH" 1002:hypergraphs 714:and rings. 672:determinate 345:application 1244:10630/6716 1169:VDM Verlag 1155:2012-07-11 1144:9810228848 1083:Perez 2009 1065:References 1012:link parse 948:GraphSynth 696:term graph 349:host graph 143:Sometimes 1253:0304-3975 1070:Citations 827:Verigraph 811:GrGen.NET 628:→ 622:: 415:→ 409:: 375:→ 369:: 339:rewriting 330:invariant 326:injective 309:→ 283:⊆ 277:⊇ 248:→ 242:← 216:morphisms 73:→ 60:rewriting 43:and also 1362:Category 1205:Archived 1037:See also 964:, is an 863:Archived 793:Archived 357:morphism 298:, where 207:and the 197:and the 1124:Sources 1014:into a 998:OpenCog 931:PROGRES 909:Henshin 899:Gremlin 850:eMoflon 831:Haskell 737:or the 645:pushout 353:pushout 176:Bottom: 88:, with 1346:  1317:  1281:  1251:  1175:  1141:  937:VIATRA 923:, and 881:Fujaba 821:GROOVE 540:where 396:double 1099:(PDF) 1008:RelEx 987:Kappa 893:GReAT 860:EMorF 676:logic 476:(see 433:match 47:) to 33:graph 27:, or 1344:ISBN 1315:ISBN 1279:ISBN 1249:ISSN 1173:ISBN 1139:ISBN 1026:The 790:GMTE 784:GP 2 778:Java 752:and 678:and 607:and 341:step 336:. A 168:Top: 1336:doi 1307:doi 1271:doi 1239:hdl 1229:doi 1225:412 952:XML 913:EMF 871:EMF 844:MDA 805:C++ 774:AGG 343:or 324:is 19:In 1364:: 1342:. 1313:. 1277:. 1247:. 1237:. 1223:. 1219:. 1200:. 1189:. 1171:, 1167:, 956:C# 919:, 905:). 833:). 815:C# 780:). 748:, 662:. 600:. 211:. 23:, 1352:. 1338:: 1323:. 1309:: 1287:. 1273:: 1255:. 1241:: 1231:: 1182:. 1159:. 1115:. 1101:. 1018:. 958:. 939:. 927:. 895:. 877:. 807:. 756:. 631:R 625:L 619:r 588:G 568:K 548:K 528:G 508:R 488:L 464:G 444:L 418:G 412:L 406:m 378:D 372:K 366:k 312:L 306:K 286:R 280:K 274:L 254:) 251:R 245:K 239:L 236:( 233:= 230:r 116:R 96:L 76:R 70:L 39:(

Index

computer science
graph
software engineering
software construction
software verification
layout algorithms
rewriting
pattern matching
subgraph isomorphism problem
labeled graphs
formal languages

optimization
category theory
double-pushout (DPO) approach
single-pushout (SPO) approach
morphisms
graph homomorphisms
injective
rewriting
pushout
morphism
match
subgraph isomorphism problem
labeled multigraphs
pushout
logic
database theory
up to isomorphism
term graph

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.