KR20120101365A - 정보 스트림의 정보를 처리하는 방법 및 시스템 - Google Patents

정보 스트림의 정보를 처리하는 방법 및 시스템 Download PDF

Info

Publication number
KR20120101365A
KR20120101365A KR1020127010813A KR20127010813A KR20120101365A KR 20120101365 A KR20120101365 A KR 20120101365A KR 1020127010813 A KR1020127010813 A KR 1020127010813A KR 20127010813 A KR20127010813 A KR 20127010813A KR 20120101365 A KR20120101365 A KR 20120101365A
Authority
KR
South Korea
Prior art keywords
information
entity
resource
entities
segments
Prior art date
Application number
KR1020127010813A
Other languages
English (en)
Other versions
KR101775883B1 (ko
Inventor
플로리앙 두에또
아브델마지드 부브릭
제레미 보르디에
앙드레아 뤼자르디
땅기 모알
Original Assignee
엑살레아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엑살레아 filed Critical 엑살레아
Publication of KR20120101365A publication Critical patent/KR20120101365A/ko
Application granted granted Critical
Publication of KR101775883B1 publication Critical patent/KR101775883B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computational Linguistics (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

본 발명은 엔티티들에 관련된 정보를 처리하는 컴퓨터 구현 프로세스로서, 상기 엔티티들은 정보 스트림에 포함되며, 엔티티들은 시스템의 리소스 디렉토리들에 저장되며, 각각의 리소스 디렉토리는 엔티티들을 포함하고 적어도 하나의 새 엔티티의 추가로 수정된 버전 번호로 주석달기되는, 컴퓨터 구현 프로세스를 위한 것이다. 이 프로세서는, 정보 스트림을 다른 정보 소스들로부터 취출하는 단계; 정보 스트림으로부터의 정보 세그먼트들을 리소스 디렉토리들의 엔티티들에 따라서 처리하는 단계; 정보 세그먼트들을 리소스 디렉토리들의 버전이 정보 세그먼트를 처리하기 위해 사용되었음을 표시하는 주석과 함께 저장하는 단계; 상기 리소스 디렉토리들 중의 적어도 하나의 리소스 디렉토리를 적어도 하나의 새 엔티티로써 업데이트하고 상기 적어도 하나의 리소스 디렉토리의 버전 번호를 업데이트하는 단계; 및 정보 세그먼트들이 적어도 하나의 리소스 디렉토리의 이전 버전으로 처리되었음을 표시하는 주석을 포함하는 저장된 정보 세그먼트들을 재처리하는 단계를 포함한다.

Description

정보 스트림의 정보를 처리하는 방법 및 시스템{METHOD AND SYSTEM FOR PROCESSING INFORMATION OF A STREAM OF INFORMATION}
본 발명은 컴퓨터 프로그램들 및 시스템들의 분야에 관한 것이고, 더 상세하게는 엔티티들에 관련되고 정보 스트림들에 포함된 정보의 관리 분야에 관한 것이다.
웹 검색 엔진들 (이를테면 구글 (상표), MSN 서치 (상표), AllTheWeb (상표) 은 고유 인덱스로부터의 정보 레코드들에 액세스하는 방법을 제공한다. 이 목적을 위하여, 검색 엔진은 먼저 새 콘텐츠를 발견하기 위해 웹을 크롤링한다. 다음으로, 콘텐츠는 인덱싱되며, 그것은 빠르고 정확한 정보 취출을 용이하게 하도록 하기 위하여 파싱되고 저장된다. 그 다음, 사용자는 결과를 얻기 위하여 검색 엔진에 질의하며, 검색 결과들은 대체로 목록으로 표시된다.
웹을 크롤링하는 것은 어려운 작업이다. 또한, 웹 크롤러(web crawler)는 대량의 데이터들에 직면하고 웹의 전체 콘텐츠를 다운로드할 수 없다. 덧붙여서, 웹의 콘텐츠는 끊임없이 변경되며, 이 역동성은 웹 크롤링이 새 콘텐츠가 추가되었는지를 정기적으로 점검해야 하고, 또한 이미 알려진 콘텐츠가 업데이트되었는지 또는 삭제되었는지도 점검해야 한다는 것을 의미한다. 그래서, 웹 크롤러들은 엄청난 계산 리소스들을 필요로 할 뿐 아니라, 콘텐츠가 페치(fetch)되고 웹 크롤러에 전송됨에 따라 네트워크 대역폭을 소비하기도 하는 여러 프로세싱 처리들을 수행한다.
이 목적을 위하여, 캐싱 시스템들이 위에서 언급된 제약들을 완화하기 위하여 개발되고 있다. 캐싱 시스템은 정보가 질의(query)되고 디스플레이되어야 하는 때의 응답 시간을 개선하기 위하여 이전에 보았던 정보의 버전을 저장한다. 예를 들면, 웹 캐시들은 웹 서버들, 이를테면 웹 페이지들로부터의 이전의 응답들을 저장하기 위하여 웹 브라우저들 및 웹 프록시 서버들에 의해 채용된다. 웹 캐시들은, 캐시에 이전에 저장된 정보가 종종 재사용되므로, 네트워크를 통해 송신될 필요가 있는 정보의 양을 감소시킨다. 더구나, 캐싱은 웹의 사용자들에 대한 반응성을 개선하는 것을 돕는다. 그러나, 웹 캐시들은 웹 크롤러에 의해 취출되는 막대한 양의 데이터를 처리하기에 적합하지 않고, 실제로, 웹 캐시들은 저장된 데이터를 관리하기 위한 수단을 제공하지도 않고 저장 비용을 줄이지도 않으면서 자신들을 통과하는 데이터의 사본들을 저장한다.
미국특허 제 7,523,137 호는 이벤트 오브젝트들이라고도 하는 발견된 엔티티들에 관계가 있는 이벤트들에 관한 정보를 추출하는 시스템을 개시한다. 이 문서는 물품들 (articles) 이 한 번 페치된 다음 일 회 처리를 위해 국소적으로 저장되는 것을 교시한다. 각각의 물품은 현존하는 환경 모델을 이용하여 일 회 처리되어 특정한 시스템 구현을 위한 특정한 업계 포커스에 따라 무관심 콘텐츠를 필터링 (예컨대, 제거) 한다. 이벤트 처리 제어 프로그램은 환경 모델에서 정의된 엔티티들에 관계가 없는 페치된 물품들을 필터링한다. 그 결과, 분석 시스템은 이벤트 검출 엔진을 새 물품에 적용하기 전에, 취출된 정보의 상당한 퍼센티지 (예컨대, 99% 이상) 를 없앤다.
그러나, 페치된 물품들은 시스템에 의해 보유되지 않는데, 이는, 예를 들면, 물품이 업데이트되고 다시 처리될 필요가 있을 때, 물품들이 다시 페치된다는 것을 의미한다. 그래서, 시스템은 동일한 (또는 유사한) 콘텐츠를 여러 차례 다운로드하는 것을 필요로 한다.
미국특허출원 제 2007/0011175 호는 캡처 스키마에 대해 구조화 및 비구조화 데이터를 다수의 데이터 소스들로부터 추출하고 비구조화 데이터를 분석 스키마에 로딩하기 위하여 변환하고 분석하는 방법을 개시한다. 이 문헌은, 예를 들면, 비구조화 및 구조화 데이터에 대한 분석 (예컨대, 비즈니스 인텔리전스) 을 수행하기 위하여 비구조화 및 구조화 데이터의 구조화 뷰를 제공하는 방법을 교시한다. 그러나, 이 문헌은 데이터에 있어서 새 리소스들의 생성을 관리하고 새로운 및 이미 알았던 비즈니스 데이터에 대해 그러한 변경들을 관리하는 방법의 문제를 다루지 않는다.
그래서, 위에서 간략히 설명된 현존 해법들의 제약들에 의하면, 데이터의 재처리 및 저장된 데이터의 양을 줄이기 위하여 정보 세그먼트들을 더 효율적인 방법으로 관리하는 개선된 정보 처리가 필요하다.
그러므로 본 발명은 정보 스트림에 포함된 엔티티들에 관한 정보를 처리하는 컴퓨터 구현 프로세스를 제공한다. 엔티티들은 시스템의 리소스 디렉토리들에 포함되는데, 각각의 리소스 디렉토리는 엔티티들을 포함하고 적어도 하나의 새 엔티티의 추가 후에 수정된 버전 번호로 주석달기된다 (annotated). 이 방법은,
- 정보 스트림을 다른 정보 소스들로부터 취출하는 단계;
- 정보 스트림으로부터의 정보 세그먼트들을 상기 리소스 디렉토리들의 엔티티들에 따라서 처리하는 단계;
- 상기 리소스 디렉토리들의 어떤 버전이 상기 정보 세그먼트를 처리하기 위해 사용되었는지를 표시하는 주석과 함께 정보 세그먼트들을 저장하는 단계;
- 상기 리소스 디렉토리들 중에서 적어도 하나의 새 엔티티로 적어도 하나의 리소스 디렉토리를 업데이트하고 상기 적어도 하나의 리소스 디렉토리의 버전 번호를 업데이트하는 단계; 및
- 상기 정보 세그먼트들이 적어도 하나의 리소스 디렉토리의 이전 버전으로 처리되었음을 표시하는 주석을 포함하는 저장된 정보 세그먼트들을 재처리하는 단계를 포함한다.
또한 이 프로세스는,
- 추가되는 상기 새 엔티티의 추가로 한번 수정된 상기 리소스 디렉토리에 제공되는 버전 번호를 표시하는 주석을 포함하는 리소스 디렉토리에 추가된 새 엔티티를 포함하고, 재처리하는 단계는, 저장된 정보 세그먼트들을 상기 리소스 디렉토리들에 추가된 새 엔티티들에 따라서 재처리하는 단계를 더 포함하며; 또한 이 프로세서는,
- 각각의 처리된 정보 세그먼트들에 및 각각의 엔티티에 할당된 (assigned) 고유 식별자를 포함하며;
- 각각의 새 엔티티에 할당된 식별자는 상기 각각의 새 엔티티를 나타냈던 처리된 세그먼트의 식별자와 동일하며;
- 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계에서, 새 엔티티들은 사용자에 의해 나타내지고 입력되며, 상응하는 리소스 디렉토리들에 추가되며;
- 처리된 정보 세그먼트들은 데이터 구조들이며;
- 처리된 정보 세그먼트들은 유형, 옵션의 범용 리소스 식별자, 및 비제약형 메타데이터 세트를 포함하며, 각각의 메타데이터는 키 및 값 쌍을 포함하며;
- 정보 스트림으로부터의 처리된 정보 세그먼트들은 선택된 정보 소스들에 따라 저장되며; 프로세서는,
- 스트림으로부터의 정보 세그먼트들을 처리하는 단계 전의, 취출된 정보 스트림을, 정보 스트림의 정보 소스에 따라 선택되고 맵-리듀스 메커니즘에 의해 처리되는 매퍼 큐에 할당하는 단계를 포함하며; 프로세서는,
- 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계 후에,
- 처리된 정보 스트림을 리듀서 큐에 할당하는 단계로서, 리듀서 큐는 정보 스트림의 정보 소스에 따라 선택되는, 할당하는 단계;
- 각각의 현존 엔티티에 대해, 엔티티의 프로파일을, 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계로부터 생겨난 정보로 강화하는 단계; 및
- 각각의 나타내진 새 엔티티에 대해, 새 엔티티의 새 프로파일을 생성하고 프로파일을 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계로부터 생겨난 정보로 강화하는 단계를 포함하며;
현존 엔티티의 프로파일 또는 새 엔티티의 새 프로파일은 유형 및 미리 정의된 메타데이터 세트를 포함하며, 각각의 메타데이터는 키 및 값 쌍을 포함하며;
- 현존 엔티티의 프로파일 및 새 엔티티의 새 프로파일은 프로파일 리포지터리에 저장되며; 프로세서는,
- 엔티티의 완성된 프로파일을 인덱싱 엔진에 전송하는 단계를 포함하며;
- 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계에서, 정보 세그먼트들 중의 하나로 식별되는 범용 리소스 로케이터 및 정보 세그먼트들 중의 상기 하나에 할당된 고유 식별자 사이의 매핑은 시스템에 의해 해시 디렉토리에 등록된다.
본 발명은, 컴퓨터 판독가능 매체에 저장되어, 엔티티들에 관련되며 정보 스트림에 포함된 정보를 처리하는 컴퓨터 프로그램으로서, 엔티티들은 시스템의 리소스 디렉토리들에 포함되며, 각각의 리소스 디렉토리는 엔티티들을 포함하고 적어도 하나의 새 엔티티의 추가로 수정된 버전 번호로 주석달기되며, 이 컴퓨터 프로그램은 컴퓨터로 하여금 프로세스의 단계들을 취하도록 하는 코드 수단을 포함하는 컴퓨터 프로그램을 추가로 제안한다.
또한, 본 발명은 엔티티들에 관련되며 정보 스트림에 포함된 정보를 처리하는 장치로서, 엔티티들은 시스템의 리소스 디렉토리들에 저장되며, 각각의 리소스 디렉토리는 엔티티들을 포함하고 적어도 하나의 새 엔티티의 추가로 수정된 버전 번호로 주석달기되며, 이 장치는 프로세스의 단계들을 구현하기 위한 수단을 포함하는 장치에 관련된다.
이제 본 발명에 따른 프로세스 및 본 발명을 실시하는 시스템이 비제한적인 예에 의하여, 그리고 다음의 첨부 도면들을 참조하여 설명될 것이다:
도 1은 정보 스트림들과 인덱싱 엔진 사이에 삽입된 통합 박스를 예시한다;
도 2는 본 발명에 따른 통합 박스의 실시예를 묘사한다;
도 3은 본 발명을 실행하기에 적합한 하드웨어 및 소프트웨어 환경의 개략도이다.
본 발명은 엔티티들에 관련된 정보를 처리하는 컴퓨터 구현 프로세스에 관련되고 상기 엔티티들은 정보 스트림에 포함된다. 엔티티는 유형화된 (typed) 데이터인데, 유형화된 데이터는 값들의 세트, 다른 유형화된 데이터에 대한 링크들 및 어쩌면 그런 값들에 대한 동작들을 부가적으로 포함할 수도 있다. 예를 들면, 유형화된 데이터는 고객 이름, 시 (city), 제품 이름, 감성 가치 (sentiment value), 지불 방법일 수도 있다. 엔티티들은 시스템의 리소스 디렉토리들에 저장된다. 각각의 리소스 디렉토리는 엔티티들을 포함하고, 적어도 하나의 새 엔티티의 추가로써 수정된 버전 번호로 주석달기된다 (annotated). 버전 번호는, 예를 들어 시스템에 저장된 데이터의 신선도를 표시하는 데이터의 점증적으로 (incrementally) 상이한 버전을 추적하기 위해 사용될 수도 있다.
프로세스는 정보 스트림을 상이한 정보 소스들로부터 취출하는 단계를 포함한다. 다음에, 정보 세그먼트들은 정보 스트림으로부터 상기 리소스 디렉토리들의 엔티티들에 따라서 처리된다. 통상, 현존 리소스 디렉토리들에서 발견되는 엔티티들에 관한 정보가 추출된다. 그 다음, 정보 세그먼트들은 상기 리소스 디렉토리들의 어떤 버전이 상기 정보 세그먼트를 처리하기 위해 사용되었는지를 표시하는 주석 (annotation) 과 함께 저장된다. 새 엔티티가 처리된 세그먼트에서 발견되었다면, 상기 리소스 디렉토리들 중의 적어도 하나를 적어도 하나의 리소스 디렉토리를 새 엔티티를 가지게 업데이트하는 단계, 및 상기 적어도 하나의 리소스 디렉토리의 버전 번호를 업데이트하는 단계가 뒤따른다. 통상, 새 엔티티는 정보 스트림에서 발견된다. 그러면, 프로세스는 상기 정보 세그먼트들이 적어도 하나의 업데이트된 리소스 디렉토리의 이전 버전으로 처리되었음을 표시하는 주석을 포함하는 저장된 정보 세그먼트들을 재처리한다. 유익하게도, 개시된 기술은 정보 소스가 재처리되어야 할 것임을 식별함으로써 더 적은 정보 스트림을 저장하는 것을 허용한다. 더욱이, 저장된 정보 세그먼트들의 서브세트만이 재처리되는데, 이는 처리 시간을 개선한다.
도 1은 본 발명의 프로세스의 실시예를 묘사한다. 통합 (consolidation) 박스 (12) 는 정보 스트림들 (10) 과 클래식 인덱싱 엔진 (11) 사이에 삽입되고, 본 발명의 프로세스를 수행한다. 통합 박스는, 하나 이상의 입력 정보 소스들로부터의 엔티티에 관한 데이터를 변환하고 수집하는 것을 허용하는 컴퓨터 시스템이다.
통합 박스 (12) 는 정보 스트림들을 상이한 정보 소스들로부터 취출한다. 통상, 정보 스트림들 (10) 은 웹이라고도 하는 월드 와이드 웹에 의해 제공된다. 그러나, 정보 스트림들 (10) 은 또한 인트라넷들 또는 엑스트라넷들과 같은 사설 네트워크들에 의해 제공될 수도 있다. 그런데, 정보 (10) 의 어떤 소스라도 그 출처 (origin) 에 상관없이 본 발명을 실행하기 위해 사용될 수 있다. 정보 스트림들 (10) 은 엔티티들에 관련된 정보 세그먼트들을 제공한다. 엔티티는 유형화된 데이터인데, 유형화된 데이터는 값들의 세트, 다른 데이터 유형들에 대한 관계들의 세트 및 어쩌면 그 값들에 대한 동작들을 포함할 수도 있다. 예를 들면, 유형화된 데이터는 고객 이름, 시, 제품 이름, 감성 가치 (sentiment value), 지불 방법일 수도 있다. 정보 세그먼트들은 리소스 디렉토리들에 저장된 엔티티들에 따라서 정보 스트림으로부터 처리된다. 리소스 디렉토리들은 엔티티들을 포함하고 버전 번호로 주석달기된다. 그러면, 정보 세그먼트들은 통합 박스에 캐싱되는데(13), 통합 박스는 엔티티들에 관하여 프로파일들을 계속해서 그리고 점증적으로 구축한다. 통상, 프로파일들은 프로파일 리포지터리 (13) 에 저장되고, 통합 박스 (12) 에 의해 생성되는 출력 데이터이다. 프로파일들은 엔티티들에 관련된 데이터의 컬렉션이다. 통상, 프로파일들은 유형 및 미리정의된 메타데이터 세트를 포함하는 데이터 구조들이며, 각각의 메타데이터는 키-값 쌍들로 구성된다. 일부 메타데이터는 옵션적일 수도 있다. 정의에 의하여, 옵션적인 메타데이터 키-값 쌍들의 값 부분은 비어있을 수도 있다. 다른 메타데이터는 프로파일로 간주될 데이터 구조를 위하여 순서대로 필수적으로 제시될 수도 있다. 그래서, 엔티티의 프로파일이 완성될 때, 다시 말하면, 모든 요구된 데이터가 수집될 때, 그것은 프로파일의 데이터를 인덱싱하는 인덱스 엔진 (11) 에 전송된다.
실제로, 통합 박스 (12) 는 결정 지원 시스템 (Decision Support System: DSS) 의 부분일 수도 있다. DSS는 의사결정자들이 문제들을 알아보고 해결하며 의사결정을 하기 위하여 원시 데이터, 문서들, 개인 지식, 및/또는 비즈니스 모델들로부터 유용한 정보를 컴파일링하는 것을 돕고자 하는, 비즈니스 및 조직적 의사결정 활동들을 지원하는 특정 클래스의 컴퓨터화된 정보 시스템들이다.
이제, 도 2는 본 발명의 프로세스를 수행하는 시스템의 실시예, 다시 말하면, 통합 박스를 묘사한다.
통합 박스 (12) 는 커넥터들 (26, 27) 을 통해 외부 세계에 연결된다. 커넥터들은 정보 스트림의 소스들에 액세스하고 상이한 정보 소스들로부터 정보 스트림들을 취출한다. 실제로, 커넥터들은, 데이터 소스 (파일 시스템, 웹 페이지, 데이터베이스, 이메일) 에 연결하여 그 소스로부터 유형화된 데이터 (예를 들어, 송신자 이름, 이메일 본문 텍스트 등을 특정하는 XML) 를 추출하는 컴퓨터 모귤들이다. 비 제한적인 예로서, 커넥터들은 식당들에 관한 웹 사이트들의 주어진 목록들을 계속해서 크롤링할 수 있고, 정보 스트림으로부터, 다시 말하면, 식당들을 설명하는 웹 페이지들로부터, 정보의 세그먼트를 추출할 수 있다.
커넥터들은 어떤 정보 스트림이 인덱싱될 엔티티들을 정보 세그먼트들에 어쩌면 제공할지를 시스템의 사용자들이 결정하는 것을 허용한다. 이 결정은 스트림들의 출처에 따라 취해질 수도 있다. 출처는 서버의 지리적 위치, 그것의 IP 주소, 그것의 서비스들 (HTTP, FTP...) 과 같은 정보 스트림들의 소스의 기술적 고려에 기초하여 결정될 수도 있다. 출처는 또한 스트림들의 소스들, 예컨대 웹사이트, 포럼, 웹사이트에 있는 코멘트들, 블로그포스트들 등의 유형에 기초하여 결정될 수도 있다. 정보 스트림들을 선택된 정보 소스들에 따라 선택하는 것이 유리하며, 그에 의해 데이터 양이 (전체 웹을 크롤링하는 것보다는) 대폭 감소할 수도 있고, 그에 따라 통합 박스 (12) 의 계산 리소스들이 보존된다는 것이 이해된다. 유리하게도, 인덱싱될 엔티티들이 시스템에 아직 알려지지 않았더라도 결정이 취해질 수도 있다. 이것은, 주어진 엔티티가 발견된다면 그 엔티티에 관련된 어떠한 정보도 손실되지 않을 것임을 사용자가 예상할 가능성이 있기 때문이다.
커넥터들은 정보 세그먼트들을 스트림들로부터 추출한다. 정보 세그먼트들은 통합 박스에 의해 처리되는 입력 데이터이다. 각각의 정보 세그먼트는 데이터 구조이다. 실제로, 정보 세그먼트의 데이터 구조는 유형, 옵션적인 URI (Universal Resource Identifier) 및 비제약형 메타데이터 세트를 포함하고, 각각의 메타데이터는 키 및 값 쌍으로 구성된다. 일단 취출되면, 정보 스트림들로부터의 정보 세그먼트들은 리소스 디렉토리들의 현재 버전들을 따라서 처리된다.
통합 박스 (12) 에 입력된 정보 세그먼트들의 처리가 시작될 때, 고유 식별자가 각각의 처리되는 정보 세그먼트에 할당될 수도 있다. 부수적으로, 식별자가 또한 시스템에서의 각각의 엔티티에 할당될 수도 있다. 통상, 처리된 정보 세그먼트에서 나타내지는 각각의 새 엔티티의 경우, 양쪽 식별자들은 동일하다. 그래서, 마스터 기준 식별자가, 정보 세그먼트에 있는 메타데이터의 부분을 처리하는 마스터 기준 식별자 생성기에 의해 할당된다. 예를 들어, 엔티티들 중의 하나가 식당에 관련된다면, 식별자 생성기는 식당의 이름 및 그것의 주소를 포함하는 메타데이터를 취하여 엔티티 식당의 식당 마스터 기준 식별자를 생성할 것이다. 더 일반적으로, 주어진 유형의 각각의 정보 세그먼트는 특정 식별자 생성기에 매핑된다. (엔티티) 마스터 기준 식별자는 엔티티에 관한 다수의 정보 세그먼트들을 그 엔티티에 관한 단일 프로파일에 링크시킨다. 정보 세그먼트가 URI를 포함한다면, URI 와 생성된 (엔티티) 마스터 기준 식별자 사이의 매핑은 문서 식별자 해시테이블 (Document Identifier Hashtable: DIH) 에 등록된다.
일단 마스터 기준 식별자가 산출되면, 프로세스는 정보 세그먼트를 매퍼 큐 (mapper queue) (20) 에 할당하는데, 매퍼 큐는 추가의 처리를 대기한다. 할당은 세그먼트의 소스의 유형에 따라 수행된다. 실제로, 할당 프로세스는 통합 박스 (12) 내부의 통신을 관리하는 마스터 프로그램인 통합 박스 관리자에 의해 수행될 수도 있다.
매퍼 큐 (20) 는 본 기술분야에서 알려진 바와 같은 맵리듀스 (map-reduce) 메커니즘 (21) 덕분에 처리된다. 맵리듀스 메커니즘 (21) 은 막대한 데이터 세트들을, 총괄하여 클러스터라고도 하는 다수의 컴퓨터들을 이용하여 처리하는 프레임워크에 의존한다. 정보 세그먼트는 엔티티 마스터 기준 식별자에 의해 식별된 각각의 엔티티에 관한 추가의 메타데이터를 추출하고자 하는 엔티티 유형 특정 프로세스에 매핑된다 (21). 이 처리는 자연 언어 처리 및 정보 추출과 같은 대량의 (heavy) 컴퓨팅 동작들이 정보 세그먼트들에 대해 수행되는 고도 병렬화 처리 (highly parallelized processing) 이다. 정보 추출은 엔티티들 (예를 들어, 사람, 장소들, 돈들, 날짜들, 조직들, 제품들) 의 일정한 유형들을 비구조화된 또는 구조화된 텍스트로부터 인식하는 자연 언어 처리의 영역이다. 엔티티 인식 기법들은 목록들, 규칙들 또는 이 둘의 조합을 이용하는 것에 관계가 있다. 엔티티들은 또한 엔티티 계층구조들에도 태깅될 수 있다. 엔티티들은 통합 박스 (12) 의 엔티티 저장소 (store) (25) 에 저장된다. 덧붙여서, 정보 세그먼트들을 처리하는 동안에 정보 세그먼트에 있는 식별된 엔티티들은 또한 엔티티 저장소 (25) 에 저장될 수도 있다.
정보 세그먼트들을 리소스 디렉토리들의 엔티티들에 따라서 매핑 메커니즘에 의해 처리한 후, 정보 세그먼트들은 전용 저장소 (25) 에 저장된다. 부수적으로, 엔티티 유형에 매핑된 각각의 정보 세그먼트를 엔티티 유형에 따라서 통합 박스 (12) 의 초기 구성에 저장가능하거나 또는 저장 불가능한 것으로서 선언하는 것이 가능하다. 엔티티 유형이 저장 불가능한 것으로 선언된다면, 정보 세그먼트는 저장되지 않을 것이다. 반면에, 정보 세그먼트에 매핑되는 엔티티 유형이 저장가능한 것으로서 구성된다면, 정보 세그먼트는 그것의 원본 포맷으로, 어쩌면 매핑 단계 동안 생성되지만 세그먼트가 처리되었던 리소스들의 버전 번호들로 확실히 주석달기된 부가적인 메타데이터와 함께, 통합 박스 내부의 정보 세그먼트 저장소 (22) 에 저장된다. 정말로, 위에서 알 수 있는 바와 같이, 엔티티들은 엔티티 저장소들 (25) 라고 불리는 리소스 디렉토리들에 저장된다. 리소스 디렉토리는 엔티티의 특정한 유형에 상응하고, 각각의 리소스 디렉토리는 버전 번호를 가진다.
정보 세그먼트들의 처리는 새 엔티티들을, 예컨대 위에서 언급된 엔티티 인식을 이용하여 나타낼 수도 있다. 리소스들은 엔티티들을 식별하는데 사용될 수도 있고, 목록들, 사전들, 시소러스, 또는 온톨로지들로 구성될 수도 있다. 이들 새 엔티티들은 엔티티 저장소들 (25) 에 저장된다. 리소스 디렉토리들 (25) 에 추가된 새 엔티티들은 추가되는 이 새 엔티티의 추가로 한 번 수정된 리소스 디렉토리에 제공된 버전 번호를 표시하는 주석을 포함할 수도 있다. 따라서, 각각의 리소스 디렉토리의 개별 버전 번호를 변경하는 것에 관계가 있는 상응하는 리소스 디렉토리들의 업데이트가 수행된다. 덧붙여서, 이전에 보인 정보 스트림 (정보 세그먼트 저장소 (22) 에 저장됨) 의 일부 부분들은 이들 새 엔티티들에 대한 정보를 포함할 수도 있다. 그러므로, 저장된 (22) 정보 세그먼트들은, 그것들이 리소스 디렉토리의 이전 버전으로 처리되었음을 표시하는 주석을 포함하는 것으로서, 이 정보 세그먼트들은 재처리된다. 저장된 정보 세그먼트들의 재처리는 또한 리소스 디렉토리들에 추가된 새 엔티티들에 따라서 수행될 수도 있다. 각각의 정보 세그먼트의 주석은 유익한데, 이는 정보 세그먼트 저장소 (22) 에 저장된 어떤 세그먼트들이 엔티티 리소스의 이전 버전을 이용하여 처리되었는지를 프로세스가 선택할 수 있기 때문이라는 것이 이해된다. 동일한 유형의 엔티티 리소스로 처리되지 않은 세그먼트들은 재처리를 위해 선택되지 않는다. 그러므로, 또한 이 선택 덕분에, 저장소 (22) 에 저장된 정보 세그먼트의 서브세트만이 재처리되고, 그 결과, 계산 리소스들은 보존되고 처리 시간은 개선된다. 덧붙여서, 스트림들의 적은 정보 세그먼트들이 저장될 것이 필요하고, 그래서 어떤 정보 소스들이 재처리되어야할 지를 식별함으로써, 저장 비용을 줄인다. 부가적인 이익으로, 리소스 버전 번호들은, 정보 세그먼트의 재처리 동안, 오로지 엔티티들의 리소스 디렉토리들의 새 버전들에서 보이는 엔티티들을 위한 정보를 추출하는 것을 허용하고, 정말로, 이들 리소스 디렉토리들에서, 각각의 엔티티는 또한 그 엔티티가 처음 나타난 리소스 디렉토리의 버전 번호로 주석달기되어, 재처리 동안 어떤 엔티티들이 새 정보 추출을 필요로 할지를 시스템이 인식할 수 있게 한다. 다시, 새 엔티티들을 위한 정보만을 추출하는 것에 의해, 처리 시간은 저장된 정보 세그먼트들을 재처리할 때 감소한다.
부수적으로, 정보 스트림들로부터의 정보 세그먼트들이 처리되는 동안 새 엔티티들이 나타내질 수도 있지만, 또한 사용자에 의해 입력될 수도 있다. 덧붙여서, 통합 박스 (12) 는 또한 자연 언어 처리 리소스들을 동적으로 업데이트하기 위하여 인터페이스를 제공할 수도 있다. 각각의 리소스는 버전 번호를 소유한다. 일단 리소스의 업데이트들이 일어나면, 버전 번호가 변경되고, 따라서, 관련된 정보 세그먼트들의 재처리가 수행될 수도 있다.
다음으로, 매핑 메커니즘에 의해 처리하고 정보 세그먼트를 임의의 부가적인 메타데이터와 함께 저장한 후, 처리된 정보 세그먼트들은 리듀서 큐 (23) 에 추가된다. 각각의 엔티티는 통합 박스 (12) 의 구성에서 규정되는 관련된 리듀서 (reducer) 를 가진다. 리듀서는 입력으로서 하나 또는 여러 정보 세그먼트들을 취할 수 있는 컴퓨터 프로그램이다.
프로파일들은 리듀싱 스테이지 (24) 에서 생성된다. 동일한 마스터 기준 식별자를 가진 엔티티가 이미 존재한다면, 그 엔티티는 통합 박스의 일부인 엔티티 저장소 (25) 로부터 페치될 것이다. 정보 세그먼트들은 타깃 엔티티마다 순차적으로 처리된다. 리듀싱 메커니즘은 모든 프로파일들을 그것들이 일부 요구된 메타데이터를 잃어버린 경우에도 통합 박스 (12) 의 일부인 프로파일들의 저장소에 저장한다.
프로파일이 통합 박스 구성에서 이 엔티티 유형을 위해 정의된 모든 요구된 메타데이터를 포함한다면, 리듀싱 메커니즘 (24) 은 또한 그 프로파일을 통합 박스 (12) 외부의 인덱싱 체인 (11) 에 전송한다.
본 발명에 따른 프로세스의 실시예를 도시하는 시나리오가 이제 제시된다. 이 시나리오에서, 정보의 3가지 소스들, 즉 식당들의 웹 사이트들, 코멘트들 및 블로그 엔트리들 (블로그포스트들이라고도 불림) 이 통합 박스 (12) 에 의해 처리된다. 식당들의 프로파일들은 처리된 정보로부터 구축되고, 이름, 주소, 지불 방법, 메뉴, 소비자 심리 등과 같은, 각각의 식당에 관련된 필드들을 포함할 수도 있다.
2 개의 커넥터들 (26, 27) 은 정보 스트림의 소스들에 액세스하고 정보 스트림으로부터의 정보 세그먼트들을 통합 박스 (12) 로 푸시한다. 하나의 커넥터는 식당들의 정보 및 코멘트들을 여러 식당 리뷰 웹사이트들로부터 추출하고 그것들을 통합 박스 (12) 에 푸시하고, 제 2 커넥터는 블로그 엔트리들을 여러 블로그들로부터 추출하고 그것들을 통합 박스 (12) 에 푸시한다.
이 시나리오에서, 제 1 커넥터는 다음의 정보 세그먼트를 통합 박스에 공급한다:
Figure pct00001
이 정보 세그먼트는 유형인 "식당(restaurant)", 옵션적인 범용 리소스 식별자인 "http://www.restaurantreviews.com/ABCRestaurant", 및 비제약형 메타데이터 세트를 포함하는데, 각각의 메타데이터는 키 및 값 쌍 (예를 들면, 키 이름 ="restaurantName" 및 값 ="ABC 식당") 을 포함한다. 이 정보 세그먼트는 그래서 식당 정보 세그먼트이다.
통합 박스 (12) 는 이 식당 정보 세그먼트를 처리한다. "식당" 유형 정보 세그먼트에 대한 마스터 기준 식별자 생성기가 계산된다. 이 마스터 기준 식별자 생성기는 통합 박스 (12) 의 구성에서 정보 세그먼트의 이 유형 ("식당") 에 관련된 것으로서, 이 마스터 기준 식별자 생성기는 식당 주소 및 이름을 분석하고 정규화하여 엔티티인 "ABC 식당이란 이름의 식당"의 고유 엔티티 마스터 기준 식별자를 생성한다. 이 엔티티 마스터 기준 식별자는 정보 세그먼트에 새 메타데이터로서 추가된다. 이 엔티티 마스터 기준 식별자를 고유 키로서 이용하여, 동일한 엔티티인 "ABC 식당이란 이름의 식당"에 대해 상이한 리뷰들의 웹사이트들에 걸쳐서 모은 정보는 이 엔티티의 동일한 프로파일에 수집될 것이다. 유리하게는, 다른 "ABC 식당"이 다른 거리의 주소에 있었다면, 상기 생성기는 이 제 2 식당에 대해 별개의 엔티티 마스터 기준 식별자를 생성할 것이고, 그래서 엔티티인 "ABC 식당이란 이름의 식당" 과 제 2 식당 엔티티인 제 2 식당 사이의 구별을 할 수 있다.
다음으로, 정보 세그먼트가 URI를 메타데이터로서 가지는 동안, 통합 박스의 관리자는 URI 와 이전에 계산된 엔티티 마스터 기준 식별자 사이의 매핑을 통합 박스 (12) 의 일부인 문서 Id 해시테이블 (Document Id Hashtable: DIH) 에 등록한다. 해시테이블은 엔티티 마스터 기준 식별자를 관련된 URI에 효율적으로 매핑하는 해시 함수를 이용하는 데이터 구조이다. 유리하게도, 해시테이블의 사용은 효율적인 검색들의 수행을 허용한다.
그러면, 통합 박스 관리자는 식당 정보 세그먼트를 매퍼 큐 (22) 에 푸시한다. 정보 스트림의 매퍼 큐로의 할당은 매퍼 큐가 정보 스트림의 유형 (또는 정보 소스) 에 따라 선택되도록 수행된다. 이 정보 세그먼트가 "식당"이란 유형의 엔티티에 관련된다면, 식당 정보 세그먼트는 식당 유형 정보 세그먼트들을 위해 매퍼 큐에 전송된다. 매퍼 관리자 프로그램은 통합 박스 관리자에 의해 활성화되고 매퍼 큐에 있는 식당 정보 세그먼트는 맵리듀스 메커니즘 (21) 에 의해 처리된다.
다음으로, 식당 정보 세그먼트는 매퍼 관리자에 의해 추출되고 식당 매퍼에 전송된다. 식당 매퍼는 프로그램이고 통합 박스에 속한 리소스에서 (식당 이름, 엔티티 마스터 기준 식별자) 쌍이 이미 존재하는지를 식별한다. 매퍼 프로그램에 의해 추출된 (식당 이름, 엔티티 마스터 기준 식별자) 쌍이 그 리소스에서 존재하지 않는다면, 그 리소스는 업데이트를 하기 위해 프로그래밍될 것이며, 새 정보는 로컬 파일에 저장되고, 리소스는 조금 나중의 시간에 새 버전을 구축하기 위하여 새 정보가 이용가능함을 의미하는 "오손 (dirty) "으로서 마킹될 것이다.
다음으로, 식당 정보 세그먼트가 저장가능한 것으로 구성되지 않으면, 그 식당 정보 세그먼트는 정보 세그먼트 저장소 (22) 에 기록되지 않는다.
그러면, 식당 정보 세그먼트는 매퍼 (21) 에 의해 리듀스 큐 (23) 에 전송된다.
리듀싱 스테이지가 트리거될 때, 식당 정보 세그먼트는 식당 엔티티 리듀서에 의해 처리된다. 엔티티인 "ABC 식당이란 이름의 식당"의 엔티티 마스터 기준 id에 대해 어떠한 프로파일도 아직은 존재하지 않으므로, 새 프로파일이 생성된다. 새 프로파일은 유형 및 미리 정의된 메타데이터 집합을 포함하는데, 각각의 메타데이터는 키 및 값 쌍을 포함한다. 프로파일은, 원래의 정보 세그먼트들로부터 뿐만 아니라 엔티티 "ABC 식당이란 이름의 식당"의 이 엔티티 마스터 기준 식별자에 관련되는 리듀스 큐에 있는 임의의 다른 정보 세그먼트로부터, 매퍼들에 의해 생성된 모든 정보로부터 강화된다.
그러면, 새로 수정된 프로파일은 프로파일 리포지터리, 다시 말하면, 프로파일들의 저장소 (29) 에 저장된다. 저장된 프로파일이 요구된 모든 메타데이터를 포함한다면, 다시 말해, 프로파일의 모든 필수 (mandatory) 필드들이 채워진다면, 프로파일은 통합 박스 (12) 외부의 클래식 인덱스 엔진 (11) 에 의해 인덱싱되기 위하여 전송된다.
제 2 커넥터는 다음의 블로그포스트에 정보 세그먼트를 공급하고 그것을 통합 박스에 전송한다:
Figure pct00002
통합 박스는 유형인 "블로그포스트"의 정보 세그먼트를 "블로그포스트" 유형 (예컨대 정보 스트림들의 소스들이 블로그들이다) 의 정보 세그먼트들을 위해 통합 박스 구성에 있는 관련된 마스터 기준 식별자 생성기 프로그램에 먼저 전송하는 것에 의해 이 정보 세그먼트를 처리한다. 이 마스터 기준 식별자 생성기 프로그램은 문서의 간단한 핑거프린트를 그것의 마스터 기준 식별자로서 생성한다. 이 정보 세그먼트는 그래서 블로그포스트 정보 세그먼트이다.
다음으로, 블로그포스트 정보 세그먼트가 URI를 가지면, DIH에 있는 엔트리가 추가되며, 그래서 블로그포스트들의 정보 세그먼트의 URI를 그것의 엔티티 마스터 기준 식별자에 매핑한다.
그러면, 통합 박스 (12) 의 관리자는 블로그포스트 정보 세그먼트를 매핑용 큐 (20) 에 삽입한다.
그런 다음 맵 관리자 프로그램은 통합 박스의 관리자에 의해 활성화되어서 블로그포스트 정보 세그먼트가 "블로그포스트" 유형의 정보 세그먼트에 전용되는 매퍼 (21) 에 의해 처리되게 한다. 이 "블로그포스트" 매퍼는 식당 이름들을 포함하는 리소스에 대한 자연 언어 처리 매칭을 수행한다. "블로그포스트" 매퍼 (21) 가 식당 이름을 블로그포스트에서 검출한다면, 식당 엔티티 마스터 기준 식별자를 가지는 주석 (note) 이 블로그포스트 정보 세그먼트에 추가될 것이다. 이 경우, "식당 이름"의 리소스 디렉토리는 엔티티인 "ABC 식당이란 이름의 식당"의 "ABC 식당" 이름으로 아직 업데이트되지 않아, 아직까지는 이름들이 매칭되지 않는다.
다음으로, "블로그포스트" 유형의 정보 세그먼트들이 통합 박스 (12) 의 구성에서 저장가능한 것으로서 선언되면, 이 블로그포스트 정보 세그먼트는 정보 세그먼트들의 저장소 (22) 에 저장되어, 처리되는 동안에 어떤 리소스 디렉토리들의 버전이 사용되었는지를 표시하기 위하여 주석달기된다. 이 경우, 식당 이름 리소스의 현재 버전은 버전 0이다.
그러면, 블로그포스트 정보 세그먼트들은 매퍼 (21) 에 의하여 리듀스 큐 (23) 에 전송된다.
그 후, 리듀싱 스테이지는 통합 박스 관리자에 의해 활성화되고 새 블로그포스트 프로파일이 블로그포스트 리듀서에 의해 생성될 것이다. 이 목적을 위하여, 블로그포스트 정보 세그먼트의 메타데이터는 새로 생성된 프로파일에 복사되는데, 이는 블로그포스트 정보 세그먼트의 마스터 기준 id에 대해 아직 프로파일이 존재하지 않아서이다.
그 후에, 블로그포스트 프로파일은 통합 박스 내부의 프로파일들의 저장소 (29) 에 저장될 것이다. 덧붙여서, 모든 요구된 메타데이터가 프로파일에 존재한다면, 리듀서는 또한 그 프로파일을 클래식 외부 인덱서 (11) 에서 인덱싱되도록 통합 박스 (12) 외부로 전송할 것이다.
식당 이름들의 리소스의 현재 버전은 버전 0이다. 어느 순간, 통합 박스 관리자는 식당 이름들의 리소스의 새 버전을 구축하도록 결정할 것이다. 부수적으로, 외부 이벤트가 또한 리소스들의 업데이트를, 예컨대 사용자 결정에 의거하여 트리거할 수도 있다. 리소스의 이 새 버전, 즉 버전 1에서, 엔티티인 "ABC 식당이란 이름의 식당"의 식당 이름 "ABC 식당" 및 그것의 엔티티 마스터 기준 식별자는 식당 이름들의 리소스 디렉토리에서 나타날 것이다. 일단 식당 이름들의 리소스 디렉토리의 이 새 버전 1이 구축되면, 발견된 모든 새 (식당 이름, 엔티티 마스터 기준 식별자) 쌍들을 통합하는 것에 의해, 통합 박스 관리자는 로컬 정보 세그먼트들의 저장소 (22) 에 저장된 모든 정보 세그먼트들을 조사하여, 이 리소스의 이전 버전을 이용하는 임의의 정보 세그먼트를 "오손"으로서 마킹할 것이다. 이들 데이터는 새 리소스로 재처리되는 것을 필요로 하는데, 그것들이 리소스의 이전 버전으로는 놓쳤던 정보, 예를 들어, 이전에 알려지지 않은 식당에 관한 정보를 포함할 수 있어서이다. 프로세스는, 리소스의 이전 버전을 이용하여 처리된, 정보 세그먼트 저장소 (22) 에 저장된 세그먼트들을 선택할 수 있다. 그러므로, 저장소 (22) 에 저장된 정보 세그먼트의 서브세트만이 재처리되고, 그 결과, 계산 리소스 및 처리 시간이 보존된다. 덧붙여서, 스트림들의 더 적은 정보 세그먼트들이 저장될 것을 필요로 하고, 그래서 어떤 정보 소스들이 재처리되어야할지를 식별하는 것에 의해 저장 비용을 감소시킬 필요가 있다. 더욱이, 주석달기된 정보 세그먼트들이 로컬 정보 세그먼트들의 저장소 (22) 에 저장되면, 리소스들이 업데이트될 때 외부 정보 소스들로부터의 정보를 다시 페치할 필요가 있다. 이는 네트워크 대역폭의 소비를 상당히 줄인다.
그러면 통합 박스 관리자는 블로그포스트 정보 세그먼트를 매핑용 큐 (20) 에 삽입하는 것에 의해 모든 "오손" 정보 세그먼트 통합 프로세스에 재진입시키는 "쓸모없는 비즈니스 데이터 재처리" 프로그램을 활성화시킨다.
이번에, 매퍼는 엔티티인 "ABC 식당이란 이름의 식당"의 식당 이름 "ABC 식당"을 블로그포스트 정보 세그먼트의 텍스트에서 매칭시키고, "ABC 식당" 엔티티 아이템 마스터 기준 식별자를 가지는 주석을 블로그포스트 정보 세그먼트에 추가한다.
그러면 블로그포스트 정보 세그먼트는 블로그포스트 리듀서 및 식당 리듀서에서의 리듀싱을 위해 큐잉된다. 블로그포스트 리듀서는 로컬 프로파일들의 저장소 (29) 를 블로그포스트의 마스터 기준 식별자를 이용하여 검색하며, 이 블로그포스트에 상응하는 이전에 만들어진 프로파일을 찾아내고, 그런 다음 식당의 마스터 기준 식별자를 이 현존 블로그포스트 프로파일에 추가한다.
이 동일한 블로그포스트 정보 세그먼트를 리듀싱하는 식당 리듀서는, 엔티티인 "ABC 식당이란 이름의 식당"의 프로파일을 페치하고 이 엔티티에 관련되는 블로그포스트의 번호를 증가시키거나, 또는 감성 분석 (sentiment analysis) 메타데이터가 블로그포스트 정보 세그먼트에 매퍼에 의해 추가되었다면 감성 분석을 계산한다.
마지막으로, 블로그포스트 및 식당 프로파일들 양쪽 모두는 그것들이 그것들의 개별 필수 메타데이터 세트를 포함한다면 프로파일 저장소에 저장되고 외부 인덱서 (11) 에 전송된다.
이 시나리오에서 처리되는 정보 소스의 제 3 유형은 식당 코멘트들이다. 다른 커넥터로부터 유래하고 자연 언어 처리 기법들을 요구하는 블로그포스트들과는 대조적으로, 코멘트들은 동일한 웹 페이지들 상에서 식당들 또는 그것들에 직접 링크된 페이지들로서 추출된다.
식당 커넥터는 (유형 "코멘트"의) 다음의 정보 세그먼트를 통합 박스에 푸시한다:
Figure pct00003
통합 박스 관리자는 정보 세그먼트의 코멘트를 코멘트 정보 세그먼트들에 관련된 마스터 기준 id 생성기에 전송한다. 코멘트들이 복잡한 해상도 규칙들 (complex resolution rules) 을 갖지 않으므로, 문서의 간단한 핑거프린트가 코멘트 마스터 기준 식별자로서 할당된다.
다음으로, 코멘트 정보 세그먼트가 URI를 포함하면, DIH에 있는 엔트리가 추가되어 코멘트 URI를 코멘트 마스터 기준 id에 매핑한다.
그러면, 이 코멘트 정보 세그먼트는 통합 박스 관리자에 의해 처리되고 매핑 큐 (20) 에 전송된다. 통합 관리자가 매핑 메커니즘 (21) 을 활성화할 때, 코멘트 정보 세그먼트는 코멘트 매퍼에 의해 처리된다. 이 매퍼는 DIH로의 간단한 룩업을 수행하여 식당 URI 를 식당 마스터 기준 식별자로 분해하고, 상응하는 식당 마스터 기준 식별자를 새 메타데이터로 하여 코멘트 정보 세그먼트에 추가한다.
그 후, 코멘트 정보 세그먼트는 통합 박스 구성에서 저장가능한 것으로서 규정되지 않고, 코멘트 정보 세그먼트는 로컬 정보 세그먼트 저장소 (22) 에 저장되지 않는다.
다음으로, 매퍼는 증강된(augmented) 코멘트 정보 세그먼트를 리듀스 큐에 위치시킨다. 리듀싱 스테이지가 통합 박스 관리자에 의해 활성화될 때, 코멘트 정보 세그먼트는 코멘트 리듀서 및 식당 리듀서 양쪽 모두에 의해 처리될 것이다. 식당 리듀서는 "ABC 식당" 프로파일을 프로파일 저장소 (29) 로부터 페치하고 이 식당에 관련되는 코멘트들의 수를 증가시키거나, 또는 감성 분석을 계산하고 업데이트된 식당 프로파일을 다시 프로파일 저장소 (29) 에 저장한다. 코멘트 리듀서는 새 코멘트 프로파일을 생성하고 코멘트 정보 세그먼트의 메타데이터를 코멘트 정보 세그먼트의 프로파일에 복사한다.
마지막으로, 코멘트의 프로파일은 프로파일 저장소 (29) 에 저장되고, 결국에는 모든 요구된 메타데이터가 존재한다면 인덱스 엔진 (11) 에 전송된다.
전술한 방법은 시스템에 의해 규정될 수 있는 임의의 구성에 있는 어느 정보 스트림에라도 적용될 수 있다는 것이 이해된다. 본 발명은 디지털 전자 회로로 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그것들의 조합들로 구현될 수도 있다. 본 발명의 장치는 프로그램가능 프로세서에 의한 실행을 위해 기계 판독가능 저장 디바이스에 유형으로 (tangibly) 포함되는 컴퓨터 프로그램 제품으로 구현될 수도 있으며; 그리고 본 발명의 방법 단계들은 입력 데이터에 대해 동작하고 출력을 생성하는 것에 의해 본 발명의 기능들을 수행하기 위하여 프로그램의 명령들을 실행하는 프로그램가능 프로세서에 의해 수행될 수도 있다.
본 발명은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스에 대해 데이터 및 명령들을 수신하고 데이터 및 명령들을 송신하도록 결합되는 적어도 하나의 프로그램가능 프로세서를 구비한 프로그램가능 시스템에서 실행가능한 하나 이상의 컴퓨터 프로그램들로 유리하게 구현될 수도 있다. 애플리케이션 프로그램은 소망된다면 고급 절차적 또는 객체 지향 프로그래밍 언어로 또는 어셈블리 또는 기계어로 구현될 수도 있으며; 그리고 어쨌든, 이 언어는 컴파일 또는 인터프리트 언어일 수도 있다.
도 5 는 컴퓨터 시스템, 예컨대 통합 박스를 도시한다. 통합 박스는 내부 통신 버스 (BUS) (100) 에 연결된 중앙 처리 유닛 (CPU) (101), 또 이 BUS에 연결된 임의 접근 메모리 (RAM) (105) 를 포함한다. 대용량 저장 디바이스 제어기 (102) 는 대용량 메모리 디바이스, 이를테면 하드 드라이브 (103) 에 대한 액세스들을 관리한다. 컴퓨터 프로그램 명령들 및 데이터를 유형으로 포함하기에 적합한 대용량 메모리 디바이스들은, 예로서 반도체 메모리 디바이스들, 이를테면 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들 이를테면 내장형 하드 디스크들 및 착탈식 디스크들; 자기 광 디스크들; 및 CD-ROM 디스크들 (104) 을 포함하는 모든 형태의 비휘발성 메모리를 포함한다. 전술한 것들 중의 어느 것이라도 특별히 디자인된 ASIC들 (application-specific integrated circuits) 에 의해 보충되거나, 또는 그 ASIC들에 통합될 수도 있다. 네트워크 어댑터 (107) 가 네트워크 (108) 에 대한 액세스들을 관리한다. 통합 박스는 디스플레이 (106) 와 햅틱 디바이스를 포함할 수도 있다. 이 방법에 의하여, 사용자가 컴퓨터 시스템과는 예컨대 자연 언어 처리 리소스들을 수정하기 위하여 상호작용할 수도 있다.
본 발명의 바람직한 실시예가 설명되었다. 갖가지 변형들이 본 발명의 정신 및 범위로부터 벗어남 없이 만들어질 수도 있다는 것이 이해될 것이다. 그러므로, 다른 구현예들은 다음의 청구항들의 범위 내에 있다. 예를 들면, 본 발명의 프로세스는 인덱스 엔진에 의하여 실행될 수도 있다.

Claims (15)

  1. 엔티티들에 관련된 정보를 처리하는 컴퓨터 구현 프로세스로서,
    상기 엔티티들은 정보 스트림에 포함되고, 시스템의 리소스 디렉토리들에 저장되며,
    각각의 리소스 디렉토리는 엔티티들을 포함하고, 적어도 하나의 새 엔티티의 추가로 수정된 버전 번호로 주석달기되며 (annotated),
    상기 컴퓨터 구현 프로세스는,
    - 정보 스트림 (10) 을 다른 정보 소스들로부터 취출하는 단계;
    - 상기 리소스 디렉토리들의 엔티티들 (25) 에 따라서 상기 정보 스트림으로부터의 정보 세그먼트들을 처리하는 (12) 단계;
    - 상기 리소스 디렉토리들의 어떤 버전이 상기 정보 세그먼트를 처리하기 위해 사용되었는지를 표시하는 주석 (annotation) 과 함께 상기 정보 세그먼트들을 저장하는 (13) 단계;
    - 적어도 하나의 새 엔티티 (25) 로, 상기 리소스 디렉토리들 중 적어도 하나의 리소스 디렉토리를 업데이트하고, 상기 적어도 하나의 리소스 디렉토리의 버전 번호를 업데이트하는 단계; 및
    - 상기 정보 세그먼트들이 상기 적어도 하나의 리소스 디렉토리의 이전 버전으로 처리되었음을 표시하는 주석을 포함하는 저장된 정보 세그먼트들을 재처리하는 (12) 단계를 포함하는, 컴퓨터 구현 프로세스.
  2. 제 1 항에 있어서,
    리소스 디렉토리에 추가된 새 엔티티는 추가되는 상기 새 엔티티의 추가로 한 번 수정된 상기 리소스 디렉토리에 제공된 버전 번호를 표시하는 주석을 포함하고,
    상기 재처리하는 단계는, 상기 리소스 디렉토리들에 추가된 상기 새 엔티티들에 따라서 상기 저장된 정보 세그먼트들을 재처리하는 단계를 더 포함하는, 컴퓨터 구현 프로세스.
  3. 제 1 항 또는 제 2 항에 있어서,
    고유 식별자가 각각의 처리된 정보 세그먼트들 및 각각의 엔티티에 할당되는, 컴퓨터 구현 프로세스.
  4. 제 3 항에 있어서,
    각각의 새 엔티티에 할당된 식별자는 상기 각각의 새 엔티티를 나타냈던 상기 처리된 정보 세그먼트의 식별자와 동일한, 컴퓨터 구현 프로세스.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계에서, 새 엔티티들은 사용자에 의해 나타내지거나 입력되고, 상응하는 리소스 디렉토리들에 추가되는, 컴퓨터 구현 프로세스.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 처리된 정보 세그먼트들은 데이터 구조들인, 컴퓨터 구현 프로세스.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 처리된 정보 세그먼트들은 유형, 옵션적인 범용 리소스 식별자, 및 비제약형 메타데이터 세트를 포함하며, 각각의 메타데이터는 키 및 값 쌍을 포함하는, 컴퓨터 구현 프로세스,
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 정보 스트림으로부터의 상기 처리된 정보 세그먼트들은 선택된 정보 소스들에 따라 저장되는, 컴퓨터 구현 프로세스.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계 이전에,
    - 상기 취출된 정보 스트림을, 상기 정보 스트림의 정보 소스에 따라 선택되고 맵-리듀스 (map-reduce) 메커니즘에 의해 처리되는 매퍼 큐 (mapper queue) 에 할당하는 단계를 더 포함하는, 컴퓨터 구현 프로세스.
  10. 제 5 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계 이후에,
    - 상기 처리된 정보 스트림을, 상기 정보 스트림의 정보 소스에 따라 선택되는 리듀서 큐 (reducer queue) 에 할당하는 단계;
    - 각각의 현존 엔티티에 대해, 상기 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계로부터 생성된 정보로 상기 엔티티의 프로파일을 강화하는 단계; 및
    - 각각의 나타내진 새 엔티티에 대해, 상기 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계로부터 생성된 정보로, 상기 새 엔티티의 새 프로파일을 생성하고 상기 엔티티의 프로파일을 강화하는 단계를 더 포함하며,
    상기 엔티티의 프로파일 또는 상기 새 엔티티의 새 프로파일은 유형 및 미리정의된 메타데이터 세트를 포함하고, 각각의 메타데이터는 키 및 값 쌍을 포함하는, 컴퓨터 구현 프로세스.
  11. 제 10 항에 있어서,
    상기 현존 엔티티의 프로파일 및 상기 새 엔티티의 새 프로파일은 프로파일 리포지터리에 저장되는, 컴퓨터 구현 프로세스.
  12. 제 10 항 또는 제 11 항에 있어서,
    - 엔티티의 완성된 프로파일을 인덱싱 엔진에 전송하는 단계를 더 포함하는, 컴퓨터 구현 프로세스.
  13. 제 3 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 정보 스트림으로부터의 정보 세그먼트들을 처리하는 단계에서, 상기 정보 세그먼트들 중 하나의 정보 세그먼트에서 식별된 범용 리소스 로케이터와 상기 정보 세그먼트들 중 상기 하나의 정보 세그먼트에 할당된 고유 식별자 사이의 매핑은 상기 시스템에 의해 해시 디렉토리에 등록되는, 컴퓨터 구현 프로세스.
  14. 컴퓨터 판독가능 매체에 저장되고, 엔티티들에 관련된 정보를 처리하는 컴퓨터 프로그램으로서,
    상기 엔티티들은 정보 스트림에 포함되고, 시스템의 리소스 디렉토리들에 저장되며,
    각각의 리소스 디렉토리는 엔티티들을 포함하고, 적어도 하나의 새 엔티티의 추가로 수정된 버전 번호로 주석달기되며,
    상기 컴퓨터 프로그램은, 컴퓨터로 하여금, 제 1 항 내지 제 13 항 중 어느 한 항의 컴퓨터 구현 프로세스의 단계들을 취하게 하는 코드 수단을 포함하는, 컴퓨터 프로그램.
  15. 엔티티들에 관련된 정보를 처리하는 장치로서,
    상기 엔티티들은 정보 스트림에 포함되고, 시스템의 리소스 디렉토리들에 저장되며,
    각각의 리소스 디렉토리는 엔티티들을 포함하고, 적어도 하나의 새 엔티티의 추가로 수정된 버전 번호로 주석달기되며,
    상기 장치는 제 1 항 내지 제 13 항 중 어느 한 항의 컴퓨터 구현 프로세스의 단계들을 구현하기 위한 수단을 포함하는, 장치.
KR1020127010813A 2009-10-27 2010-10-12 정보 스트림의 정보를 처리하는 방법 및 시스템 KR101775883B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09290821.9 2009-10-27
EP09290821A EP2325762A1 (en) 2009-10-27 2009-10-27 Method and system for processing information of a stream of information
PCT/IB2010/054605 WO2011051849A2 (en) 2009-10-27 2010-10-12 Method and system for processing information of a stream of information

Publications (2)

Publication Number Publication Date
KR20120101365A true KR20120101365A (ko) 2012-09-13
KR101775883B1 KR101775883B1 (ko) 2017-09-07

Family

ID=41647191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127010813A KR101775883B1 (ko) 2009-10-27 2010-10-12 정보 스트림의 정보를 처리하는 방법 및 시스템

Country Status (7)

Country Link
US (1) US9122769B2 (ko)
EP (1) EP2325762A1 (ko)
JP (1) JP5697172B2 (ko)
KR (1) KR101775883B1 (ko)
CN (1) CN102667776B (ko)
CA (1) CA2779366C (ko)
WO (1) WO2011051849A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101411563B1 (ko) * 2013-11-01 2014-06-25 한국과학기술정보연구원 리소스 지역성에 기초한 분산 처리 시스템 및 분산 처리 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501455B2 (en) * 2011-06-30 2016-11-22 The Boeing Company Systems and methods for processing data
US8521769B2 (en) 2011-07-25 2013-08-27 The Boeing Company Locating ambiguities in data
CN104145257B (zh) 2011-12-14 2017-02-15 英派尔科技开发有限公司 用于被连接设备的语义缓存云服务
CN102646072B (zh) * 2012-02-28 2014-10-29 信雅达系统工程股份有限公司 数据管理方法
CA2789909C (en) * 2012-09-14 2019-09-10 Ibm Canada Limited - Ibm Canada Limitee Synchronizing http requests with respective html context
US20140156399A1 (en) * 2012-12-03 2014-06-05 Meal Ticket Wholesale food marketing and distribution platform
WO2014149555A1 (en) * 2013-03-15 2014-09-25 Thomson Reuters Global Resources Method and system for generating and using a master entity associative data network
WO2015138596A1 (en) * 2014-03-11 2015-09-17 Convida Wireless, Llc Enhanced distributed resource directory
US9356913B2 (en) 2014-06-30 2016-05-31 Microsoft Technology Licensing, Llc Authorization of joining of transformation chain instances
US9773070B2 (en) 2014-06-30 2017-09-26 Microsoft Technology Licensing, Llc Compound transformation chain application across multiple devices
US9659394B2 (en) 2014-06-30 2017-05-23 Microsoft Technology Licensing, Llc Cinematization of output in compound device environment
US9396698B2 (en) 2014-06-30 2016-07-19 Microsoft Technology Licensing, Llc Compound application presentation across multiple devices
US9893944B2 (en) 2014-10-01 2018-02-13 International Business Machines Corporation Managing network bandwidth based on cognitive analysis of site content against organizational needs
CN106202092B (zh) * 2015-05-04 2020-03-06 阿里巴巴集团控股有限公司 数据处理的方法及系统
JP6859620B2 (ja) * 2015-10-14 2021-04-14 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
US11536576B2 (en) 2017-02-23 2022-12-27 Here Global B.V. Map data compatibility processing architecture
AU2020316116A1 (en) * 2019-07-25 2022-03-17 TruValue Labs, Inc. Systems, methods, and devices for generating real-time analytics
CN112584200B (zh) * 2020-12-10 2023-06-30 北京奇艺世纪科技有限公司 投屏方法、系统、电子设备及存储介质
US11960865B2 (en) * 2021-08-27 2024-04-16 Baker Hughes Holdings Llc Industrial analytics data processing
JP7455162B2 (ja) 2022-07-08 2024-03-25 株式会社トヨタシステムズ 情報管理システム、情報管理装置、情報管理方法及び情報管理プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4025379B2 (ja) * 1996-09-17 2007-12-19 株式会社ニューズウオッチ 検索システム
JP2002351873A (ja) 2001-05-23 2002-12-06 Hitachi Ltd メタデータ管理システムおよび検索方法
US7107338B1 (en) * 2001-12-05 2006-09-12 Revenue Science, Inc. Parsing navigation information to identify interactions based on the times of their occurrences
KR100568234B1 (ko) 2003-12-13 2006-04-07 삼성전자주식회사 마크업 랭귀지 기반의 데이터 관리 방법과 그 장치 및기록매체
US7590310B2 (en) * 2004-05-05 2009-09-15 Facet Technology Corp. Methods and apparatus for automated true object-based image analysis and retrieval
JP2005322159A (ja) 2004-05-11 2005-11-17 Canon Inc データ連携システム及び方法
US7756919B1 (en) * 2004-06-18 2010-07-13 Google Inc. Large-scale data processing in a distributed and parallel processing enviornment
US7523137B2 (en) 2005-04-08 2009-04-21 Accenture Global Services Gmbh Model-driven event detection, implication, and reporting system
US7849049B2 (en) 2005-07-05 2010-12-07 Clarabridge, Inc. Schema and ETL tools for structured and unstructured data
JP2011501840A (ja) * 2007-05-04 2011-01-13 ビーメニュー エーエス インターネット巡回を補助するための、コンピュータでアクセス可能な媒体、方法およびシステム
JP5229731B2 (ja) 2008-10-07 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 更新頻度に基づくキャッシュ機構

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101411563B1 (ko) * 2013-11-01 2014-06-25 한국과학기술정보연구원 리소스 지역성에 기초한 분산 처리 시스템 및 분산 처리 방법

Also Published As

Publication number Publication date
JP2013508873A (ja) 2013-03-07
WO2011051849A3 (en) 2011-07-14
JP5697172B2 (ja) 2015-04-08
CN102667776A (zh) 2012-09-12
CA2779366A1 (en) 2011-05-05
US20120203747A1 (en) 2012-08-09
KR101775883B1 (ko) 2017-09-07
WO2011051849A2 (en) 2011-05-05
US9122769B2 (en) 2015-09-01
CN102667776B (zh) 2017-05-10
EP2325762A1 (en) 2011-05-25
CA2779366C (en) 2018-07-31

Similar Documents

Publication Publication Date Title
KR101775883B1 (ko) 정보 스트림의 정보를 처리하는 방법 및 시스템
Konrath et al. Schemex—efficient construction of a data catalogue by stream-based indexing of linked data
US9305100B2 (en) Object oriented data and metadata based search
CN108052632B (zh) 一种网络信息获取方法、系统及企业信息搜索系统
Beel et al. The architecture and datasets of Docear's Research paper recommender system
US20140114942A1 (en) Dynamic Pruning of a Search Index Based on Search Results
CN106605221A (zh) 具有用于即时索引的方法的多用户搜索系统
US20050216845A1 (en) Utilizing cookies by a search engine robot for document retrieval
JP7340286B2 (ja) 知識グラフを用いてサイバーセキュリティを提供する方法、装置及びコンピュータプログラム
KR20130086005A (ko) 다수의 장치들에서 데이터 검색 방법 및 장치
GB2499079A (en) Semantic and contextual searching of archives of project records documenting knowledge assets e.g. contracts, specifications, etc.
López et al. An efficient and scalable search engine for models
CN110889023A (zh) 一种elasticsearch的分布式多功能搜索引擎
Sabri et al. Web data extraction approach for deep web using WEIDJ
US11182441B2 (en) Hypotheses generation using searchable unstructured data corpus
US9342586B2 (en) Managing and using shareable search lists
Sassi et al. Supporting ontology adaptation and versioning based on a graph of relevance
Embury et al. On the Feasibility of Crawling Linked Data Sets for Reusable Defect Corrections.
US9659022B2 (en) File object browsing and searching across different domains
Dhingra et al. Semcrawl: framework for crawling ontology annotated web documents for intelligent information retrieval
Khurana et al. Survey of techniques for deep web source selection and surfacing the hidden web content
Dlugolinsky et al. Distributed web-scale infrastructure for crawling, indexing and search with semantic support
Owens et al. The invention and dissemination of the spacer gif: Implications for the future of access and use of web archives
Mohirta et al. A semantic Web based scientific news aggregator
Hovad et al. Real-time web mining application to support decision-making process

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant