コード例 #1
0
 def test_BoolValsetNget(self):
     typeSystemFilePath = 'tests/testing_data/typesystem.xml'
     typesystem = TypeSystemFactory.readTypeSystem(self, typeSystemFilePath)
     fstype4 = typesystem.getType(
         'de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagDescription')
     fsTagDesc1 = TOP(fstype4, 1, typesystem)
     aFeature = Feature(fsTagDesc1.FStype, 'name')
     aFeature.description = ''
     aFeature.elementType = 'uima.cas.Boolean'
     fsTagDesc1.setBoolValue(aFeature, False)
     self.assertEqual(fsTagDesc1.getBoolValue(aFeature), False)
コード例 #2
0
    def test_ComplexValsetNget(self):
        typeSystemFilePath = 'typesystem.xml'
        typesystem = TypeSystemFactory.readTypeSystem(self, typeSystemFilePath)
        fstype4 = typesystem.getType(
            'de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagDescription')
        fsTagDesc1 = TOP(fstype4, 1, typesystem)
        aFeature = Feature(fsTagDesc1.FStype, 'name')
        aFeature.description = ''
        aFeature.elementType = 'uima.cas.String'

        fsTagDesc1.setComplexValue(aFeature, 1j)
        self.assertEqual(complex(fsTagDesc1.getComplexValue(aFeature)), 1j)
コード例 #3
0
    def test_setListVal_Fail(self):
        typeSystemFilePath = 'typesystem.xml'
        typesystem = TypeSystemFactory.readTypeSystem(self, typeSystemFilePath)
        fstype4 = typesystem.getType(
            'de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagDescription')
        fsTagDesc1 = TOP(fstype4, 1, typesystem)
        aFeature = Feature(fsTagDesc1.FStype, 'name')
        aFeature.description = ''
        aFeature.rangeType = 'uima.cas.String'
        listval = []
        listval.append('#')
        self.assertEqual('', '')
        with self.assertRaises(TypeError):
            nonlist = 1
            fsTagDesc1.setListValue(aFeature, aFeature.rangeType, nonlist)
        with self.assertRaises(TypeError):
            nonfeature = 1
            fsTagDesc1.setListValue(nonfeature, aFeature.rangeType, listval)
        with self.assertRaises(TypeError):
            aFeature.rangeType = 'uima.cas.Inetger'
            fsTagDesc1.setListValue(aFeature, aFeature.rangeType, listval)
        with self.assertRaises(TypeError):
            aFeature.rangeType = typesystem.getType(
                'de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS')

            fsTagDesc1.setListValue(aFeature, aFeature.rangeType, listval)
        with self.assertRaises(TypeError):
            aFeature.rangeType = 'uima.cas.Integer'
            aFeature.elementType = 'uima.cas.String'
            fsTagDesc1.setListValue(aFeature, aFeature.elementType, listval)
コード例 #4
0
    def test_ListValsetNget(self):

        typeSystemFilePath = 'typesystem.xml'
        typesystem = TypeSystemFactory.readTypeSystem(self, typeSystemFilePath)
        fstype4 = typesystem.getType(
            'de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagDescription')
        fsTagDesc1 = TOP(fstype4, 1, typesystem)
        aFeature = Feature(fsTagDesc1.FStype, 'name')
        aFeature.description = ''
        aFeature.rangeType = 'uima.cas.String'
        listval = []
        listval.append('#')
        fsTagDesc1.setListValue(aFeature, aFeature.rangeType, listval)
        self.assertEqual(' '.join(fsTagDesc1.getListValue(aFeature)), '#')
コード例 #5
0
    def test_feature(self):
        typeSystemFilePath = 'typesystem.xml'
        typesystem = TypeSystemFactory.readTypeSystem(self, typeSystemFilePath)
        typeFsArray = typesystem.getType('uima.cas.FSArray')
        typeSa = typesystem.getType(
            'de.tudarmstadt.ukp.dkpro.core.api.anomaly.type.SuggestedAction')
        aFeature = Feature(
            'de.tudarmstadt.ukp.dkpro.core.api.anomaly.type.Anomaly',
            'suggestions')
        aFeature.description = ''
        aFeature.rangeType = typeFsArray
        aFeature.elementType = typeSa

        self.assertEqual(
            aFeature.domain,
            'de.tudarmstadt.ukp.dkpro.core.api.anomaly.type.Anomaly')
        self.assertEqual(aFeature.name, 'suggestions')
        self.assertEqual(aFeature.description, '')
        self.assertEqual(aFeature.rangeType, typeFsArray)
        self.assertEqual(aFeature.elementType.name, typeSa.name)
コード例 #6
0
    def test_FeatureValsetNget(self):
        typeSystemFilePath = 'typesystem.xml'
        typesystem = TypeSystemFactory.readTypeSystem(self, typeSystemFilePath)
        tokenType = 'de.tudarmstadt.ukp.dkpro.core.api.segmentation.type.Token'
        fsTokenType = typesystem.getType(tokenType)
        posType = 'de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS'
        fsPosType = typesystem.getType(posType)

        fsToken = TOP(fsTokenType, 1, typesystem)

        aFeature = Feature(fsToken.FStype, 'pos')
        aFeature.description = ''
        aFeature.rangeType = typesystem.getType(
            'de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS')

        fsPOS = Annotation(fsPosType, 1, typesystem)
        fsPOS.PosValue = "DT"

        fsToken.setFeatureValue(aFeature, fsPOS)
        self.assertEqual(fsToken.getFeatureValue(aFeature), fsPOS)
コード例 #7
0
 def test_setComplexVal_Fail(self):
     typeSystemFilePath = 'typesystem.xml'
     typesystem = TypeSystemFactory.readTypeSystem(self, typeSystemFilePath)
     fstype4 = typesystem.getType(
         'de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagDescription')
     fsTagDesc1 = TOP(fstype4, 1, typesystem)
     aFeature = Feature(fsTagDesc1.FStype, 'name')
     aFeature.description = ''
     aFeature.elementType = 'uima.cas.String'
     self.assertEqual('', '')
     with self.assertRaises(TypeError):
         fsTagDesc1.setComplexValue(aFeature, 10.1)
     with self.assertRaises(TypeError):
         nonfeature = 1
         fsTagDesc1.setComplexValue(nonfeature, 1j)
     with self.assertRaises(TypeError):
         aFeature.elementType = None
         fsTagDesc1.setComplexValue(aFeature, 1j)
     with self.assertRaises(TypeError):
         aFeature.elementType = 'uima.cas.Integer'
         fsTagDesc1.setComplexValue(aFeature, 1j)
コード例 #8
0
    def readTypeSystem(self, typesystempath):
        #create TypeSystem object
        typesystem = TypeSystem()
        #create TypeSystemParser object
        typesytemParser = TypeSystemParser()
        # set the type system path to TypeSystemParser
        typesytemParser.setTypeAsFile(typesystempath)
        # populate TypeSystem name space attribute to contain the base name space
        typesystem.namespace = typesytemParser.getTypeSystemDescNamespace()

        # iterate type description elements returned by the parser and create a typeDescription object for TypeSystem
        for tdelement in typesytemParser.getTypeDescElements():
            # create type description object
            TDname = typesytemParser.getElementText(
                typesytemParser.getTypeDescriptionName(tdelement))
            TDdesc = typesytemParser.getElementText(
                typesytemParser.getTypeDescriptionDescription(tdelement))
            typeDesc = TypeDescription(TDname, TDdesc)
            typeDesc.superType = typesytemParser.getElementText(
                typesytemParser.getTypeDescriptionSuperType(tdelement))
            #get the features element from parser
            features = typesytemParser.getTypeDescriptionFeatures(tdelement)
            if not features == None:
                #get the feature description element from the parser and create features object for typeDescription
                for felement in typesytemParser.getFeatureDescElements(
                        features):
                    fdomain = TDname
                    fname = typesytemParser.getElementText(
                        typesytemParser.getFeatureDescName(felement))
                    feature = Feature(fdomain, fname)
                    feature.description = typesytemParser.getElementText(
                        typesytemParser.getFeatureDescDescription(felement))

                    rangeVal = typesytemParser.getFeatureDescRangeType(
                        felement)
                    elementVal = typesytemParser.getFeatureDescElementType(
                        felement)
                    if (not rangeVal == None):
                        rangeValStr = typesytemParser.getElementText(rangeVal)
                        if (rangeValStr == CAS_Type.TYPE_NAME_FSARRAY
                                and elementVal == None):
                            raise TypeError(
                                fname,
                                'has only rangeType as FSArray, no element type found'
                            )
                            return
                        #if range type is primitive CAS type
                        if (rangeValStr == CAS_Type.TYPE_NAME_BOOLEAN
                                or rangeValStr == CAS_Type.TYPE_NAME_FLOAT
                                or rangeValStr == CAS_Type.TYPE_NAME_DOUBLE
                                or rangeValStr == CAS_Type.TYPE_NAME_INTEGER
                                or rangeValStr == CAS_Type.TYPE_NAME_LONG
                                or rangeValStr == CAS_Type.TYPE_NAME_STRING):

                            #set the range type from type system of the feature
                            feature.rangeType = rangeValStr
                        else:
                            feature.rangeType = TypeDescription(rangeValStr)

                    if (not elementVal == None):
                        elementValStr = typesytemParser.getElementText(
                            elementVal)
                        #if element type is primitive CAS type
                        if (elementValStr == CAS_Type.TYPE_NAME_BOOLEAN
                                or elementValStr == CAS_Type.TYPE_NAME_FLOAT
                                or elementValStr == CAS_Type.TYPE_NAME_DOUBLE
                                or elementValStr == CAS_Type.TYPE_NAME_INTEGER
                                or elementValStr == CAS_Type.TYPE_NAME_LONG
                                or elementValStr == CAS_Type.TYPE_NAME_STRING):

                            #set the range type from type system of the feature
                            feature.elementType = elementValStr
                        else:
                            feature.elementType = TypeDescription(
                                elementValStr)

                    #add the feature to the TypeDescription object
                    typeDesc.addFeature(feature)
            #add the TypeDescription to the TypeSystem object
            typesystem.addTypeDesc(typeDesc)

            #add inbuilt uima.cas.AnnotationBase type with sofa feature
            typeDescABase = TypeDescription('uima.cas.AnnotationBase', '')
            typeDescABase.superType = 'uima.cas.TOP'
            featureSofa = Feature('uima.cas.AnnotationBase', 'sofa')
            featureSofa.description = ''
            featureSofa.elementType = TypeDescription('uima.cas.Sofa')
            typeDescABase.addFeature(featureSofa)
            typesystem.addTypeDesc(typeDescABase)

            #add inbuilt uima.tcas.Annotation type with begin  and end feature
            typeDescABase = TypeDescription('uima.tcas.Annotation', '')
            typeDescABase.superType = 'uima.cas.AnnotationBase'
            #add begin feature to inbuilt uima.tcas.Annotation
            featureSofa = Feature('uima.tcas.Annotation', 'begin')
            featureSofa.description = ''
            featureSofa.elementType = CAS_Type.TYPE_NAME_INTEGER
            typeDescABase.addFeature(featureSofa)
            #add end feature to inbuilt uima.tcas.Annotation
            featureSofa = Feature('uima.tcas.Annotation', 'end')
            featureSofa.description = ''
            featureSofa.elementType = CAS_Type.TYPE_NAME_INTEGER
            typeDescABase.addFeature(featureSofa)
            #add inbuilt uima.tcas.Annotation type to the list of type descriptions
            typesystem.addTypeDesc(typeDescABase)

            #add inbuilt FSArray type
            typeDescFsArray = TypeDescription('uima.cas.FSArray', '')
            typeDescFsArray.superType = 'uima.cas.TOP'
            typesystem.addTypeDesc(typeDescFsArray)

            #add inbuilt sofa type
            typeDescSofa = TypeDescription('uima.cas.Sofa', '')
            typeDescSofa.superType = 'uima.cas.TOP'
            #add sofaNum feature to inbuilt sofa type
            featureSofaNum = Feature('uima.cas.Sofa', 'sofaNum')
            featureSofaNum.description = ''
            featureSofaNum.elementType = CAS_Type.TYPE_NAME_INTEGER
            typeDescSofa.addFeature(featureSofaNum)
            #add sofaID feature to inbuilt sofa type
            featureSofaID = Feature('uima.cas.Sofa', 'sofaID')
            featureSofaID.description = ''
            featureSofaID.elementType = CAS_Type.TYPE_NAME_STRING
            typeDescSofa.addFeature(featureSofaID)
            #add mimeType feature to inbuilt sofa type
            featureMimeType = Feature('uima.cas.Sofa', 'mimeType')
            featureMimeType.description = ''
            featureMimeType.elementType = CAS_Type.TYPE_NAME_STRING
            typeDescSofa.addFeature(featureMimeType)
            #add sofaString feature to inbuilt sofa type
            featureSofaString = Feature('uima.cas.Sofa', 'sofaString')
            featureSofaString.description = ''
            featureSofaString.elementType = CAS_Type.TYPE_NAME_STRING
            typeDescSofa.addFeature(featureSofaString)
            #add inbuilt sofa type to the list of type descriptions
            typesystem.addTypeDesc(typeDescSofa)

        return typesystem
コード例 #9
0
 def sofaString(self, value):
     aFeature = Feature(self.FStype, 'sofaString')
     aFeature.description = ''
     aFeature.elementType = CAS_Type.TYPE_NAME_STRING
     self.setStringValue(aFeature, value)
コード例 #10
0
 def mimeType(self):
     aFeature = Feature(self.FStype, 'mimeType')
     aFeature.description = ''
     aFeature.elementType = CAS_Type.TYPE_NAME_STRING
     return self.getStringValue(aFeature)
コード例 #11
0
 def sofaNum(self, value):
     aFeature = Feature(self.FStype, 'sofaNum')
     aFeature.description = ''
     aFeature.elementType = CAS_Type.TYPE_NAME_INTEGER
     self.setIntValue(aFeature, value)