Issue 7771: The predicates data type shall be clarified and described in more detail. (plm-ftf) Source: PROSTEP AG (Dr. Lutz Laemmer, lutz.laemmer@prostep.com Lutz.Laemmer@PROSTEP.com laemmer@prostep.de laemmer@prostep.com) Nature: Enhancement Severity: Minor Summary: The predicates data type shall be clarified and described in more detail. Resolution: Revised Text: Resolution: Change as proposed. Add new subsection 8.12.1 at the end of section 8.12.Generic Queries Conformance Point. This resolution resolves issue 7885, 7944, 7926, and 8435. Revised Text: Add the following text at the end of seciont 8.12 Generic Queries: 8.12.1. Specialized Predicates for filtering of object sets Each non-abstract spezialisation of the abstract class Predicate defines a constraint for filtering object sets. Filtering means that the algorithm is applied to each object in the set and only the objects which fit the constraint remain in the set. The following non-abstract specializations of the class Predicate are defined in this specification: 8.12.1.1 Alternative_predicate Figure 1 Class diagram of class Alternative_predicate An object fulfill an Alternative_predicate constraint if it fulfill at least one the Predicate instances referenced by the relationship predicate of the Alternative_predicate. 8.12.1.2 Attribute_equals_predicate Figure 2 Class diagram of class Attribute_equals_predicate An object fulfill an Attribute_equals_predicate if it has an attribute with the name given in the attribute attribute_name of the Attribute_equals_predicate and if that attribute has a value which is equals to the value given by the attribute attribute_value of the Attribute_equals_predicate. 8.12.1.3 Attribute_greater_than_predicate Figure 3 Class diagram of class Attribute_greater_than_predicate An object fulfill an Attribute_greater_than_predicate if it has an attribute with the name given in the attribute attribute_name of the Attribute_greater_than_predicate and if that attribute has a value which is greater than the value given by the attribute attribute_value of the Attribute_greater_than_predicate. 8.12.1.4 Attribute_less_than_predicate Figure 4 Class diagram of class Attribute_less_than_predicate An object fulfill an Attribute_less_than_predicate if it has an attribute with the name given in the attribute attribute_name of the Attribute_less_than_predicate and if that attribute has a value which is less than the value given by the attribute attribute_value of the Attribute_less_than_predicate. 8.12.1.5 Attribute_pattern_predicate Figure 5 Class diagram of class Attribute_pattern_predicate An object fulfill an Attribute_pattern_predicate if it has an attribute with the name given in the attribute attribute_name of the Attribute_pattern_predicate and if that attribute has a value which match the pattern given by the attribute attribute_value of the Attribute_pattern_predicate. This specification uses the pattern language defined in [XML Schema W3C Recommendation 28 October 2004]. 8.12.1.6 Identifier_predicate Figure 6 Class diagram of class Identifier_predicate All classes which have a composition of type Alias_identification have also an attribute that corresponds with the attribute alias_id of the related Alias_identification. These corresponding attributes are identifying attributes and can be filtered by Identifier_predicates. There are three alternatives how an object can fulfill the constraints of an Identifier_predicate. 1. If the attribute identifier_scope of the Identifier_predicate is not set, an object fulfill the Identifier_predicate if it has an identifier attribute and if that attribute has a value that matches the pattern given by the attribute identifier_value of the Identifier_predicate. 2. If the attribute identifier_scope of an Identifier_predicate is set, an object fulfill the Identifier_predicate if it has an Alias_identification with an value for its attribute alias_scope that is equals to the value of the attribute identifier_scope and if the attribute alias_id of the Alias_identification has a value that matches the pattern given by the attribute identifier_value of the Identifier_predicate. 3. If the attribute identifier_scope of an Identifier_predicate is set, an object fulfill the Identifier_predicate if it has an identifier attribute and if that attribute has a value that matches the pattern given by the attribute identifier_value of the Identifier_predicate and if it is referenced by the relationship is_applied_to of a Person_organization_assignment_instance and the attribute role of the Person_organization_assignment instance has the value "id owner" and the Person_organization_assignment is referenced by the composition person_organization_assignment of an Organization instance and the attribute id of the Organization instance is equals to the value of the attribute identifier_scope of the Identifier_predicate. This specification uses the pattern language defined in [XML Schema W3C Recommendation 28 October 2004]. 8.12.1.7 Relationship_predicate Figure 7 Class diagram of class Relationship_predicate An object fulfill a Relationship_predicate constraint if it fulfill the following partial constraints: · The object is related with another object that fulfill all the Predicate instances referenced by the relationship predicate of the Relationship_predicate. · If the value of the attribute inverse of the Relationship_predicate is not true and if the attribute role_name is set, the role name of the other object in the relationship must be equals to the value of the attribute role_name of the Relationship_predicate. · If the value of the attribute inverse of the Relationship_predicate is true and if the attribute role_name is set, the role name of this object in the relationship must be equals to the value of the attribute role_name of the Relationship_predicate. · If the attribute role_declaring_type_name is set, the relationship must be defined in a type which name is equals to the value of the attribute role_decalring_type_name. 8.12.1.8 String_select_predicate Figure 8 Class diagram of class String_select_predicate An object fulfill a String_select_predicate if it has an attribute of type String_select with the name given in the attribute string_name of the String_select_predicate and if it fulfill one of the following constaints: · If the attribute string_language is not set and the attribute with the name given by the attribute string_name must be a Default_language_string which value is equals to the value given by the attribute string_value of the String_select_predicate. · If the attribute string_language is set and equals the default language of the server implementation the attribute with the name given by the attribute string_name must be an instance of Default_language_string_with a value which is equals to the value given by the attribute string_value of the String_select_predicate or an instance of Multi_language_string with a primary_language_dependent_string which value is equals to the value given by the attribute string_value of the String_select_predicate. · If the attribute string_language is set and not equals the default language of the server implementation the attribute with the name given by the attribute string_name must be an instanceof Multi_language_string and have a additional_language_dependent_string which value is equals to the value given by the attribute string_value of the String_select_predicate. 8.12.1.9 Type_predicate Figure 9 Class diagram of class Type_predicate If the value of the attribute exact_type_match of an Type_predicate is TRUE, an object fulfill that Type_predicate constraint if it has exact the type specified in the attribute type_name of the Type_predicate. If the value of the attribute exact_type_match of an Type_predicate is not TRUE, an object fulfill that Type_predicate constraint if it is an instance of the type specified in the attribute type_name of the Type_predicate or an instance of a derivation of that type. Replace the definition of complexType Attribute_predicate in the PLMComputationalModel.xsd by the following definitions: <xs:complexType name="Attribute_predicate" abstract="true"> <xs:complexContent> <xs:extension base="Predicate"> <xs:sequence> <xs:element name="Attribute_name" type="xs:string"/> <xs:element name="Attribute_value" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="Attribute_equals_predicate"> <xs:complexContent> <xs:extension base="Attribute_predicate"/> </xs:complexContent> </xs:complexType> <xs:complexType name="Attribute_greater_than_predicate"> <xs:complexContent> <xs:extension base="Attribute_predicate"/> </xs:complexContent> </xs:complexType> <xs:complexType name="Attribute_less_than_predicate"> <xs:complexContent> <xs:extension base="Attribute_predicate"/> </xs:complexContent> </xs:complexType> <xs:complexType name="Attribute_pattern_predicate"> <xs:complexContent> <xs:extension base="Attribute_predicate"/> </xs:complexContent> </xs:complexType> Actions taken: September 20, 2004: received issue August 1, 2005: closed issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 20 Sep 2004 05:33:42 -0400 To: Subject: Issue/Bug Report -------------------------------------------------------------------------------- Name: Lutz Laemmer Company: PROSTEP AG mailFrom: laemmer@prostep.de Notification: No Specification: PLM Services Section: 8.9 FormalNumber: dtc/04-05-05 Version: 1 RevisionDate: 31.05.2004 Page: 330 Nature: Enhancement Severity: Minor HTTP User Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) Description The predicates data type shall be clarified and described in more detail.