(*
   $Id$
   ISO TC184/SC4/WG12 N4165 - ISO/TS 10303-1739 Production rule - EXPRESS MIM
   Supersedes ISO TC184/SC4/WG12 N3589
*)


SCHEMA Production_rule_mim;
	USE FROM Specification_document_mim;    --  ISO/TS 10303-1747
	USE FROM Software_mim;	-- ISO/TS 10303-1746
	USE FROM Date_time_assignment_mim; -- ISO/TS 10303-1014
    USE FROM Identification_assignment_mim;
    USE FROM Product_identification_mim;
   	USE FROM Activity_mim; -- ISO/TS 10303-1047
	
	USE FROM product_definition_schema(product_definition_relationship);
	
	USE FROM representation_schema(representation_item_relationship);
	
	USE FROM product_property_definition_schema(property_definition); 

	USE FROM product_property_representation_schema(property_definition_representation); 
	

TYPE pr_action_items = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON action_items WITH 
     (product_definition_formation);
END_TYPE; 

TYPE pr_date_and_time_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON date_and_time_item WITH 
     (rule_action);
END_TYPE; 

TYPE pr_document_reference_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON document_reference_item WITH 
   (rule_set);
END_TYPE; 

TYPE pr_identification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON identification_item WITH
  (rule_set);
END_TYPE;  

TYPE pr_organization_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON organization_item WITH 
   (rule_action);
END_TYPE; 

TYPE pr_person_and_organization_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON person_and_organization_item WITH 
   (rule_action);
END_TYPE; 

TYPE rule_superseded_item = SELECT
     (product_definition_formation);
END_TYPE;

ENTITY abstract_variable
  SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item);
END_ENTITY;  

ENTITY atomic_formula
  SUBTYPE OF (compound_representation_item);
END_ENTITY;    

ENTITY attribute_assertion
  SUBTYPE OF (fact_type, property_definition_representation, representation);
END_ENTITY;  

ENTITY back_chaining_rule  
  SUBTYPE OF (rule_definition);
END_ENTITY;  
								  
ENTITY back_chaining_rule_body 
  SUBTYPE OF (property_definition, property_definition_representation, representation);
END_ENTITY;

ENTITY complex_clause
  SUBTYPE OF (compound_representation_item);
END_ENTITY;

ENTITY complex_conjunctive_clause
  SUBTYPE OF (complex_clause);
END_ENTITY;

ENTITY complex_disjunctive_clause
  SUBTYPE OF (complex_clause);
END_ENTITY;

ENTITY entity_assertion
  SUBTYPE OF (fact_type);
END_ENTITY;

ENTITY enum_reference_prefix  
  SUBTYPE OF (descriptive_representation_item);
END_ENTITY;

ENTITY extent
  SUBTYPE OF (characterized_object);
END_ENTITY;

ENTITY fact_type
  SUBTYPE OF (property_definition);
END_ENTITY;

ENTITY forward_chaining_rule
  SUBTYPE OF (rule_definition);
END_ENTITY;
				
ENTITY forward_chaining_rule_premise 
  SUBTYPE OF (property_definition, property_definition_representation, representation);
END_ENTITY;

ENTITY func
  SUBTYPE OF (compound_representation_item);
END_ENTITY;

ENTITY global_assignment
  SUBTYPE OF (representation_item_relationship);
END_ENTITY; 

ENTITY ground_fact
  SUBTYPE OF (atomic_formula);
END_ENTITY;

ENTITY literal_conjunction
  SUBTYPE OF (simple_clause);
END_ENTITY;  

ENTITY literal_disjunction
  SUBTYPE OF (simple_clause);
END_ENTITY;  

ENTITY row_value
  SUBTYPE OF (compound_representation_item);
END_ENTITY;

ENTITY row_variable
  SUBTYPE OF (abstract_variable);
END_ENTITY;
																								
ENTITY rule_action
  SUBTYPE OF (action);
END_ENTITY;

ENTITY rule_condition
  SUBTYPE OF (atomic_formula);
END_ENTITY;  
					
ENTITY rule_definition 
 SUBTYPE OF (rule_software_definition);
END_ENTITY;

ENTITY rule_superseded_assignment
 SUBTYPE OF (action_assignment);
     items : SET [1:?] OF rule_superseded_item;
END_ENTITY;

ENTITY rule_set 
 SUBTYPE OF (rule_software_definition);
END_ENTITY;

ENTITY rule_software_definition 
 SUBTYPE OF (product_definition);
END_ENTITY;

ENTITY rule_set_group
SUBTYPE OF (rule_software_definition);
END_ENTITY;

ENTITY rule_supersedence
  SUBTYPE OF (rule_action);
END_ENTITY;

ENTITY scalar_variable
  SUBTYPE OF (abstract_variable);
END_ENTITY;
					
ENTITY simple_clause
  SUBTYPE OF (compound_representation_item);
END_ENTITY;
					
ENTITY symbol
  SUBTYPE OF (representation_item);
END_ENTITY;				
	
END_SCHEMA;


