

    Article IDentification System(AIDS) Design Document


Revision History

  * 0.01  2007/12/14  mhsin  ()


Problem

  BBS ϥΪ̱``@ӻݭnGuiDLHYgSw峹AШӤHh\ŪvAi
  u峹ѧOt(Article IDentification System, AIDS)vC
  ̱` AIDS XOWP峹sGuxxxx O yyyy g峹]pG
  iOYӪOAhw峹s^vAOunӽg峹e@g
  QRòMzުŦA᪺峹ҷ|VeɡA]ӳy쥻w峹s
  Vt@g峹]άOSӽs^C
  ]OIkOW[TAҦp峹s[W@̡BDAo|yyz@
  g峹ݭnΤjqŶAoΡC

  zQ AIDS ܤ֭nFHUXIG

    * PO峹Bܿ~
        ϥΤHɶ(time-invariant)åBF@w{װߤ@(uniqueness)
        峹ѧOl(Article IDentifier, AID)C
        q`unuݪOߤ@vYiA]OϥβߺDW``|wݪOC

    * ѧOluBAXbUҨϥ
        ѧOluAåBKϥΪ̦b BBS zBƦzLp
         IRC CC
        ̥ثeϥβߺDA10 ӦrӬOWC
        ӨϥΪŸ]ɶqϥγª^ƦrA[WbUҸݭn
        escape ŸC

    * ঳ĲvaqѧOl峹
        קKϥB~ŶC


Proposed Scheme

  Environment

    ثe pttbbs ҨϥΪ峹ΤKɦWGM]峹^ G]K^BۤQi
    쪺 31-bit Ʀr]ƹWO@ 32-bit time_t Ƴ^B ".A"B
    A "." Τ@ӤT쪺jgQiƦr]ª{ͥXӪ]t̫
    ۥ|Ӧr^AH 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-bitC
    AIDv1 U쪺NqG
      * info: 4-bit
          B~TC
            0: @峹("M")
            1: K("G")
      * v1: 32-bit
          Y time_t C
      * v2: 12-bit
          ̫᪺TQiƦrCYsb]ɦW^h 0C

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

  Resolve AIDu to filename

    q AIDu oɦWuݱN $type, $v1, $v2 Oഫ^ "M"  "G"BQi
    rBTQiƦrAAզXɦWYiC
    ѩ AIDv1 OɦWO_ª{Ҳ͡]$3 sbA$v2 Q]
    0^AGѪRXp M.123456789.A.000 o˪ɦWAYɮפsbAh|h
    |ӦrAH M.123456789.A Aդ@C]zפWoɮ״XGi
    Pɦsb^





