Appendix 3. TROEPS in TROEPS textual format

Here is the description of TROEPS itself in its textual format. This is not the description of the actual implementation. From that description, the instances part have been withdrawn since the instances, being other entities, are implicitly described in the text.

/* The knowledge base corresponding to the Troeps kernel */

<base Troeps
	required-bases = {} ;
	types = {"trtdum"};
	viewpoints = {};
	concepts = {
		<concept
			key = {
				<name
					type = chaine; nature = propriete; constructor = un;>};
			fields = {
				<conceptslots
				 	type = conceptslot; nature = propriete; constructor = ensemble;>,
				<key
					type = conceptslot; nature = propriete; constructor = ensemble;>, 
				<viewpoints
					type = conceptview; nature = propriete; constructor = ensemble;>, 
				<bridges
					type = bridge; nature = propriete; constructor = ensemble;> };
			viewpoints = {};
			bridges = {};
			>,


		<conceptview
			key = {
				<name
					type = string; nature = propriete; constructor = un;>, 
				<concept
					type = concept; nature = propriete; constructor = un;>}; 
			fields = {
				<root
					type = class; nature = propriete; constructor = un;> ,
				<exhaustive
					type = boolean; nature = propriete; constructor = un;> ,
				<exclusive
					type = boolean; nature = propriete; constructor = un;> ,
				<definitional
					type = boolean; nature = propriete; constructor = un;> };
			viewpoints = {};
			bridges = {};
			>,

	<class
			key = {
				<name
					type = chaine; nature = propriete; constructor = un;>,
				<viewpoint
					type = point-de-vue; nature = propriete; constructor = un;>};
			fields = {
				<slots
					type = classslots; nature = propriete; constructor = ensemble;>,
				<super-class
					type = class; nature = propriete; constructor = un;>,
				<sub-classes
					type = class; nature = propriete; constructor = ensemble;>,
				<attached
					type = object; nature = propriete; constructor = ensemble;>,
				<constraints
					type = object; nature = propriete; constructor = ensemble;>,
				<bridge-in
					type = bridge; nature = propriete; constructor = ensemble;>,
				<bridge-out
					type = bridge; nature = propriete; constructor = ensemble;> };
			viewpoints = {};
			bridges = {};
			>,


		<conceptslot
			key = {
				<name
					type = chaine; nature = propriete; constructor = un;>, 
				<concept
					type = concept; nature = propriete; constructor = un;>}; 
			fields= {
				<viewpoints
					type = viewpoint; nature = propriete; constructor = ensemble;>, 
				<type
					type = concept; nature = propriete; constructor = un;>, 
				<nature
					type = string; nature = propriete; constructor = un;>, 
				<constructor
					type = string; nature = propriete; constructor = un;>				<method
					type = string; nature = propriete; constructor = ensemble;> };
			viewpoints = {
				<conceptslot-view
					root-class =
						<conceptslot
							fields = {
								<nature
									domain = {"propriete", "composant", "lien"}; >,
								<constructor
									domain = {"un", "liste", "ensemble"}; >,
											}>;
					classes = {};
					}};
			bridges = {};
			>,

		<classslot
			key = {
				<name
					type = chaine; nature = propriete; constructor = un;>, 
				<class
					type = class; nature = propriete; constructor = un;>}; 
			fields = {
				<type
					type = class; nature = propriete; const = ensemble;>,
				<domain
					type = value; nature = propriete; const = ensemble;>,
				<intervals
					type = interval; nature = propriete; const = ensemble;>,
				<except
					type = value; nature = propriete; const = ensemble;>,
				<card
					type = interval; nature = propriete; const = un;>,
				<default
					type = value; nature = propriete; const = un;>,
				<assign
					type = path; nature = propriete; const = liste;>,
				<filters
					type = filter; nature = propriete; const = liste;>,
				<methods
					type = method; nature = propriete; const = liste;>,
				<conditions
					type = constraint; nature = propriete; const = liste;>};
			viewpoints = {};
			bridges = {};
			>,

		<bridge
			key = {
				<concept
					type = concept; nature = propriete; constructor = un;>,
				<name
					type = chaine; nature = propriete; constructor = un;>};
			fields = {
				<source
					type = class; nature = propriete; constructor = ensemble;>, 
				<destination
					type = class; nature = propriete; constructor = un;>}; 
			viewpoints = {};
			bridges = {};
			>};
	methods = {} ;
	instance-files = {} ;
	lexicons = {} ;
	talk-modules = {} ;
>