대부분의 RAF(Robot Application Function)는 정보 소스를 필요로 하며 대상으로 전송되는 데이터를 생성합니다. 소스는 로봇 내에 정의되며 로봇이 최종적으로 생성하는 자원 설명의 필드와 반드시 관련되는 것은 아닙니다. 한편 대상은 일반적으로 자원 설명 서버의 스키마에 의해 정의되는 자원 설명에 있는 필드 이름입니다.
다음 절에서는 필터링 프로세스의 여러 단계와 해당 단계에서 사용할 수 있는 소스에 대해 설명합니다.
설정 단계에서는 필터가 설정되지만 아직 자원의 URL이나 컨텐트에 대한 정보를 가져올 수 없습니다.
메타데이터 단계에서 로봇은 자원에 대한 URL을 발견하지만 자원의 컨텐트를 다운로드하지는 않습니다. 따라서 filter.conf 파일 등의 다른 소스에서 파생된 데이터와 URL에 대한 정보를 사용할 수 있습니다. 그러나 이 단계에서 자원의 컨텐트에 대한 정보는 사용할 수 없습니다.
표 19–2 메타데이터 단계에서 RAF가 사용할 수 있는 소스
소스 |
설명 |
예 |
---|---|---|
csid |
카탈로그 서버 아이디 |
x-catalog//budgie.siroe.com:8086/alexandria |
depth |
시작 위치로부터 방문한 링크 수 |
10 |
enumeration filter |
열거 필터의 이름 |
enumeration1 |
generation filter |
생성 필터의 이름 |
generation1 |
host |
URL의 호스트 부분 |
home.siroe.com |
IP |
호스트의 숫자 버전 |
198.95.249.6 |
protocol |
URL의 액세스 부분 |
http, https, ftp, file |
path |
URL의 경로 부분 |
/, /index.html, /documents/listing.html |
URL |
전체 URL |
http://developer.siroe.com/docs/manuals/ |
데이터 단계에서 로봇은 URL에서 자원의 컨텐트를 다운로드한 상태이며 설명 및 작성자 등의 컨텐트 관련 데이터에 액세스할 수 있습니다.
자원이 HTML 파일인 경우 로봇은 HTML 헤더에 있는 <META> 태그의 구문을 분석합니다. 결과적으로 <META> 태그에 있는 모든 데이터를 데이터 단계에서 사용할 수 있습니다.
데이터 단계에서 RAF는 메타데이터 단계에서 사용할 수 있는 소스 외에 다음과 같은 소스를 사용할 수 있습니다.
표 19–3 데이터 단계에서 RAF가 사용할 수 있는 소스
소스 |
설명 |
예 |
---|---|---|
content-charset |
자원에서 사용하는 문자 집합 | |
content-encoding |
인코딩 형식 | |
content-length |
자원 크기(바이트) | |
content-type |
자원의 MIME 유형 |
text/html, image/jpeg |
expires |
자원의 만료 날짜 | |
last-modified |
자원이 마지막으로 수정된 날짜 | |
data in <META> tags |
HTML 자원의 헤더에 있는 <META> 태그에서 제공하는 모든 데이터 |
제작자, 설명, 키워드 |
이러한 모든 소스(<META> 태그의 데이터 제외)는 자원을 검색할 때 반환되는 HTTP 응답 헤더에서 파생됩니다.
열거 및 생성 단계에서는 데이터 단계와 동일한 데이터 소스를 사용할 수 있습니다. 자세한 내용은 표 19–3을 참조하십시오.
종료 단계에서 필터는 필터링을 완료하고 종료합니다. 이 단계를 위해 작성된 함수가 데이터 단계와 동일한 데이터 소스를 사용할 수 있어도 일반적으로 종료 기능의 작업은 로봇 종료와 정리 작업으로 제한됩니다.
각 함수에는 enable 등록 정보가 있습니다. 값으로는 true, false, on 또는 off를 지정할 수 있습니다. 관리 콘솔은 이러한 매개 변수를 사용하여 특정 지시문을 설정 또는 해제합니다.
다음 예는 text/html에 열거를 사용하고 text/plain에는 열거를 사용하지 않습니다.
# HTML에서만 열거 수행 Enumerate enable=true fn=enumerate-urls max=1024 type=text/html Enumerate enable=false fn=enumerate-urls-from-text max=1024 type=text/plain |
enable=false 등록 정보나 enable=off 등록 정보를 추가해도 이 줄을 주석 처리하는 것과 같은 효과가 있습니다. 관리 콘솔에서는 주석을 작성하지 않으므로 이러한 등록 정보가 사용됩니다.