Annotation of researchv10no/cmd/prefer/styles/newieee, revision 1.1.1.1

1.1       root        1: ###
                      2: ### ieee reference formatting style
                      3: ###
                      4: 
                      5: BEGIN  {
                      6:        PASS = "";              # only one pass thru document   
                      7:        sortflag = 0;           # reference_placement bibliography is not sorted
                      8:        STYLE = ieee;
                      9:        SKEY = "adt";
                     10: }
                     11: 
                     12: #######################################################
                     13: #
                     14: # Functions required by general awk script
                     15: #
                     16: #######################################################
                     17: 
                     18: ##
                     19: ## Set author and editor fields
                     20: ##     for reference
                     21: ##     for possible sorting
                     22: 
                     23: func setauthor(b,a) {
                     24:        Afull[b,a] = F_MLast();
                     25:        Asort[b] = Asort[b] LastFM()" ";
                     26: }
                     27: 
                     28: 
                     29: func seteditor(b,a) {
                     30:        E[b,a] = F_MLast();
                     31:        Esort[b] = Esort[b] LastFM() " ";
                     32: }
                     33: 
                     34: ##
                     35: ## citations
                     36: ##     print a citation list
                     37: ##     troff   superscripted numbers
                     38: ##     nroff   numbers in square brackets
                     39: ##
                     40: func citations(tpunc) {
                     41: 
                     42:        seq = "no";
                     43:        sep = "";
                     44: 
                     45:        # troff citation
                     46: 
                     47:        if(nroff == 0) {
                     48:                tcite = "";
                     49:                begin_super = "\\^\\s-2\\v'-0.4m'\\f1\\&";
                     50:                end_super = "\\fP\\v'0.4m'\\s+2"
                     51:                if(quote(tpunc) || period(tpunc))
                     52:                        end_super = end_super "\\ ";
                     53: 
                     54:                # format the list of citations, putting in commas and hypens
                     55: 
                     56:                for(i=1; i<=cites; i++) {
                     57:                        seq = sequence(i,cites);
                     58:                        if (seq == "in") continue;
                     59:                        if (seq == "end") {
                     60:                                sep = "-";
                     61:                                seq = "no";
                     62:                        }
                     63:                        tcite = tcite sep makemark(i);
                     64:                        sep = ",\\ ";
                     65:                }
                     66:                printf "%s%s%s%s", tpunc, begin_super, tcite, end_super;
                     67:        }
                     68: 
                     69:        # nroff citation
                     70: 
                     71:        else {
                     72:                ncite = "\n";
                     73:                if(quote(tpunc)) {
                     74:                        ncite = tpunc " ";
                     75:                        tpunc = "\\ ";
                     76:                }
                     77:                else if(tpunc == "(") {
                     78:                        ncite = tpunc;
                     79:                        tpunc = "";
                     80:                }
                     81: 
                     82:                # format the list of citations, putting in commas and hypens
                     83: 
                     84:                for(i=1; i<=cites; i++) {
                     85:                        seq = sequence(i,cites);
                     86:                        if (seq == "in") continue;
                     87:                        if (seq == "end") {
                     88:                                sep = "-";
                     89:                                seq = "no";
                     90:                        }
                     91:                        ncite = ncite sep "[" makemark(i) "]";
                     92:                        sep = ", ";
                     93:                }
                     94:                printf "%s%s", ncite, tpunc;
                     95:        }
                     96: }
                     97: 
                     98: func quote(punc) {
                     99:        if(tpunc == "\"" || tpunc == "'") return 1;
                    100:        return 0;
                    101: }
                    102: 
                    103: func period(punc) {
                    104:        if (tpunc == "." || tpunc == "!" || tpunc == "?") return 1;
                    105:        return 0;
                    106: }
                    107: 
                    108: 
                    109: ##
                    110: ## makemark
                    111: ##     return citation mark: identical citations have the same number
                    112: ##
                    113: func makemark(m) {
                    114:        return(uniqno[bibptr[m]]);
                    115: }
                    116: 
                    117: 
                    118: ##
                    119: ## bibindex
                    120: ##     print citation mark for the bibliography;
                    121: ##     return an index for accessing rest of citation
                    122: ##
                    123: func bibindex(b) {
                    124:        printf ".sp .5\n.ti -\\w'" b ".\\ \\ \\ 'u\n";
                    125:        printf b ".\\ \\ \\ " ;
                    126:        if (sortflag) return sortorder[b];
                    127:        else return b;
                    128: }
                    129: 
                    130: 
                    131: #############################################
                    132: #
                    133: # Reference types
                    134: #
                    135: ############################################
                    136: 
                    137: 
                    138: func book(b) {
                    139:                        punc = "";
                    140:        # authorlist,
                    141:                        if(authors[b]) {
                    142:                                authorlist(b);
                    143:                                punc = ",\n";
                    144:                        }
                    145:        # italic(title),
                    146:                        if(title[b]) {
                    147:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
                    148:                                punc = ",\n";
                    149:        # Vol. #,
                    150:                                if(volstr[b])
                    151:                                        printf "%s%s", punc, volstr[b];
                    152:                                else if(volume[b])
                    153:                                        printf "%sVol. %s", punc, volume[b];
                    154:                        }
                    155:        # publisher,
                    156:                        printf "%s%s", punc, issuer[b] ;
                    157:                        punc = ",\n";
                    158:        # location,
                    159:                        if (city[b])
                    160:                                printf "%s%s", punc, city[b] ;
                    161:        # date,
                    162:                        printf "%s%s", punc, date[b] ;
                    163:        # pages
                    164:                        if ( pages[b]) {
                    165:                                if ( pages[b] ~ /[,-]/ )
                    166:                                        printf "%spp. %s", punc, pages[b];
                    167:                                else printf "%sp. %s", punc, pages[b];
                    168:                        }
                    169: }
                    170: 
                    171: 
                    172: func editedbook(b) {
                    173: 
                    174:                        punc = "";
                    175:        # authorlist, Ed.,
                    176:                        if(authors[b]) {
                    177:                                authorlist(b);
                    178:                                if(authors[b] <2)
                    179:                                        printf ", Ed.";
                    180:                                else
                    181:                                        printf ", Eds.";
                    182:                                punc = ",\n";
                    183:                        }
                    184:        # italic(title),
                    185:                        if(title[b]) {
                    186:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
                    187:                                punc = ",\n";
                    188:        # Vol. #,
                    189:                                if(volstr[b])
                    190:                                        printf "%s%s", punc, volstr[b];
                    191:                                else if(volume[b])
                    192:                                        printf "%sVol. %s", punc, volume[b];
                    193:                        }
                    194:        # publisher,
                    195:                        printf "%s%s", punc, issuer[b] ;
                    196:                        punc = ",\n";
                    197:        # location,
                    198:                        if (city[b])
                    199:                                printf "%s%s", punc, city[b] ;
                    200:        # date,
                    201:                        printf "%s%s", punc, date[b] ;
                    202:        # pages
                    203:                        if ( pages[b]) {
                    204:                                if ( pages[b] ~ /[,-]/ )
                    205:                                        printf "%spp. %s", punc, pages[b];
                    206:                                else printf "%sp. %s", punc, pages[b];
                    207:                        }
                    208: }
                    209: 
                    210: func thesis(b) {
                    211:                        punc = "";
                    212:        # authorlist,
                    213:                        if(authors[b]) {
                    214:                                authorlist(b);
                    215:                                punc = ",\n";
                    216:                        }
                    217:        # italic(title),
                    218:                        if(title[b]) {
                    219:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
                    220:                                punc = ",\n";
                    221:                        }
                    222:        # thesis,
                    223:                        printf punc;
                    224:                        if(reftype[b] == "phdthesis")
                    225:                                printf "PhD Thesis";
                    226:                        else
                    227:                                printf "Master's Thesis";
                    228:                        punc = ",\n";
                    229:        # report number,
                    230:                        if(report[b])
                    231:                                printf "%s%s", punc, report[b];
                    232:        # school,
                    233:                        printf "%s%s", punc, issuer[b];
                    234:        # date
                    235:                        printf "%s%s", punc, date[b] ;
                    236: }
                    237: 
                    238: func review(b) {
                    239:        article(b);
                    240: }
                    241: 
                    242: 
                    243: func article(b) {
                    244: 
                    245:                        punc = "";
                    246:        # authorlist,
                    247:                        if(authors[b]) {
                    248:                                authorlist(b);
                    249:                                punc = ",\n";
                    250:                        }
                    251:        # ``Title,''
                    252:                        if(title[b]) {
                    253:                                if(nroff)
                    254:                                        printf "%s\"%s,\"", punc, title[b] ;
                    255:                                else
                    256:                                        printf "%s``%s,''", punc, title[b] ;
                    257:                                punc = "\n";
                    258:                        }
                    259:        # Reviewed title and author
                    260:                        if(booktitle[b]) {
                    261:                                printf "%sReview of \\f2\\&%s\\f1\\&", punc, booktitle[b];
                    262:                                if(editors[b]) {
                    263:                                        printf " by ";
                    264:                                        editorlist(b);
                    265:                                }
                    266:                                if (issuer[b]) {
                    267:                                        printf " %s", issuer[b];
                    268:                                }
                    269:                                printf ",\n";
                    270:                        }
                    271:        # italics(journal),
                    272:                        printf "\\f2\\&%s\\f1\\&", journal[b];
                    273:                        punc = ",\n";
                    274:        # vol. #, no. #, Pt. #
                    275:                        if (volstr[b])
                    276:                                printf "%s%s", punc, volstr[b] ;
                    277:                        else if (volume[b])
                    278:                                printf "%sVol. %s", punc, volume[b] ;
                    279:                        if(numstr[b])
                    280:                                printf "%s%s", punc, numstr[b];
                    281:                        else if (number[b])
                    282:                                printf "%sNo. %s", punc, number[b] ;
                    283:                        if(partstr[b])
                    284:                                printf "%s%s", punc, partstr[b];
                    285:                        else if (part[b])
                    286:                                printf "%sPt. %s", punc, part[b] ;
                    287:        # date,
                    288:                        printf "%s%s", punc, date[b];
                    289:        # pages
                    290:                        if ( pages[b]) {
                    291:                                if ( pages[b] ~ /[,-]/ )
                    292:                                        printf "%spp. %s", punc, pages[b];
                    293:                                else printf "%sp. %s", punc,pages[b];
                    294:                        }
                    295: }
                    296: 
                    297: 
                    298: 
                    299: func incollection(b) {
                    300: 
                    301:                        punc = "";
                    302:        # authorlist,
                    303:                        if(authors[b]) {
                    304:                                authorlist(b);
                    305:                                punc = ",\n";
                    306:                        }
                    307:        # ``Title,''
                    308:                        if(title[b]) {
                    309:                                if(nroff)
                    310:                                        printf "%s\"%s,\"\n", punc, title[b] ;
                    311:                                else
                    312:                                        printf "%s``%s,''\n", punc, title[b] ;
                    313:                        }
                    314:        # in italics(booktitle),
                    315:                        printf "in \\f2\\&%s\\f1\\&", booktitle[b];
                    316:                        punc = ",\n";
                    317:        # Vol. #,
                    318:                        if(volstr[b])
                    319:                                printf "%s%s", punc, volstr[b];
                    320:                        else if(volume[b])
                    321:                                printf "%sVol. %s", punc, volume[b];
                    322:        # editorlist, eds.,
                    323:                        if(editors[b]) {
                    324:                                printf punc;
                    325:                                        editorlist(b);
                    326:                                if (editors[b] == 1) printf ", Ed."
                    327:                                else if (editors[b] > 1) printf ", Eds."
                    328:                        }
                    329:        # publisher, location,
                    330:                        printf  "%s%s", punc, issuer[b]
                    331:                        if (city[b])
                    332:                                printf ", %s", city[b] ;
                    333:        # date,
                    334:                        printf  "%s%s", punc, date[b];
                    335:        # pages
                    336:                        if ( pages[b]) {
                    337:                                if ( pages[b] ~ /[,-]/ )
                    338:                                        printf "%spp. %s", punc,pages[b];
                    339:                                else printf "%sp. %s", punc,pages[b];
                    340:                        }
                    341: }
                    342: 
                    343: 
                    344: func inproceedings(b) {
                    345: 
                    346:                        punc = "";
                    347:        # authorlist,
                    348:                        if(authors[b]) {
                    349:                                authorlist(b);
                    350:                                punc = ",\n";
                    351:                        }
                    352:        # ``Title,''
                    353:                        if(title[b]) {
                    354:                                if(nroff)
                    355:                                        printf "%s\"%s,\"\n", punc, title[b] ;
                    356:                                else
                    357:                                        printf "%s``%s,''\n", punc, title[b] ;
                    358:                        }
                    359:        # italics(journal),
                    360:                        printf "\\f2\\&%s\\f1\\&", journal[b];
                    361:                        punc = ",\n";
                    362:        # vol. #, no. #,
                    363:                        if (volstr[b])
                    364:                                printf "%s%s", punc, volstr[b] ;
                    365:                        else if (volume[b])
                    366:                                printf "%sVol. %s", punc, volume[b] ;
                    367:                        if(numstr[b])
                    368:                                printf "%s%s", punc, numstr[b];
                    369:                        else if (number[b])
                    370:                                printf "%sNo. %s", punc, number[b] ;
                    371:                        if(partstr[b])
                    372:                                printf "%s%s", punc, partstr[b];
                    373:                        else if (part[b])
                    374:                                printf "%sPt. %s", punc, part[b] ;
                    375:        # editorlist, eds.,
                    376:                        if(editors[b]) {
                    377:                                printf punc;
                    378:                                editorlist(b);
                    379:                                if (editors[b] == 1) printf ", Ed."
                    380:                                else if (editors[b] > 1) printf ", Eds."
                    381:                        }
                    382:        # publisher,
                    383:                        if(issuer[b])
                    384:                                if(authors[b] || editors[b])
                    385:                                        printf "%s%s", punc, issuer[b];
                    386:        # date,
                    387:                        printf "%s%s", punc, date[b];
                    388:        # pages
                    389:                        if ( pages[b]) {
                    390:                                if ( pages[b] ~ /[,-]/ )
                    391:                                        printf "%spp. %s", punc, pages[b];
                    392:                                else printf "%sp. %s", punc, pages[b];
                    393:                        }
                    394: }
                    395: 
                    396: func proceedings(b) {
                    397: 
                    398:                        punc = "";
                    399:        # authorlist,
                    400:                        if(authors[b] >0) {
                    401:                                authorlist(b);
                    402:                                punc = ",\n";
                    403:                        }
                    404:                                
                    405:        # editorlist Ed.,
                    406:                        else if(editors[b]) {
                    407:                                printf punc;
                    408:                                editorlist(b);
                    409:                                if (editors[b] == 1) printf ", Ed."
                    410:                                else if (editors[b] > 1) printf ", Eds."
                    411:                                punc = ",\n";
                    412:                        }
                    413:        # publisher,
                    414:                        else if(issuer[b]) {
                    415:                                printf "%s%s", punc, issuer[b];
                    416:                                punc = ",\n";
                    417:                        }
                    418:        # italics(title),
                    419:                        if(title[b]) {
                    420:                                printf "%s\\f2\\&%s\\f1\\&", punc,title[b];
                    421:                                punc = ",\n";
                    422:                        }
                    423:        # vol. #, no. #,
                    424:                        if (volstr[b])
                    425:                                printf "%s%s", punc, volstr[b] ;
                    426:                        else if (volume[b])
                    427:                                printf "%sVol. %s", punc, volume[b] ;
                    428:                        if(numstr[b])
                    429:                                printf "%s%s", punc, numstr[b];
                    430:                        else if (number[b])
                    431:                                printf "%sNo. %s", punc, number[b] ;
                    432:                        if(partstr[b])
                    433:                                printf "%s%s", punc, partstr[b];
                    434:                        else if (part[b])
                    435:                                printf "%sPt. %s", punc, part[b] ;
                    436:        # publisher,
                    437:                        if(issuer[b])
                    438:                                if(authors[b] || editors[b])
                    439:                                        printf "%s%s", punc, issuer[b];
                    440:        # location,
                    441:                        if (city[b])
                    442:                                printf "%s%s", punc, city[b] ;
                    443:        # (date)
                    444:                        if (date[b])
                    445:                                printf "%s(%s)", punc, date[b];
                    446: }
                    447: 
                    448: 
                    449: func techreport(b) {
                    450: 
                    451:                        punc = "";
                    452:        # authorlist,
                    453:                        if(authors[b]) {
                    454:                                authorlist(b);
                    455:                                punc = ",\n";
                    456:                        }
                    457:        # ``Title,''
                    458:                        if(title[b]) {
                    459:                                        if(nroff)
                    460:                                printf "%s\"%s,\"\n", punc, title[b] ;
                    461:                                else
                    462:                                        printf "%s``%s,''\n", punc, title[b] ;
                    463:                        }
                    464:        # report,
                    465:                        printf "%s", report[b];
                    466:                        punc = ",\n";
                    467:        # publisher,
                    468:                        if (issuer[b]) printf "%s%s", punc, issuer[b] ;
                    469:        # date
                    470:                        printf "%s%s", punc, date[b] ;
                    471: }
                    472: 
                    473: 
                    474: func tm(b) {
                    475: 
                    476:                        punc = "";
                    477:        # authorlist,
                    478:                        if(authors[b]) {
                    479:                                authorlist(b);
                    480:                                punc = ",\n";
                    481:                        }
                    482:        # italics(title),
                    483:                        if(title[b]) {
                    484:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
                    485:                                punc = ",\n";
                    486:                        }
                    487:        # tmno,
                    488:                        printf punc;
                    489:                        if(rp)
                    490:                                printf "AT&T Bell Laboratories internal memorandum";
                    491:                        else
                    492:                                printf "%s", tmno[b];
                    493:                        punc = ",\n";
                    494:        # date
                    495:                        printf "%s%s", punc, date[b] ;
                    496: }
                    497: 
                    498: 
                    499: func manual(b) {
                    500:                        punc = "";
                    501:        # authorlist,
                    502:                        if(authors[b] >0) {
                    503:                                authorlist(b);
                    504:                                punc = ",\n";
                    505:                        }
                    506:        # editorlist ed.,
                    507:                        else if(editors[b]) {
                    508:                                printf punc;
                    509:                                editorlist(b);
                    510:                                if (editors[b] == 1) printf ", Ed."
                    511:                                else if (editors[b] > 1) printf ", Eds."
                    512:                                punc = ",\n"
                    513:                        }
                    514:        # publisher,
                    515:                        else if(issuer[b]) {
                    516:                                printf "%s%s", punc, issuer[b];
                    517:                                punc = ",\n";
                    518:                        }
                    519:        # italic(title),
                    520:                        if(title[b]) {
                    521:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
                    522:                                punc = ",\n";
                    523:                        }
                    524:        # Vol. volume,
                    525:                        if(volstr[b])
                    526:                                printf "%s%s", punc, volstr[b];
                    527:                        else if(volume[b])
                    528:                                printf "%sVol. %s", punc, volume[b];
                    529:        # publisher,
                    530:                        if(issuer[b])
                    531:                                if(authors[b] || editors[b]) {
                    532:                                        printf "%s%s", punc, issuer[b];
                    533:                                        punc = ",\n";
                    534:                                }
                    535:        # location
                    536:                        if (city[b])
                    537:                                printf "%s%s", punc, city[b] ;
                    538:        # date,
                    539:                        printf "%s%s", punc, date[b];
                    540:        # pages
                    541:                        if (pages[b]) {
                    542:                                if ( pages[b] ~ /[,-]/ )
                    543:                                        printf "%spp. %s", punc, pages[b];
                    544:                                else
                    545:                                        printf "%sp. %s", punc, pages[b];
                    546:                        }
                    547: }
                    548: 
                    549: func pamphlet(b)
                    550: {
                    551: 
                    552:                        punc = "";
                    553:        # authorlist,
                    554:                        if(authors[b] >0) {
                    555:                                authorlist(b);
                    556:                                punc = ",\n";
                    557:                        }
                    558:                                
                    559:        # publisher,
                    560:                        else if(issuer[b]) {
                    561:                                printf "%s%s", punc, issuer[b];
                    562:                                punc = ",\n";
                    563:                        }
                    564:        # ``Title,''
                    565:                        if(title[b]) {
                    566:                                if(nroff) {
                    567:                                        printf "%s\"%s", punc, title[b] ;
                    568:                                        punc = ",\"\n";
                    569:                                }
                    570:                                else {
                    571:                                        printf "%s``%s", punc, title[b] ;
                    572:                                        punc = ",''\n";
                    573:                                }
                    574:                        }
                    575:        # publisher,
                    576:                        if(issuer[b]) {
                    577:                                if(authors[b] || editors[b]) {
                    578:                                        printf "%s%s", punc, issuer[b];
                    579:                                        punc = ",\n";
                    580:                                }
                    581:                        }
                    582:        # location,
                    583:                        if (city[b]) {
                    584:                                printf "%s%s", punc, city[b] ;
                    585:                                punc = ",\n";
                    586:                        }
                    587:        # date
                    588:                        if (date[b]) {
                    589:                                printf "%s%s", punc, date[b];
                    590:                                punc = ",\n";
                    591:                        }
                    592: }
                    593: 
                    594: func default(b) {
                    595:                        punc = "";
                    596:        # authorlist,
                    597:                        if(authors[b] >0) {
                    598:                                authorlist(b);
                    599:                                punc = ",\n";
                    600:                        }
                    601:                                
                    602:        # publisher,
                    603:                        else if(issuer[b]) {
                    604:                                printf "%s%s", punc, issuer[b];
                    605:                                punc = ",\n";
                    606:                        }
                    607:        # Title,
                    608:                        if(title[b]) {
                    609:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b] ;
                    610:                                punc = ",\n";
                    611:                        }
                    612:        # Vol. volume,
                    613:                        if(volstr[b])
                    614:                                printf "%s%s", punc, volstr[b];
                    615:                        else if(volume[b])
                    616:                                printf "%sVol. %s", punc, volume[b];
                    617:        # publisher,
                    618:                        if(issuer[b]) {
                    619:                                if(authors[b] || editors[b]) {
                    620:                                        printf "%s%s", punc, issuer[b];
                    621:                                        punc = ",\n";
                    622:                                }
                    623:                        }
                    624:        # location,
                    625:                        if (city[b]) {
                    626:                                printf "%s%s", punc, city[b] ;
                    627:                                punc = ",\n";
                    628:                        }
                    629:        # date,
                    630:                        if (date[b]) {
                    631:                                printf "%s%s", punc, date[b];
                    632:                                punc = ",\n";
                    633:                        }
                    634:        # pages
                    635:                        if (pages[b]) {
                    636:                                if ( pages[b] ~ /[,-]/ )
                    637:                                        printf "%spp. %s", punc, pages[b];
                    638:                                else
                    639:                                        printf "%sp. %s", punc, pages[b];
                    640:                        }
                    641: }
                    642: 
                    643: 
                    644: ##
                    645: ## authorlist
                    646: ##     First
                    647: ##     First and Second
                    648: ##     First, Second,..., and Last
                    649: ##
                    650: func authorlist(b) {                   
                    651:        if ( authors[b] == 0 ) ;
                    652:        else if ( authors[b] == 1 ) {
                    653:                printf Afull[b,1] ;
                    654:                if(aetal[b]) printf ", et al.";
                    655:        }
                    656:        else if ( authors[b] == 2 ) printf Afull[b,1] " and " Afull[b,2];
                    657:        else {
                    658:                for ( j = 1; j < authors[b]; j++ ) print Afull[b,j] ", ";
                    659:                printf "and " Afull[b,authors[b]];
                    660:        }
                    661: }
                    662: 
                    663: 
                    664: ##
                    665: ## editorlist
                    666: ##     First
                    667: ##     First and Second
                    668: ##     First, Second,..., and Last
                    669: ##
                    670: func editorlist(b) {                   
                    671:        if ( editors[b] == 0 ) ;
                    672:        else if ( editors[b] == 1 ) {
                    673:                printf E[b,1] ;
                    674:                if(eetal[b]) printf ", et al.";
                    675:        }
                    676:        else if ( editors[b] == 2 ) printf E[b,1] " and " E[b,2];
                    677:        else {
                    678:                for ( j = 1; j < editors[b]; j++ ) print E[b,j] ", ";
                    679:                printf "and " E[b,editors[b]];
                    680:        }
                    681: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.