Explorar el Código

Add a "semantics" link to instanceOf links

Yentl Van Tendeloo hace 8 años
padre
commit
4eb4c2456d
Se han modificado 2 ficheros con 15 adiciones y 10 borrados
  1. 13 10
      bootstrap/core_algorithm.alc
  2. 2 0
      bootstrap/core_formalism.mvc

+ 13 - 10
bootstrap/core_algorithm.alc

@@ -104,8 +104,7 @@ Void function initialize_core():
 	conformance_location = "models/Conformance_MV"
 
 	// Annotate action language fragments
-	//TODO Uncomment, but takes some time...
-	//add_code_model(import_node(al_location), conformance_location, wrap_conformance)
+	add_code_model(import_node(al_location), conformance_location, wrap_conformance)
 
 	scd = import_node(scd_location)
 	al = import_node(al_location)
@@ -228,6 +227,16 @@ Void function initialize_core():
 	instantiate_link(core, "group", "", core_model, admin_group)
 	instantiate_link(core, "owner", "", core_model, admin_user)
 
+	// Add all semantics links for the instanceOf links, all of them using the built-in conformance relation of the Modelverse
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("SimpleClassDiagrams"), "instanceOf")), conf)
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("Tracability"), "instanceOf")), conf)
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("ProcessModel"), "instanceOf")), conf)
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("ActionLanguage"), "instanceOf")), conf)
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("ManualOperation"), "instanceOf")), conf)
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("conformance_mv"), "instanceOf")), conf)
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("CoreFormalism"), "instanceOf")), conf)
+	instantiate_link(core, "semantics", "", set_pop(allOutgoingAssociationInstances(core, get_model_id("core"), "instanceOf")), conf)
+
 	// Call this for ourselves as well
 	//log("MvC is ready!")
 	return !
@@ -257,6 +266,7 @@ Element function get_full_model(model_id : String):
 	m = create_node()
 	dict_add(m, "model", import_node(read_attribute(core, model_id, "location")))
 	dict_add(m, "type_mapping", read_attribute(core, choice, "type_mapping"))
+	dict_add(m, "semantics", set_pop(allAssociationDestinations(core, choice, "semantics")))
 
 	if (readAssociationDestination(core, choice) == model_id):
 		// Found the meta-circular level, so we can stop!
@@ -345,14 +355,6 @@ Boolean function check_login(user_id : String):
 
 	return password == stored_password!
 
-Element function extract_ftg(user_id : String):
-	// Extract your personal FTG, showing only the readable models that can be opened
-	// This function does the actual projection of transformations
-
-	// TODO: Only keep transformations satisfying some properties!
-
-	return create_node()!
-
 Void function new_task():
 	String username
 	String user_id
@@ -448,6 +450,7 @@ Void function model_create(model : Element, name : String, user_id : String, typ
 	instantiate_link(core, "group", "", model_id, get_group_id("nobody"))
 	instance_of = instantiate_link(core, "instanceOf", "", model_id, type_id)
 	instantiate_attribute(core, instance_of, "type_mapping", model["type_mapping"])
+	instantiate_link(core, "semantics", "", instance_of, get_model_id("conformance_mv"))
 
 	return!
 

+ 2 - 0
bootstrap/core_formalism.mvc

@@ -126,6 +126,8 @@ SimpleClassDiagrams CoreFormalism {
     Association tracability (Model, Model) {
         type : String
     }
+
+    Association semantics (instanceOf, ActionLanguage) {}
 }
 
 export CoreFormalism to models/CoreFormalism