(*
   $Id$
   ISO TC184/SC4/WG3 N2280 - ISO/CD-TS 10303-1486 Decision support - EXPRESS MIM
*)

SCHEMA Decision_support_mim;

USE FROM Activity_as_realized_mim;

USE FROM Analysis_assignment_mim;

USE FROM Analysis_characterized_mim;

USE FROM External_analysis_representation_mim;

USE FROM Justification_mim;

USE FROM Measure_of_effectiveness_mim;

USE FROM Requirement_management_mim;

USE FROM Verification_and_validation_mim;

TYPE ds_action_items = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON action_items WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   property_definition,
   contract,
   effectivity,
   event_occurrence,
   document_file,
   general_property,
   organization,
   person,
   person_and_organization,
   product,
   product_definition_formation,
   product_definition_formation_relationship,
   product_definition,
   organizational_project,
   product_definition_relationship);
END_TYPE;

TYPE ds_pmri_action_items = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON action_items WITH
	(property_definition,
	contract,
	descriptive_representation_item,
	general_property,
	measure_representation_item,
	product,
	product_definition_formation,
	product_definition_formation_relationship,
	product_definition,
	product_definition_relationship);
END_TYPE;

TYPE ds_ss_action_items = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON action_items WITH
	(executed_action,
	action_method,
	applied_action_assignment);
END_TYPE;

TYPE ds_pmri_aliasable_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON aliasable_item WITH
	(approval,
	approval_status,
	certification,
	applied_organization_assignment, applied_person_and_organization_assignment,
	organizational_project,
	applied_security_classification_assignment,
	product_definition_relationship);
END_TYPE;

TYPE ds_os_aliasable_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON aliasable_item WITH
	(address,
	person,
	person_and_organization);
END_TYPE;

TYPE ds_ss_aliasable_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON aliasable_item WITH
	(event_occurrence,
	product,
	justification_group_assignment, 
        justification_assignment,
	product_relationship,
	justification_support_assignment);
END_TYPE;

TYPE ds_approval_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON approval_item WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment);
END_TYPE;

TYPE ds_pmri_approval_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON approval_item WITH
	(certification,
	effectivity,
	applied_identification_assignment,
	general_property,
	property_definition_representation,
	product_definition_formation_relationship,
	product_definition,
	product_definition_relationship,
	product_definition_context);
END_TYPE;

TYPE ds_ss_approval_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON approval_item WITH
	(property_definition,
	event_occurrence,
	product,
	justification_group_assignment, 
justification_assignment,
	product_relationship,
	justification_support_assignment);
END_TYPE;

TYPE ds_ap233_approval_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON approval_item WITH
	(product,
	product_definition_formation,
	verification,
	verification_evidence,
	verification_relationship);
END_TYPE;

TYPE ds_ap233_analysed_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON analysed_item WITH
	(executed_action,
	action_method,
	action_relationship,
	property_definition,
	organization,
	Organization_relationship,
	product,
	product_definition_formation_relationship,
	product_definition,
	organizational_project_relationship,
	requirement_assignment,
	verification,
	verification_evidence,
	verification_relationship,
	product_definition_context,
	product_definition_relationship);
END_TYPE;

TYPE ds_certification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON certification_item WITH
  (executed_action,
   action_method);
END_TYPE;

TYPE ds_pmri_certification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON certification_item WITH
	(product,
	product_definition_formation,
	product_definition_formation_relationship,
	organizational_project,
	product_definition_relationship);
END_TYPE;

TYPE ds_ap233_certification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON certification_item WITH
	(approval_person_organization,
	property_definition,
	product,
	verification_evidence);
END_TYPE;

TYPE ds_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON classification_item WITH
  (executed_action,
   action_method,
   action_relationship,
   action_status,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON classification_item WITH
	(conversion_based_unit,
	derived_unit,
	applied_external_identification_assignment,
	general_property,
	property_definition_representation,
	product,
	product_category,
	product_definition_formation,
	product_definition_formation_relationship,
	product_definition,
	uncertainty_measure_with_unit,
	named_unit, 
	measure_with_unit,
	product_definition_context,
	product_definition_relationship);
END_TYPE;

TYPE ds_ss_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON classification_item WITH
	(executed_action,
	action_relationship,
	applied_action_assignment,
	property_definition,
	property_definition_representation);
END_TYPE;


TYPE ds_contract_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON contract_item WITH
  (executed_action,
   action_method,
   applied_action_assignment);
END_TYPE;

TYPE ds_pmri_contract_item = EXTENSIBLE SELECT BASED_ON contract_item WITH
	(organization_item, person_and_organization_item,
	product_definition_formation);
END_TYPE;

TYPE ds_ap233_contract_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON contract_item WITH
	(verification);
END_TYPE;

TYPE ds_date_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON date_item WITH
  (executed_action,
   action_method,
   action_relationship,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_date_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON date_item WITH
	(applied_identification_assignment,
	general_property,
	property_definition_representation,
	product_definition_formation,
	product_definition_formation_relationship,
	product_definition,
	product_definition_context);
END_TYPE;

TYPE ds_ap233_date_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON date_item WITH
	(analysis_assignment);
END_TYPE;
TYPE ds_date_and_time_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON date_and_time_item WITH
  (executed_action,
   action_method,
   action_relationship,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_date_and_time_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON date_and_time_item WITH
	(applied_identification_assignment,
	general_property,
	property_definition_representation,
	product_definition_formation,
	product_definition_formation_relationship,
	product_definition,
	product_definition_context);
END_TYPE;

TYPE ds_ap233_date_and_time_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON date_and_time_item WITH
	(analysis_assignment);
END_TYPE;

TYPE ds_document_reference_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON document_reference_item WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_document_reference_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON document_reference_item WITH
	(applied_external_identification_assignment);
END_TYPE;

TYPE ds_ap233_document_reference_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON document_reference_item WITH
	(product);
END_TYPE;

TYPE ds_effectivity_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON effectivity_item WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_effectivity_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON effectivity_item WITH
	(product_definition);
END_TYPE;

TYPE ds_ap233_effectivity_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON effectivity_item WITH
	(analysis_assignment,
	event_occurrence,
	applied_effectivity_assignment,
	applied_external_identification_assignment);
END_TYPE;

TYPE ds_ap233_event_occurrence_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON event_occurrence_item WITH
	(executed_action,
	approval,
	contract,
	product,
	verification);
END_TYPE;

TYPE ds_ap233_external_identification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON external_identification_item WITH
	(person_and_organization,
	product,
	organizational_project);
END_TYPE;

TYPE ds_identification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON identification_item WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_identification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON identification_item WITH
	(document_file,
	applied_external_identification_assignment,
	general_property,
	property_definition_representation,
	measure_representation_item,
	product_category,
	representation,
	product_definition_context,
	product_definition_usage);
END_TYPE;

TYPE ds_ss_identification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON identification_item WITH
	(action_method);
END_TYPE;

TYPE ds_ap233_ir_usage_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON ir_usage_item WITH
	(action_method,
	property_definition,
	contract,
	product,
	organizational_project,
	verification_evidence);
END_TYPE;

TYPE ds_justification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON justification_item WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   approval,
   applied_approval_assignment,
   property_definition,
   applied_classification_assignment,
   applied_document_reference, applied_document_usage_constraint_assignment,
   product_definition,
   effectivity,
   general_property,
   general_property_relationship,
   product,
   product_definition_formation,
   product_definition_formation_relationship,
   verification,
   verification_evidence,
   product_definition_relationship);
END_TYPE;

TYPE ds_pmri_justification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON justification_item WITH
	(descriptive_representation_item,
	measure_representation_item);
END_TYPE;

TYPE ds_ap233_justification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON justification_item WITH
	(analysis_assignment,
	applied_usage_right,
	certification,
	contract,
	information_usage_right,
	applied_organizational_project_assignment,
	requirement_assignment,
	security_classification);
END_TYPE;

TYPE ds_justification_support_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON justification_support_item WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   approval,
   property_definition,
   certification,
   contract,
   product,
   product_definition,
   product_definition_formation,
   effectivity,
   event_occurrence,
   general_property,
   property_definition_representation,
   product_definition_formation_relationship,
   organizational_project,
   verification,
   verification_evidence,
   product_definition_relationship);
END_TYPE;

TYPE ds_pmri_justification_support_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON justification_support_item WITH
	(descriptive_representation_item,
	measure_representation_item,
	product_definition_context);
END_TYPE;

TYPE ds_ap233_justification_support_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON justification_support_item WITH
	(analysis_assignment);
END_TYPE;

TYPE ds_organization_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON organization_item WITH
  (executed_action,
   action_method,
   action_relationship,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_organization_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON organization_item WITH
	(product_definition_formation_relationship);
END_TYPE;

TYPE ds_person_and_organization_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON person_and_organization_item WITH
  (executed_action,
   action_method,
   action_relationship,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_person_and_organization_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON person_and_organization_item WITH
	(product_definition_formation_relationship);
END_TYPE;

TYPE ds_pmri_project_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON project_item WITH
	(general_property);
END_TYPE;

TYPE ds_ap233_project_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON project_item WITH
	(representation,
	product_definition_relationship);
END_TYPE;

(*TYPE ds_pmri_property_assignment_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON property_assignment_select WITH
	(applied_document_reference, applied_document_usage_constraint_assignment,
	applied_organization_assignment, applied_person_and_organization_assignment,
	product_definition,
	organizational_project);
END_TYPE;*)

(*TYPE ds_os_property_assignment_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON property_assignment_select WITH
	(address,
	person,
	person_and_organization);
END_TYPE;*)

(*TYPE ds_ss_property_assignment_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON property_assignment_select WITH
	(applied_action_assignment);
END_TYPE;*)

(*TYPE ds_ap233_property_assignment_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON property_assignment_select WITH
	(executed_action,
	action_relationship,
	analysis_assignment,
	general_property,
	property_definition_representation,
	information_usage_right,
	product,
	product_category,
	product_definition_formation,
	product_definition_formation_relationship,
	property_definition_representation,
	representation,
	representation_context,
	representation_item,
	requirement_source,
	security_classification,
	verification,
	verification_evidence,
	verification_relationship);
END_TYPE;*)


ENTITY ds_characterizable_executed_action
  SUBTYPE OF (executed_action, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_action_relationship
  SUBTYPE OF (action_relationship, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_address
  SUBTYPE OF (address, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_analysis_assignment
  SUBTYPE OF (analysis_assignment, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_applied_action_assignment
  SUBTYPE OF (applied_action_assignment,  characterized_object);
END_ENTITY;


ENTITY ds_characterizable_applied_document_reference
  SUBTYPE OF ( applied_document_reference,  characterized_object);
END_ENTITY;


ENTITY ds_characterizable_applied_document_usage_constraint_assignment
  SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_applied_organization_assignment
  SUBTYPE OF ( applied_organization_assignment,  characterized_object);
END_ENTITY;


ENTITY ds_characterizable_applied_person_and_organization_assignment
  SUBTYPE OF (applied_person_and_organization_assignment, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_general_property
  SUBTYPE OF (general_property, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_information_usage_right
  SUBTYPE OF (information_usage_right, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_organizational_project
  SUBTYPE OF (organizational_project,  characterized_object);
END_ENTITY;


ENTITY ds_characterizable_person
  SUBTYPE OF (person, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_person_and_organization
  SUBTYPE OF (person_and_organization, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_product
  SUBTYPE OF (product, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_product_category
  SUBTYPE OF (product_category, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_product_definition
  SUBTYPE OF (product_definition, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_product_definition_formation
  SUBTYPE OF (product_definition_formation, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_product_definition_formation_relationship
  SUBTYPE OF (product_definition_formation_relationship, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_property_definition_representation
  SUBTYPE OF (property_definition_representation,  characterized_object);
END_ENTITY;


ENTITY ds_characterizable_representation
  SUBTYPE OF (representation, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_representation_context
  SUBTYPE OF (representation_context, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_representation_item
  SUBTYPE OF (representation_item, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_requirement_source
  SUBTYPE OF (requirement_source, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_security_classification
  SUBTYPE OF (security_classification, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_verification
  SUBTYPE OF (verification, characterized_object);
END_ENTITY;


ENTITY ds_characterizable_verification_evidence
  SUBTYPE OF (verification_evidence, characterized_object);
END_ENTITY;


TYPE ds_requirement_assigned_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON requirement_assigned_item WITH
  (action_method,
   verification);
END_TYPE;

TYPE ds_pmri_requirement_assigned_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON requirement_assigned_item WITH
	(product_definition_relationship);
END_TYPE;

TYPE ds_requirement_source_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON requirement_source_item WITH
  (action_method,
   Verification
   );
END_TYPE;

TYPE ds_pmri_requirement_source_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON requirement_source_item WITH
	(product_definition_relationship);
END_TYPE;

TYPE ds_ap233_requirement_source_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON requirement_source_item WITH
	(applied_approval_assignment,
	approval_person_organization,
	applied_certification_assignment,
	applied_contract_assignment,
	applied_organization_assignment, applied_person_and_organization_assignment,
	applied_organizational_project_assignment);
END_TYPE;

TYPE ds_security_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON security_classification_item WITH
  (executed_action,
   action_method,
   applied_action_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_pmri_security_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON security_classification_item WITH
	(product_definition_formation,
	product_definition,
	organizational_project_relationship);
END_TYPE;

TYPE ds_ap233_security_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON security_classification_item WITH
	(property_definition,
	product);
END_TYPE;

TYPE ds_multi_language_attribute_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON multi_language_attribute_item WITH
  (executed_action,
   action_method,
   action_relationship,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_attribute_language_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON attribute_language_item WITH
  (executed_action,
   action_method,
   action_relationship,
   applied_action_assignment,
   product,
   justification_group_assignment, 
justification_assignment,
   product_relationship,
   justification_support_assignment,
   verification,
   verification_evidence);
END_TYPE;

TYPE ds_verification_evidence_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON verification_evidence_item WITH
  (action_method,
   product_definition_formation,
   applied_action_assignment,
   property_definition,
   applied_certification_assignment,
   applied_classification_assignment,
   applied_security_classification_assignment);
END_TYPE;

TYPE ds_ap233_verification_evidence_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON verification_evidence_item WITH
	(action_actual,
	action_relationship,
	action_status,
	analysis_assignment,
	applied_usage_right,
	applied_approval_assignment,
	property_definition,
	applied_contract_assignment,
	date_assignment, date_and_time_assignment,
	applied_effectivity_assignment,
	justification_group_assignment, 
justification_assignment,
	product_relationship,
	justification_support_assignment,
	applied_organization_assignment, applied_person_and_organization_assignment,
	person,
	person_and_organization,
	product,
	product_definition_formation,
	product_definition_formation_relationship,
	product_definition,
	applied_organizational_project_assignment,
	representation,
	representation_context,
	representation_item,
	product_definition_context,
	product_definition_relationship);
END_TYPE;

END_SCHEMA;

