RAMification + pattern matching: put typing information straight into the Vertices, as a Python attribute (don't put it in separate Vertices+Edges).

This commit is contained in:
Joeri Exelmans 2024-09-10 13:18:14 +02:00
parent 700a4d103f
commit ae5eaedb4b
8 changed files with 284 additions and 129 deletions

View file

@ -330,10 +330,12 @@ class SCD:
attr_link_node, = self.bottom.read_outgoing_elements(self.scd_model, "AttributeLink")
class_node, = self.bottom.read_outgoing_elements(self.model, class_name)
name_to_attr = {}
for edge in self.bottom.read_outgoing_edges(class_node):
edge_types = self.bottom.read_outgoing_elements(edge, "Morphism")
if attr_link_node in edge_types:
name_to_attr[key] = edge
for name in self.bottom.read_keys(class_node):
edges = self.bottom.read_outgoing_edges(class_node, name)
for edge in edges:
edge_types = self.bottom.read_outgoing_elements(edge, "Morphism")
if attr_link_node in edge_types:
name_to_attr[name] = edge
return name_to_attr
def delete_element(self, name: str):