Article IDentification System(AIDS) Design Document


Revision History

  * 0.01  2007/12/14  mhsin  (������)


Problem

  BBS �ϥΪ̱`�`���@�ӻݭn�G�u�i�D�L�H�Y�g�S�w�峹�A�Ш��ӤH�h�\Ū�v�A�i��
  �����u�峹�ѧO�t��(Article IDentification System, AIDS)�v�C
  �̱`���� AIDS �����X�O�W�P�峹�s���G�uxxxx �O���� yyyy �g�峹�]�p�G����
  �i��O���Y�ӪO�A�h�������w�峹�s���^�v�A���O�u�n�ӽg�峹���e������@�g��
  ���Q�R���òM�z���ުŦ�A���᪺�峹�ҷ|�V�e���ɡA�]�ӳy���쥻���w���峹�s
  �����V�t�@�g�峹�]�άO�S���ӽs���^�C
  �]�����O�I�����k�O�W�[��T�A�Ҧp�峹�s���[�W�@�̡B���D�A���o�|�y���y�z�@
  �g�峹�ݭn���Τj�q���Ŷ��A��o������ΡC

  �z�Q�� AIDS �ܤ֭n��F���H�U�X�I�G

    * �P�O�峹�����B���ܿ��~
        �ϥΤ��H�ɶ�����(time-invariant)�åB�F��@�w�{�װߤ@��(uniqueness)
        ���峹�ѧO�l(Article IDentifier, AID)�C
        �q�`�u�n����u�ݪO���ߤ@�v�Y�i�A��]�O�ϥβߺD�W�`�`�|���w�ݪO�C

    * �ѧO�l���u�B�A�X�b�U�����Ҩϥ�
        �ѧO�l�������u�A�åB�K��ϥΪ̦b BBS ����z�B�Ʀ���z���L�p����
        �� IRC ���C��C
        �̥ثe���ϥβߺD�A10 �Ӧr�����������ӬO�W���C
        �ӨϥΪ��Ÿ��]���ɶq�ϥγ�ª��^�Ʀr�A�[�W�����b�U�����Ҹ����ݭn
        escape ���Ÿ��C

    * �঳�IJv�a�q�ѧO�l����峹
        �קK�ϥ��B�~���Ŷ��C


Proposed Scheme

  Environment

    �ثe pttbbs �ҨϥΪ��峹�Τ�K�ɦW���GM�]�峹�^�� G�]��K�^�B���ۤQ�i
    �쪺 31-bit �Ʀr�]�ƹ�W�O�@�� 32-bit time_t �����Ƴ����^�B���� ".A"�B
    �A���� "." �Τ@�ӤT�쪺�j�g�Q���i��Ʀr�]�ª��{�����ͥX�Ӫ����]�t�̫�
    �ۥ|�Ӧr���^�A�H regular expression �����G

    /^(M|G)\.(\d+)\.A(?:\.([0-9A-F]{3}))?$/
    $type = $1
    $v1 = $2
    $v2 = (defined($3) ? hex($3) : 0)

  AID(Article IDentifier)

    ���@�ӳ̤j 64-bit ���L����ơA�{���q�]�i�٬� AIDv1�^�u�ϥ� 48-bit�C
    AIDv1 ���U��쪺�N�q�G
      * info: 4-bit
          �B�~��T�C
            0: �@��峹("M")
            1: ��K("G")
      * v1: 32-bit
          �Y time_t �����C
      * v2: 12-bit
          �̫᪺�T��Q���i��Ʀr�C�Y���s�b�]���ɦW�^�h�� 0�C

    AID �t�~���X�ت��{�κA�G
      * AIDu(AID uncompressed)
          �Y AID�A�H uncompressed �j�ը䬰��l�κA�C
      * AIDc(AID compressed)
          �H���� Base64 �����{�覡�]�Y�C 6-bit �H�@�Ӧr�����ܡ^�A�Φr���
          �� AIDu�C
          �ثe�H 0-9, A-Z, a-z, -, _ �@ 64 �ӲŸ��N�� 6-bit �� 0~64 ���ȡC
          AIDv1 �ϥ� 48-bit�A�G�ন AIDc �ɬ� 8 �Ӧr�����C
    AIDu �P AIDc �i���������ഫ�C

  Resolve AIDu to filename

    �q AIDu �o���ɦW�u�ݱN $type, $v1, $v2 ���O�ഫ�^ "M" �� "G"�B�Q�i���
    �r�B�T��Q���i��Ʀr�A�A�զX���ɦW�Y�i�C
    ���ѩ� AIDv1 ���O���ɦW�O�_���ª��{���Ҳ��͡]$3 �������s�b�A$v2 �Q�]��
    0�^�A�G�ѪR�X�p M.123456789.A.000 �o�˪��ɦW�A�Y�ɮפ��s�b�A�h�|�h����
    ��|�Ӧr���A�H M.123456789.A �A���դ@���C�]�z�פW�o����ɮ״X�G���i��
    �P�ɦs�b�^