    # File lib/wordnet/synset.rb, line 94
                            def initialize( type, offset, pos=Noun, sourceWn=0, targetWn=0 )

                                    # Allow type = '!', 'antonym', or :antonym. Also handle
                                    # splitting of :memberMeronym and '%m' into their correct
                                    # type/subtype parts.
                                    @type = @subtype = nil
                                    if type.to_s.length == 1
                                            @type = PointerSymbols[ type[0,1] ]
                                    elsif type.to_s.length == 2
                                            @type = PointerSymbols[ type[0,1] ]
                                            @subtype = PointerSubTypes[ @type ].index( type )
                                    else
                                            if PointerTypes.key?( type.to_s.intern )
                                                    @type = type.to_s.intern
                                            elsif /([a-z]+)([A-Z][a-z]+)/ =~ type.to_s
                                                    subtype, maintype = $1, $2.downcase
                                                    @type = maintype.intern if
                                                            PointerTypes.key?( maintype.intern )
                                                    @subtype = subtype.intern
                                            end
                                    end
                                    raise ArgumentError, "No such pointer type %p" % type if
                                            @type.nil?

                                    # Allow pos = 'n', 'noun', or :noun
                                    @partOfSpeech = nil
                                    if pos.to_s.length == 1
                                            @partOfSpeech = SyntacticSymbols[ pos ]
                                    else
                                            @partOfSpeech = pos.to_s.intern if
                                                    SyntacticCategories.key?( pos.to_s.intern )
                                    end
                                    raise ArgumentError, "No such part of speech %p" % pos if
                                            @partOfSpeech.nil?

                                    # Other attributes
                                    @offset             = offset
                                    @sourceWn   = sourceWn
                                    @targetWn   = targetWn
                            end