Issue 5528: abstract base classes should be removed from ref entity declarations in DTD (gene-expression-ftf) Source: Rosetta Biosoftware Business Unit (Mr. Michael D Miller, nobody) Nature: Uncategorized Issue Severity: Summary: The DTD currently is generated with the rule that the *_ref entity includes abstract class refs. Since these can't be instantiated, implementations break when trying to figure out which class to map to. This is because the identifier concept allows using the identifier to be an alternative key in the case that the identifier isn't immediately resolvable. But without knowing the actually base class, this won't work. This is a particular problem for use in disconnected inhouse high through-put pipelines. Recommend that the abstract base classes be removed from the ref entity declarations in the DTD. Resolution of the issue would change: MAGE-ML.dtd (through a change to WriteDTDClassElement) Section 4.1.2, "Mapping from MAGE-OM to MAGE-ML" Resolution: see below Revised Text: Changes to the specification: Section 3.1.2.4, "Entity Declarations" Currently: 1st paragraph, 2nd sentence "One, for those roles this base class is the end class, the *_class or *_ref (where * is replaced by the base class name) entity is used and is a choice group of all the instantiable classes of this base class for *_class and all classes for the *_ref." Becomes: "One, for those roles this base class is the end class, the *_class or *_ref (where * is replaced by the base class name) entity is used and is a choice group of all the instantiable classes of this base class for *_class and for the *_ref." Entity ref example Currently: <!ENTITY % BioAssay_ref "BioAssay_ref | PhysicalBioAssay_ref | DerivedBioAssay_ref | MeasuredBioAssay_ref" > Becomes: <!ENTITY % BioAssay_ref "PhysicalBioAssay_ref | DerivedBioAssay_ref | MeasuredBioAssay_ref" > MAGE-ML.dtd (through a change to WriteDTDClassElement) Currently: "<!ENTITY % QuantitationType_ref "QuantitationType_ref | SpecializedQuantitationType_ref |" Becomes: "<!ENTITY % QuantitationType_ref "SpecializedQuantitationType_ref |" Currently: "<!ENTITY % ConfidenceIndicator_ref "ConfidenceIndicator_ref | Error_ref |" Becomes: "<!ENTITY % ConfidenceIndicator_ref "Error_ref |" Currently: "<!ENTITY % Contact_ref "Contact_ref | Person_ref |" Becomes: "<!ENTITY % Contact_ref "Person_ref |" Currently: "<!ENTITY % BioMaterial_ref "BioMaterial_ref | BioSource_ref |" Becomes: "<!ENTITY % BioMaterial_ref "BioSource_ref |" Currently: "<!ENTITY % BioAssay_ref "BioAssay_ref | PhysicalBioAssay_ref |" Becomes: "<!ENTITY % BioAssay_ref "PhysicalBioAssay_ref |" Currently: "<!ENTITY % BioAssayData_ref "BioAssayData_ref | DerivedBioAssayData_ref |" Becomes: "<!ENTITY % BioAssayData_ref "DerivedBioAssayData_ref |" Currently: "<!ENTITY % DesignElementDimension_ref "DesignElementDimension_ref | CompositeSequenceDimension_ref |" Becomes: "<!ENTITY % DesignElementDimension_ref "CompositeSequenceDimension_ref |" Currently: "<!ENTITY % DesignElementMap_ref "DesignElementMap_ref | CompositeCompositeMap_ref |" Becomes: "<!ENTITY % DesignElementMap_ref "CompositeCompositeMap_ref |" Currently: "<!ENTITY % DesignElement_ref "DesignElement_ref | Reporter_ref |" Becomes: "<!ENTITY % DesignElement_ref "Reporter_ref |" Actions taken: July 20, 2002: received issue December 11, 2002: closed issue Discussion: This fixes the problem that, since they can't be instantiated, if the concrete subclass isn't known yet, a placeholder can't be created to map to. End of Annotations:===== X-Server-Uuid: F7D3E4A3-3C15-41D2-AC5D-A7D3F094E28F From: "Miller, Michael (Rosetta)" To: "'Juergen Boldt'" cc: "'GE FTF'" Subject: RE: Issues for GE Specification Date: Sat, 20 Jul 2002 10:36:42 -0700 X-Mailer: Internet Mail Service (5.5.2653.19) X-WSS-ID: 112741013683-01-01 Hi Juergen, Here's the second batch of issues for the Gene Expression FTF (dtc/02-02-05). thanks, as always, Michael Michael Miller Senior Application Developer Rosetta Biosoftware michael_miller@rosettabio.com www.rosettabio.com ================================================================ The DTD currently is generated with the rule that the *_ref entity includes abstract class refs. Since these can't be instantiated, implementations break when trying to figure out which class to map to. This is because the identifier concept allows using the identifier to be an alternative key in the case that the identifier isn't immediately resolvable. But without knowing the actually base class, this won't work. This is a particular problem for use in disconnected inhouse high through-put pipelines. Recommend that the abstract base classes be removed from the ref entity declarations in the DTD. Resolution of the issue would change: MAGE-ML.dtd (through a change to WriteDTDClassElement) Section 4.1.2, "Mapping from MAGE-OM to MAGE-ML" (MAGE ISSUE 101)