Web Harvesting SOW - Draft.docx
DOCX document 50 KB Posted
- Attached to
- Web Harvesting Services
- Solicitation number
- 2025-LGD-0161
- Issued by
-
Library of Congress
About this file
This is a Performance Work Statement (PWS) for Web Harvesting Services for the Library of Congress (LOC). The solicitation seeks a contractor to systematically harvest web content at scale, with capabilities including capturing diverse digital objects from websites, performing crawls according to Library specifications, providing access tools for quality review, generating comprehensive crawl reports, and securely storing and transferring harvested content. Key technical requirements include using U.S.-based servers, implementing polite crawling practices, supporting various crawl frequencies, capturing password-protected content, and delivering content in WARC file formats.
The contract is an Indefinite Delivery/Indefinite Quantity (IDIQ) with specific performance areas covering web content capture, quality review access, reporting, hosting/storage, and content transfer. Critical personnel requirements include a Program Manager with 5+ years of experience, a Crawl Engineer with 5+ years of web harvesting experience, and a Quality Assurance Lead with 2+ years of relevant experience. The solicitation is currently in a pre-solicitation Request for Information (RFI) stage, seeking market research, capability statements, and feedback from potential vendors, with no immediate contract award planned. Contractors are encouraged to provide input on the draft Statement of Work and rough pricing estimates.
View the file
Other files
| File | Type | Posted |
|---|---|---|
| J.2_Description-of-Tech-Environment_062525_final_rfi.docx | DOCX document | |
| Questions for Vendors Responding to the RFI for Web Harvesting.docx | DOCX document |
On GovTribe
Work with this file
- Download the original file
- Contacts named in this file
- Similar government files
- Ask GovTribe AI about this file
Text version
WEB HARVESTING SERVICES IDIQ
1. OVERVIEW / BACKGROUND. The Library of Congress (Library) requires contract support to enable the systematic harvesting of content at-scale from the web, based on instructions from Library staff, to provide temporary access to the content and required crawl reports for quality review, and to enable transfer of content to the Library for preservation and public access.
Since 2000, the Library has collected and preserved harvested web content related to a variety of thematic web and event-based topics, based on Library collecting policies. The web archives are an important component of the Library’s born digital collections. The harvesting of selected websites for the Library’s collections supports the Library’s Strategic Goal to build and enrich Library collections and content to serve Congress and America’s communities.
The Library uses an in-house curatorial tool called Digiboard to manage the web archiving program, including to export seed lists to deliver to a Contractor for crawling. Selection of materials for this program is conducted by Library staff who are subject and language experts. The Library Web Archiving Program staff are the technical liaisons between the Contractor performing harvesting services and Library staff engaged in selection and management of the content after it’s been harvested and delivered to the Library.
Library crawls typically include a large quantity of seed URLs per crawl. Due to scale, the Library’s Web Archiving program and approach to collecting have historically amounted to a large-scale crawling effort, organizing selection around thematic collections while crawling in large “buckets” based on desired frequency of harvest. The number of distinct seed URLs in each ‘frequency bucket’ range from hundreds to thousands per seed list. Seeds are scheduled for crawling at regular intervals or “frequency”, which may include weekly, monthly, and quarterly, however past iterations have included twice-daily and yearly.
Content targeted for archiving may include entire domains, specific subdomains or paths, portions of websites focused on a particular topic, or single documents (such as PDFs). Content in the web archives is published in the United States and in multitude of other countries, with varying languages. The Library’s web archives follow a permissions-based model; careful curation occurs by Library staff, and the Library creates scoping instructions at the seed-level to ensure crawled content remains in scope.
2. SCOPE
While the Library’s Web Archiving Program manages many aspects of the web archiving workflow for adding to Library of Congress collections, web harvesting services are required for capture of web content at scale. Instructions about what to harvest are based on seed lists provided by the Library to the Contractor prior to each crawl’s start date, updated with new or changed seeds prior to each new crawl. Scoping instructions and crawling rules are provided to the Contractor by the Library with each seed list to ensure that content is captured by the Contractor in accordance with the Library’s permissions and collecting policies. The Contractor must provide access to Web Archiving program staff for quality assurance to accept the results of the crawls and store a copy of the data during the period of each task order (task orders issued typically cover about a year’s worth of crawls). Harvested content is required to be regularly transferred to the Library by the Contractor for preservation and staff and researcher access by the Library.
Specific performance areas include:
· Web content capture according to scheduling and deduplication of crawls as specified by the Library (3.1)
· Access to captured content for Library quality review (3.2)
· Reports (3.3)
· Web content hosting and storage (3.4)
· Transfer of content to the Library (3.5)
| 3. | REQUIREMENTS |
| 3.1 | GENERAL CRAWL REQUIREMENTS |
| 3.1.1 | The Contractor must perform crawls to capture content identified by the Library according to the Library’s specifications. For each crawl, the Library will provide the Contractor with formatted seed lists which identify the seed URLs to be captured, scoping instructions, robots.txt instructions, and other rules for that crawl. The Library reserves the right to make minor revisions to the seed list up to 24 hours in advance of the scheduled crawl. |
| 3.1.2 | The Contractor must perform crawls according to crawl schedules specified by the Library in accordance with task orders which will establish the crawl schedule and crawl frequencies at the start of each task. Crawls may have varying start dates, frequencies, and durations. |
| 3.1.3 | The Contractor must complete crawls within a timeframe sufficient to maintain the specified frequency, while employing politeness factors. |
| 3.1.4 | The Contractor must allow for robots.txt exclusions either to be ignored or to be respected for seeds within a crawl. |
| 3.1.5 | The Contractor must allow for deduplication of content against baseline crawls, storing only data that has been modified or newly discovered when compared with data previously captured for and stored on behalf of the Library. |
| 3.1.6 | The Contractor must enable as comprehensive capture as possible given current tools and stated capabilities of the Contractor. The Contractor must enable capture of a variety of digital objects from the web required to render the identified seeds as they were at the time of capture. Digital objects may include, but are not limited to, HTML, images, PDFs, multimedia including but not limited to audio and video files, any embedded content, and other essential components necessary for accurately replicating a webpage. When playing back the archived content, the priority is to recreate an experience that mirrors what a user would have encountered when visiting the live site at the specific time of capture. |
| 3.1.7 | The Contractor must provide flexible approaches to enable the capture content at the level of depth and breadth and per scoping instructions for each seed, including highly complex sites with multiple paths and many links from the primary seed URL. |
| 3.1.8 | The contractor must crawl websites politely with all employed crawlers, in order to minimize server impact, as described in our program FAQ. Using Heritrix as an example, such ‘politeness’ settings are explained in the Heritrix 3 — Configuring Crawl Jobs documentation. |
| 3.1.9 | The Contractor must enable strategies for crawling seed lists with thousands of seed URLs and scoping instructions in such a way as to minimize server impact on websites, web hosts and resources being harvested, including in cases where different sections of the same website may be represented as numerous independent seeds in the same crawl. Strategies may include but are not limited to: |
· Increasing politeness settings on a seed or domain-specific basis
· custom regex to exclude problematic URL patterns, such as infinitely repeating directories or self-generating 404s
· site specific crawler configuration settings (e.g. sheet rules like queue assignments in Heritrix)
| 3.1.10 | The vendor may utilize one or more types of web crawlers to accomplish at-scale harvest. Additional crawlers may be utilized to accomplish high-fidelity capture of all or part of each seed list. |
| 3.1.10.1 | Additional crawlers, if browser-based, must include rate-limiting or other polite crawling capabilities (see 3.1.3 and 3.1.8) |
| 3.1.11 | The Library recognizes that the web is complex and constantly evolving, and the need for approaches to crawl are ever-changing. To allow the Library to best anticipate quality of results of the crawls, the Contractor must inform the Library of significant changes to how the crawler is able to capture identified content, or crawling approaches that affects (both positively and negatively) the quality of results or ability to capture content identified by the Library. Additionally, testing and use of new and improved tools to capture content are encouraged, for instance when harvesting challenging content. The Contractor must notify the Library prior to testing and implementation of any new crawling tools used to capture content for the Library. |
| 3.1.12 | The Contractor must be flexible in scoping and capping different types of content to best capture seeds identified by the Library for harvesting; sometimes this includes making changes to running crawls. |
| 3.1.13 | The Contractor must capture password-protected content when provided with credentials by the Library. |
| 3.1.14 | The Contractor must run additional crawls, if necessary, to harvest materials missed during a crawl. Only as directed by the Library on a limited basis. |
| 3.1.15 | The Contractor must monitor each crawl and, within 24 hours, notify the Library and take action to resolve any issues related to crawler behavior or interruption of service. |
| 3.1.16 | The captured content must be packaged in valid WARC (Web ARChive) files (see format http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44717) for transfer to the Library, accompanied by valid, 11-field CDX indexes for all resources in the WARC files. |
| 3.1.17 | The Contractor must use servers physically located in the United States for all crawling (i.e., capture of content) that occurs under this contract. If the Contractor provides cloud crawling services, U.S. based data centers must be utilized. There is no restriction on server location for other services provided under this contract. |
| 3.1.18 | The Contractor shall provide a web-based communication tool and mechanism (such as a ticketing system), available via a secure login, for exchange of seed lists between the Library and the Contractor, reporting of issues, quality assurance inquiries and responses, tracking transfer of content, and other general communications. |
| 3.1.19 | The Contractor must stay up to date with requirements in the larger field of bots and crawlers and observe practices that will enable them to remain ‘verified’ or off ‘bad bot’ lists. The Contractor should routinely provide data on whether these conditions are met and the extent of such anti-bot blocking’s impact on harvest quality. This is a complex, new and evolving field which when encountered may significantly detract from crawl success. |
| 3.1.20 | The Contractor must provide valid user agents and static IP addresses for the crawlers at the start of each task order. |
| 3.2 | ACCESS FOR LIBRARY QUALITY REVIEW |
| 3.2.1 | The Contractor must provide an access tool on the vendor’s system by which Library staff can review the results of the crawls performed by the Contractor prior to transfer of the content to the Library. Access must be restricted to Library staff and the Contractor only, and not available to the public or other users. |
| 3.2.2 | The Contractor must make the results of each crawl accessible to the Library within five (5) business days of completion via the Contractor-provided access tool. |
| 3.2.3 | Access Tool Requirements |
| 3.2.3.1 | The access tool must allow for up to 50 simultaneous sessions (restricted by IP address to Library premises only or by password protection) to use the access interface. The Library will provide a list of staff users who are allowed to have access to the vendor’s access tool. |
| 3.2.3.2 | The access tool must support search, retrieval, and display by URL. |
| 3.2.3.3. | The access tool must limit the display of content to harvested content (i.e., preventing content from the “live” web from displaying), and must clearly distinguish between archived and live content. |
| 3.2.4 | The Contractor must ensure that all content captured is fully functional within the accepted limitations when displayed via the access tools. |
| 3.2.5 | The Contractor must provide an action plan to monitor, report to the Library, and remedy breaks in access service. When it is within Contractor’s ability to schedule maintenance outages, outages must be scheduled outside of Library business hours, 6:30am – 6:00pm EST Monday-Friday if possible, and Library staff must be notified 24 hours in advance of any planned outages. |
| 3.2.5 | The Contractor must provide the most current, stable version of its access tool to the Library for the Library’s review of crawled content. |
| 3.3 | REPORTS |
| 3.3.1 | REPORTS REQUIREMENTS FOR EACH CRAWL |
For each crawl, the Contractor must provide the following reports within 5 days of the completion of each crawl. The Contractor must supply sample crawl reports and file-naming conventions at the start of the first task order under this IDIQ and confirm format and data elements. The Contractor must notify Library of any format changes to the crawl reports prior to implementation of changes.
In the event that multiple types of crawlers are used, the Contractor must supply sample reports from each type of crawler at the start of the first task order under this IDIQ. The Contractor must ensure that the data in all reports are complete and accurate. Reports from distinct crawlers must be in parity with each other, in terms of formatting and data elements.
Reports must be viewable in the vendor’s system to enable quality review by the Library, and transferred to the Library (see C.5):
| 3.3.1.1 | Contractor’s quality assurance results as specified in the Quality Assurance Plan (See C.4.) |
| 3.3.1.2. | Statistical information about the crawl. |
(See Attachment J.2 - Technical Environment section for details on how the Library uses crawl report data in its inspection, and Library QA processes.)
| 3.3.1.2.1 | The reports must be provided in ASCII text and xml format. |
| 3.3.1.2.2 | The reports must contain the following information (some reports may be generated by the crawler, some reports are custom reports requested for quality control purposes): |
· A record of what was crawled, with a list of seeds crawled and a list of hosts crawled
· A record of the breadth and depth of the crawl, i.e.
· how much from each seed list was captured
· number of resources and size per host
· number of resources still left in queue at the end of the crawl
· amount of data archived per host and per seed
· amount of new data vs. duplicated data per host and per seed
· lists of URLs not crawled because they were out of scope
· number of successfully crawled seeds
· number of redirected seeds
· number of seeds not crawled (if any)
· number of seeds queued (if any)
· number of seeds blocked (if any)
· A copy of the seed list provided by the Library to the Contractor for the crawl.
· All crawler specifications, patches, scripts, and configurations (e.g., order file, special rules for the crawler) used for generating the crawl.
· A report of the total number of bytes harvested per seed URL in that crawl, in rank order
· A report of the total depth the crawler reached from each seed URL in that crawl, in rank order
· A list of http response codes and status (e.g. ‘crawled’ or ‘not crawled’) and redirects for each seed crawled.
· A report of crawler traps encountered by the crawler during routine crawls. This data will be used by the Library and the Contractor to write negative SURTs or exclude-regex to limit the amount of out-of-scope content harvested, ensuring the crawlers have sufficient resources for crawling in-scope content, and to prevent over-crawling nominated websites.
· A report on bot-blocks identified at the seed and resource level, including lists of domains routinely blocking the crawler(s), the frequency of blocks in the context of routine crawls, and the source of repeat blocks.
3.3.1.3. All available crawl logs as generated by the crawler(s).
3.3.3 The Contractor must provide reports on any errors encountered during integrity monitoring for hosted data as described in Section 3.4, including checksum errors and operational status, and any remedies taken.
| 3.4 | VENDOR HOSTING AND STORAGE INFRASTRUCTURE |
| 3.4.1. | The Contractor must maintain a reliable and secure data storage and maintenance infrastructure capable of storing all web content harvested within the task orders issued under this contract incorporating the following minimum capabilities as outlined below: |
| 3.4.1.1. | The Contractor must store and maintain two copies of web content harvested under the scope of each task order: one for access by Library staff (see 3.2), one for backup to ensure that data is not lost between the time of capture and when it is transferred to the Library. |
3.4.1.2. The Contractor must ensure that the infrastructure for crawling, storing, and providing access to content provides documented physical security, electronic security, and operational practices that represent standard industry practices for commercial hosting providers.
| 3.4.1.3. | The Contractor must perform integrity monitoring for data hosted under the terms of this contract. |
| 3.4.2. | The vendor shall perform fixity checks on the content when bagged and prior to transmission to the library. |
| 3.4.2.1. | The Contractor must monitor the operational status of the environment for providing access to Library content and notify the Library of any downtime. |
| 3.4.3 | Duration of Content Storage |
The Contractor is required to maintain and store the access and backup copies, and any crawl reports, until the task order is complete, and all content has been transferred to the Library per section 3.5.
| 3.5 | TRANSFER OF CONTENT TO THE LIBRARY |
| 3.5.1 | The Contractor must enable transfer within 5 days of harvested content to the Library after quality review and acceptance by the Library. |
| 3.5.2 | The Contractor must provide a method of verifying complete transfers of content. The Library’s preferred method for transfer is the BagIt File Packaging Format specification, a hierarchical file packaging format. See https://datatracker.ietf.org/doc/html/rfc8493 for information. |
| 3.5.2.1 | For content delivered in BagIt structure, no single bag should exceed 1 TB. Recommended size for a BagIt bag is 250-500 GB in total (e.g., 250-500 1-GB WARC files per bag) |
| 3.5.3 | The recommended standard for a WARC file target size is ~1 GB. |
| 3.5.4 | The Library will provide one cloud storage space (e.g. S3 bucket) for the vendor to deliver packaged content in BagIt format. The vendor can deliver that content over any secure internet connection including Internet 2 using https protocols. |
3.5.4.1 NETWORK TRANSFER REQUIREMENTS
This section applies if the Contractor’s method of transfer is using a network:
| 3.5.4.1.1 | The Contractor must maintain machines and networks operational for transfer, as described above. |
| 3.5.4.1.2 | The Contractor must address and rectify transfer failures falling within its machine(s) and/or network sphere. A transfer failure is a factor that causes transfer of currently requested content to fail. |
| 3.5.4.1.3 | The Contractor must acknowledge a transfer failure query from the Library within 24 hours. |
| 3.5.4.1.4 | If the transfer failure is determined to fall within the Contractor’s machine(s) and/or network sphere, the Contractor must rectify the failure within 5 business days. |
| 3.5.4.1.5 | If rectifying the failure takes more than 5 business days, the total time required to rectify it must be counted as downtime (see 3.5.4.1.6) |
| 3.5.4.1.6 | The Contractor must ensure system availability for transfer of harvested content to the Library during normal business hours Eastern time. In no case must Contractor’s annual downtime exceed 20 business days or portions thereof. |
| 3.5.4.1.7 | In the case of unavoidable scheduled downtime, the Contractor must give the Library 24 hours’ notice. |
| 4. | CONTRACT PERFORMANCE |
| 4.1. | SCHEDULE OF EVENTS/DELIVERABLES |
Deliverables will vary by task and will be specified within each task order. Each task order will identify deliverables, deadlines and milestones for the work required, including number of maximum terabytes ordered, type and frequency of crawls and number of crawls, estimated number of seeds per crawl, length of crawls and any data caps, and other specifications based on the specific order. All reports and deliverables shall be delivered to the COR.
| Deliverables |
| Due Date |
| Kick-off Meeting |
| Within 10 days after contract award |
| Final Quality Control Plan |
| Within 30 days after contract award |
| Reports described under 3.3.1 |
| Within 5 days of the completion of each crawl |
| Content Available for Inspection by the Library via 3.2 |
| Within 5 days of the completion of each crawl |
| Content Available for Transfer to the Library via 3.5 |
| Within 5 days of acceptance of each crawl |
4.2. QUALITY CONTROL.
The Contractor shall develop and maintain an effective quality control program (QCP) to ensure services are performed in accordance with this contract. The Contractor shall develop and implement procedures to identify, prevent, and ensure non-recurrence of defective services and to ensure that requested content has been harvested. The plan should accommodate robust procedures to identify, track and resolve issues in the event of repeated failure to harvest nominated content.
The Contractor’s quality control program is the means by which it assures itself that its work complies with the requirement of the contract. The QCP should be delivered within 30 days after the contract award to the COR. The plan must list the contents of the quality assurance report(s) that the Contractor proposes to provide for each completed crawl and steps taken to ensure quality.
In the creation of a QCP, the Contractor may consider how the plan may address the following questions:
· What are the quality objectives or goals for this contract?
· What are the processes and procedures that will be employed to control quality of the products and services delivered under the contract?
· What are the roles and responsibilities for both the Contractor and the Library about these QC processes and procedures?
· What are the quality standards that will be enforced for the contract?
· What are the quality measures or metrics that will used to demonstrate that the quality standards have been met or exceeded?
· How will monitoring and inspection be performed for the contract?
· How will quality failures be prevented?
· How will the Contractor ensure that remediated failures do not recur?
· How will the Contractor identify ways to improve the efficiency or effectiveness of its services?
· How will the Contractor identify and mitigate risks to quality performance?
· How will the Contractor and the Library collaborate to resolve disputes about quality?
After acceptance of the quality control plan the Contractor shall receive the contracting officer’s acceptance in writing of any proposed change to its QC system.
| 5. | ADDITIONAL INFORMATION |
| 5.1. | PLACE OF PERFORMANCE. The work to be performed under the contract will be performed at the Contractor facility. |
| 5.2. | HOURS OF OPERATION. The Contractor must be available to communicate with Library staff during between the hours of 9:00am to 5:30pm Mondays through Fridays, except Federal holidays or when the Government facility is closed due to local or national emergencies, administrative closings, or similar Government directed facility closings. |
| 5.3. | Government furnished property. Seed lists: Seed lists are the property of the Library and are solely for the Library’s collection purposes. |
6.
6.1. KEY PERSONNEL (if applicable). The following positions are considered key personnel:
Program Manager/alternate program manager: The Contractor shall provide a program manager who shall be responsible for the performance of the work. The name of this person and an alternate who shall act for the Contractor when the manager is absent shall be designated in writing to the contracting officer. The program manager or alternate shall have full authority to act for the Contractor on all contract matters relating to daily operation of this contract. The program manager or alternate shall be available between 9:00 a.m. to 5:30p.m. Monday thru Friday except Federal holidays or when the government facility is closed for administrative reasons. The Program Manager must have at least 5 years relevant experience managing projects or programs.
Crawl Engineer: The Contractor shall provide a crawl engineer who is responsible for the management of and reporting on the harvesting activities. The crawl engineer must have at least five years relevant experience managing web harvesting crawls.
Quality Assurance Lead: The Contractor shall provide a quality assurance lead who is responsible for ensuring that the QAP is followed by any Contractor staff. The Quality Assurance Lead must have at least 2 years relevant experience performing quality assurance on web archives.
6.2 OTHER (If applicable):
DELETION OF CAPTURED CONTENT. At the end of each task order, upon confirmation from the Library that all copies of captured content and crawl logs and reports have been successfully transferred to the Library, the Contractor must delete all copies of captured content stored by the Contractor.
7. PHASE IN /PHASE OUT PERIOD. To minimize any decreases in productivity and to prevent possible negative impacts on additional services, the Contractor must have personnel on board, during the thirty (30) day phase in/ phase out periods. During the phase in period, the Contractor must become familiar with performance requirements in order to commence full performance of services on the contract start date.
(End of Performance Work Statement / Statement of Work)
File details come from the government source that posted it. Updated .