World Wide Web은 전에 없이 인간에게 힘을 부여하고 있다. 웹에서 만나는 정보의 양과 다양성은 엄청나다. 레시피와 스포츠 스코어를 볼 수 있다. 달력과 연락처 정보를 공유할 수 있다. 뉴스 스토리와 식당 리뷰를 읽을 수 있다. 매력적인 방식으로 표현되는 웹 상의 데이터를 끊임없이 소비할 수 있다. 차트와 테이블, 다이어그램과 도형, 사진과 그림으로도 표현된다.
하지만 이렇게 콘텐트가 풍부한, 인간 친화적인 세계는 그늘진 부분도 갖고 있다. 머신들도 인간에게 쉽게 접근하기 위해 이러한 풍부한 데이터의 혜택을 받고 싶어한다. 이들은 애그리게이터(aggregator)와 에이전트, 분석가와 시각화의 세계에 존재하면서, 인간 주인들의 생산성을 향상시키기 위해 노력하고 있다. 하지만, 머신은 인간이 소비하도록 만들어진 정보들을 해석할 때 어려움을 겪는다.
하지만 상황이 우울한 것 만은 아니다. 여러분이 인간과 컴퓨터의 이러한 상충 관계를 인식하지 못하더라도, 걱정할 필요 없다. 이 시리즈의 끝에 가서는, 머신과 인간을 이어줄 가능한 경로들을 선택할 수 있는 충분한 지식이 쌓일 테니까 말이다.
1990년대 초반, Tim Berners-Lee는 HTML, HTTP, World Wide Web을 개발했다. 처음에는, 단지 사람들이 교류할 수 있는 정보 공간으로서 웹을 설계했다. 그가 의도했던 것은, 인간이 사용하고, 컴퓨터 프로그램에 의해 작동하는, 풍부한 데이터 네트워크로서의 웹이었다. 이러한 웹을 시맨틱 웹(Semantic Web)이라고 한다.
하지만, 웹의 본질상, 웹은 급속도로 성장했고, 머신이 아닌 인간들이 소비할 수 있는 콘텐트에 우선순위를 두었다. 사용자들은 웹에 더욱 의존하게 되고, 점점 개인과 학계 홈페이지의 웹에서 전자 상거래와 B2B 트랜잭션의 웹으로 이동하게 되었다. 심지어, 링크를 통해 흐르는 중요한 정보일수록, 대부분의 웹 인터랙션들은 인간 해석이 필요했다. 예상했던 대로, 인터넷 연결 장치의 등장으로, 웹 상의 데이터를 이해하는 장치의 소프트웨어에 의존하게 되었다.
확실히, 머신들은 웹이 존재하기 전에도, 서로 인터랙팅 해왔다. 지금까지는, 웹이 인간 소비에 주 초점을 맞춰 빠르게 성장했지만, 정보 채널로서 머신이 인간과 공유할 수 있는 기술들을 개발할 때 무엇을 얻을 수 있는지에 대한 의문이 생긴다. 이것이 궁금하다면, 머신이 이것을 전혀 이해하지 못할 경우, 현재 웹은 어떤 모습 일지를 상상해 보라.
Alexa가 선정한 3대 웹 사이트는 Yahoo!, MSN, Google이다. 이 모두가 검색 엔진들이다. 이들 각 사이트는 인간이 생성한 웹 콘텐트를 인덱싱 하고, 이를 텍스트 검색에 맞게 조정하기 위해 다양한 기술들을 사용하는 소프트웨어 중심 웹 크롤러에 의해 움직이고 있다. 이러한 기업들의 기술이 없었다면, 여러분의 웹 검색 경험은 하이퍼텍스트 링크로 제한되었을 것이다.
Alexa 선정한, 가장 높은 트래픽을 가진 5대 사이트에는 eBay가 있다. 사람들은 일반적으로 eBay를 웹 상에서 휴먼(human) 인터랙팅의 가장 좋은 예라고 생각하고 있다. 하지만, 머신이야 말로 eBay의 대중성에 가장 중요한 역할을 하고 있다. 약 47%의 eBay 리스팅이 인간 중심의 폼 보다는 소프트웨어 에이전트를 사용하여 만들어진다. 2005년 4사분기 동안, 머신 지향 eBay 플랫폼은 80억 개의 서비스 요청을 처리했다. 또한 2005년에, 웹 서비스 API를 통한 eBay 트랜잭션의 수는 연간 84%로 증가했다. eBay가 인간과 동등하게 참여한 소프트웨어 에이전트에 제공한 서비스 없이는, 온라인 경매 시, 이러한 엄청난 판매 또는 구매를 인간이 처리하기에는 거의 역부족이었을 것이다.
세 번째 예로, 웹 피드(feed)를 들 수 있다. Atom과 RSS 같은 콘텐트 신디케이션 포맷들은, 북마킹 된 웹 사이트와 웹 브라우저의 지루하고 반복적이며 비효율성에서 해방된 뉴스 읽기 소프트웨어를 탄생시켰다. RSS와 Atom으로 형상화 된 머신-인식 콘텐트 구현 없이는, 이러한 뉴스 리더(reader)는 존재할 수 없었다.
간단히 말해서, 웹 사이트에 인간이 작성한 콘텐트만 포함된 World Wide Web을 상상해보라. 콘텐트는 웹 사이트들 간 공유, 혼합, 재사용 될 수 없다. 웹 기반 콘텐트를 지능적으로 수집, 결합, 작동하려면, 에이전트, 크롤러, 리더, 기타 장치들은 그 콘텐트를 읽고 이해할 수 있어야 한다. 따라서, 웹 애플리케이션에서, 머신과 인간 생성 콘텐트들 간 인터랙션을 향상시킬 수 있는 다양한 장치들을 연구하는 것이 중요하다.
W3C의 시맨틱 웹 활동을 생각해 보자. 대부분의 사람들은 웹에서 액세스 될 수 있는 개인적 정보를 갖고 있다. 은행 계좌를 확인하고, 온라인 캘린더 애플리케이션에 액세스 하고, 다양한 사진 공유 서비스를 통해 사진을 올릴 수 있다. 하지만, 달력에서 사진들을 보면서, 그 사진을 찍었던 장소와 배경들을 떠올릴 수 있는가? 달력에 디스플레이 된 은행 계좌를 볼 수 있는가?
이러한 종류의 새로운 데이터 통합을 이룩하기 위해서는, 통합을 이끄는 소프트웨어가 특정 웹 페이지의 데이터를 이해하고 해석할 수 있어야 한다. 이 소프트웨어는 Flickr에서 사진을 디스플레이 하는 웹 페이지를 검색하고, 그 사진의 날짜, 시간, 설명을 찾을 수 있어야 한다. 또한, 온라인 은행 계좌에서 트랜잭션을 해석하는 방법을 알아야 한다. 같은 소프트웨어가 온라인 캘린더의 다양한 뷰(일간, 주간, 월간)를 이해해야 하고, 웹 페이지의 어떤 부분들이 해당 날짜와 시간들을 표현하는지를 파악해야 한다.
그림 1의 예제는 임베디드 메타데이터가 엔드 유저 애플리케이션에 어떻게 도움을 주는지를 보여주고 있다. 여러 장소에 저장된 데이터로 시작한다. Flickr는 사진을 호스팅하고, Citibank는 뱅킹 트랜잭션으로 액세스를 제공하며, Google Calendar는 일간 스케줄을 관리한다. 하나의 캘린더 기반 인터페이스(missMASH)에서 이 모든 데이터를 사용할 수 있다. 다시 말해서, State Park에서 일요일에 찍은 사진들과 수요일의 식료품 가게 쇼핑 시, 신용 카드 트랜잭션이 같은 주간(weekly) 뷰에 나타나기를 바란다. 이렇게 되기 위해서는, missMASH를 구동하는 소프트웨어가 Flickr, Citibank, Google Calendar 에서 온 데이터를 파악하여 통합 환경에 그 데이터를 혼합해야 한다.
그림 1. 캘린더 뷰에 나타난 뱅킹 및 사진의 매시업(mashup)
이러한 기술들을 사용하여 애플리케이션 작성자들은 이 같은 통합을 수행할 수 있다. 몇몇 기술들은 잘 자리 잡았지만, 어떤 것들은 여전히 진행 단계이다. 이러한 기술들로의 진입 장벽은 다양하고, 일부 기술들은 다른 것들보다 한 차원 더 높은 유틸리티를 제공해야 한다.
본 시리즈에서는, 웹 상에서의 인간-컴퓨터 공존을 위해 사용할 수 있는 다양한 메커니즘을 사용하는 방법을 설명하겠다. 각 기술들을 설명하고, 은행 계좌, 사진, 달력을 통합하는데 이러한 기술들이 어떻게 사용되는지를 설명하겠다. 또한, 각 기술들의 장단점을 비교하고, 여러분이 이러한 옵션들을 보다 쉽게 선택할 수 있도록 하겠다.
기술 비교를 시작할 때, 기술들을 평가하는 기준을 마련하면 도움이 된다. 아래 리스트는 인간 친화적이며 머신 가독성(machine-readable)의 웹을 사용할 때 고려할 사항들이다. 이 모든 측면들을 충족시킬 하나의 기술이 있다고는 생각하지 않는다. 여러분의 작업에 맞는 툴을 선택할 때 도움이 될 수 있는 틀을 제공하기만을 바랄 뿐이다.
- 믿을 수 있는 데이터
- 기술에 어떤 특성이 있던지 간에, 인간 가독성의 웹 페이지에 나타나는 것과 머신 가독성 데이터는 동일해야 한다. 그러한 신실한 관계를 보장할 수 있는 기술들이 필요할 것이다. 또한, 데이터가 여러분이 웹 페이지에서 읽는 것과 정말로 일치된다는 것을 믿고 싶을 것이다.
데이터의 권한은 이러한 신뢰성을 평가할 수 있는 하나의 축이다. 데이터가 데이터 소유자에 의해 전개되었다면, 이 표현이 믿을 수 있는 것으로 판단한다. 서드 파티에 의한 데이터 구현이라면, 그 데이터 표현은 신뢰할 수 없을 것이다.
- 표현성과 확장성
- 어떤 기술을 사용하여 인간이 표현할 수 있고, 머신 가독성을 갖춘 웹 페이지를 구현한다면, 같은 웹 페이지에 일기 예보를 추가하는 다양한 기술이 필요가 없다. 이러한 기준은 어떤 특정 애플리케이션에 개입된 소프트웨어 컴포넌트의 수를 줄이는데 도움이 되고, 애플리케이션의 강력함과 관리성을 높인다.
마찬가지로, 이 기술이 고급 방식으로 새로운 데이터를 포함해야 한다면, 예상하지 못한 데이터를 나타낼 수 있는 충분한 표현성도 갖추어야 한다.
- 반복하지 말 것!(Don't repeat yourself-DRY)
- 같은 데이터가 한 웹 페이지에서 두 번 참조된다면, 이것을 두 번 작성할 필요 없다. 변경이 필요할 때 반복은 불일치성으로 이어지고, 인간과 컴퓨터 모두 이해할 수 있는 웹 페이지를 만들기 위해 너무 많이 반복해야 한다.
데이터 표현들이 하나의 데이터 스토어에서 생성된 것이라면, 여러 데이터 표현에 반복을 적용할 필요가 없다.
- 데이터 지역성
- 같은 문서 안에 같은 데이터를 여러 번 표현한다면, 가능한 한 문서의 단위를 독립적으로 유지해야 한다. 예를 들어, 큰 웹 페이지 안에 한 단락이 레시피의 성분을 다루고 있다면, 그러한 성분에 대한 모든 머신 가독성 데이터를 그 단락 안에 포함시키는 기술이 필요하다.
작성 및 읽기를 쉽게 하는 것 외에도, 데이터 로컬화는 웹 페이지 방문자들이 데이터의 인간 표현과 머신 표현 모두를 복사 및 붙이기도 가능케 한다. 관심 있는 데이터를 전체 캡처하기 위해 웹 페이지의 여러 부분들을 복사 할 필요가 없다. 게다가, 기술과 데이터의 채택과 재사용이 더욱 광범위해진다. (View Source 명령어를 사용하는 HTML을 배운 사람에게 요청하면 된다.)
- 기존 콘텐트 엄수
- 작성자들이 그들의 웹 사이트를 재 작성 할 필요 없이, 작업할 수 있는 기술이 필요하다. 웹 페이지의 기존 내용들을 활용할 수 있는 기술이 많을수록 더 좋다. 하지만, 기존 웹 페이지와 달리 해석되지 않도록 해야 한다.
예를 들어, HTML u 태그로 둘러싸인 텍스트는 전개자의 이름을 나타낸다고 정의한 새로운 기술은 어떤 경우에는 올바른 의미로 해석되지만, 부정확하게 해석될 수도 있다. 이 예제에서 마크업은 권한을 부여 받았기 때문에(데이터 소유자로부터 기인했기 때문이다.), 웹 페이지 작성자는 이러한 방식으로 u HTML 태그를 사용하지 말았어야 했다.
- 표준 순응
- HTML (HTML 4 또는 XHTML 1), CSS, XML, XSLT 등의 웹 표준에 순응하는 기능을 소실하지 않고 기술을 사용할 수 있어야 한다.
- 툴링
- 인간이 읽을 수 있고, 머신이 처리할 수 있는 데이터로 웹을 만들 때, 어떤 툴도 사용된 기술을 이해하지 못한다면 가치가 없다. 우리는 이미 사용된 대형 툴 베이스를 가진 기술을 선호한다. 이것이 여의치 않을 경우, 새로운 툴을 쉽게 구현할 수 있는 기술을 선호한다. 툴은 기술을 활용하는 웹 페이지를 작성하는데 도움이 되어야 하고, 또한 기술에서 지정한 대로 머신 가독성 데이터를 소비할 수 있어야 한다.
- 전체적인 복잡성
- 웹은 오래 전부터 존재했지만, 인간과 머신 간 데이터 공유의 필요성이 대두된 것은 최근의 일이다. 웹 에서 사용할 수 있는 광범위한 콘텐트는 다양한 사람들에 의해 작성 및 관리되고, 어떤 기술이 사용되든지 간에, 가능한 많은 웹 작성자들이 이해하고 채택하기에 쉬워야 한다.
최고의 기술이라도 너무 복잡해서 채택할 수 없다면 가치가 없다. 가장 바람직한 기술은 진입 장벽이 낮고, 배우기도 쉬워야 한다. 확장 코딩을 할 필요가 없어야 하며, 일단 구현되면 관리하는데 많은 노력이 들지 않아야 한다.
이 섹션에서는, 오늘날 웹 상에 인간과 머신이 공존할 수 있도록 사용되는 주요 기술들을 소개하겠다. 본 시리즈의 후속 기술자료에서는 이러한 기술들을 자세히 설명하도록 하겠다.
데이터는 (적어도) 두 개의 주소(URL)를 가지고 웹 상에 나타난다. 하나의 주소는 인간이 사용할 수 있는 포맷으로 되어있고, 다른 주소는 머신이 사용할 수 있는 포맷이다. 병렬 웹을 실행하는 기술에는 HTML link 엘리먼트와 HTTP 콘텐트 협상이 포함된다. HTML 스팩 만들 때 포함된 이것들은 HTML에서의 두 가지 연결 요소들에 대한 필요성을 간파했다. 즉, 보일 수 있고, 웹 페이지의 바디에만 나타나는 a 엘리먼트와, 보이지 않으며 웹 페이지의 헤드에만 나타나는 link 엘리먼트이다. HTML 스팩 디자이너들은 자신들의 목표와 타겟 사용자에 따라서, rel (relationship) 애트리뷰트에 기반하여 헤드에서 링크를 해석하고, 이들을 사용하여 중요한 기능을 수행할 것을 생각했다.
예를 들어, 웹 피드와 피드 리더를 통해 사람들은 거대한 정보를 관리할 수 있다. XML 파일(주로 RSS 또는 Atom 파일)의 주소(URL)로 이를 초기화한다. 대부분의 경우, 이 같은 피드 안에서 머신이 소비할 수 있는 데이터는 웹 상에 병렬 URL을 갖고 있고, 여기에서 여러분은 인간이 읽을 수 있는 같은 내용의 표현을 찾을 수 있는 것이다. 유용하고, 관리하기 쉬운 방식으로 병렬 웹을 다룰 수 있는 다양한 기술들이 있다. 본 시리즈 Part 2에서는, 한 개 이상의 웹 주소에 같은 데이터를 사용할 때의 장단점을 포함하여 병렬 웹에 대해 자세히 설명하겠다. 후속 시리즈에서는 여러 데이터 표현들이 하나의 웹 주소에 저장될 수 있는 기술을 설명하겠다.
알고리즘 방식은 임의의 알고리즘의 애플리케이션으로, 인간 가독성 웹 페이지에서 머신이 사용할 수 있는 데이터를 만들어 내는 소프트웨어를 다룬다. 일반적으로, 이 알고리즘은 두 개의 범주로 나뉜다.
- 스크래퍼(Scrapers), 웹 페이지의 구조와 레이아웃을 검사하여 데이터를 추출한다.
- 자연어 프로세서(Natural-language processors), 데이터를 생성하기 위해 웹 페이지의 콘텐트를 읽고 이해한다.
이러한 기술들은 웹 페이지의 구조나 콘텐트가 예견 가능하고, 대체로 변하지 않는 경우에 사용된다. 이 알고리즘은 데이터를 소비할 방법을 찾는 사람들이 개발하며, 이들은 어떤 표준 조직에 지배를 받지 않는다. 이러한 알고리즘은, 데이터의 소유자가 머신이 읽을 수 없도록 전개한 데이터를 처리할 때 유일한 옵션이 된다. 본 시리즈 Part 3에서 자세히 설명하겠다.
Microformat은 기존 (X)HTML과 CSS를 사용하여 미가공 데이터를 인간이 읽을 수 있는 웹 페이지의 마크업 안에 삽입하는 데이터 포맷이다. Microformat은 디자인 원리를 따르며, 커뮤니티의 동의를 거처 개발된다. Microformat 커뮤니티의 목표는 기존 (X)HTML class 애트리뷰트에 시맨틱을 추가하는 것이다.
알고리즘 방식과 마찬가지로, Microformat은 다른 것들과는 다르다. W3C나 IETF 같은 조직의 표준 프로세스의 일부가 아니다. 대신, 그들의 원리는 특정 문제에 집중하고 있고, 웹 상에서 현재 작동과 사용 패턴을 활용한다. 이는 Microformat에게 있어 웹 microcontent(블로그) 전개를 향상시킬 수 있는 출발점이 되었다. Microformat 성공의 가장 좋은 예는 hCard와 hCalendar 스팩이다. 이 스팩들은 microcontent 전개자가 HTML 콘텐트에 애트리뷰트를 쉽게 삽입하여, 머신도 microcontent 웹 사이트에서 비즈니스 카드나 이벤트 정보 같은 정보를 추려낼 수 있도록 한다.
Gleaning Resource Descriptions from Dialects of Languages (GRDDL)는 웹 페이지 전개자가 그들의 XHTML 또는 XML 문서들을, 인풋으로서 웹 페이지를 취하고, 머신 가독성 데이터를 아웃풋으로 취하는 변형과 제휴시킬 수 있도록 한다. GRDDL은 XSL 변형을 사용하여 웹 페이지에서 특정 어휘들을 추출한다. GRDDL은 또한 프로파일 문서를 사용할 수 있도록 하여, 웹 페이지의 특정 클래스와 데이터 어휘에 대한 알맞은 변형 알고리즘을 참조할 수 있도록 한다.
GRDDL은 콘텐트의 변형 권한을 실행하여, 인간과 머신 간 차이를 메울 수 있는 잠재성도 갖고 있다. 이것은 병렬 웹과 비슷하지만, 상당히 큰 차이가 있다. GRDDL은 머신이 콘텐트를 온 디맨드로 변형할 수 있는 메커니즘을 제공하고, 영구적 버전의 대안 데이터 표현을 만들지 않는다. W3C는 최근 GRDDL 작업 그룹을 허가하여, GRDDL용 권고 스팩을 만들 수 있도록 하고 있다.
Embedded RDF는 기존 엘리먼트와 애트리뷰트를 사용하여 XHTML 문서 안에 RDF 데이터를 삽입하는 기술이다. eRDF는 마크업의 간단함과 확장성과 표현성 간 균형을 맞추려고 한다. RDFa 또는 GRDDL과 마찬가지로, Resource Description Framework (RDF)을 사용하여 머신 가독성 데이터를 모델링 한다. eRDF는 Microformat의 원리를 공유하여, XHTML 문서 안에 메타데이터를 삽입할 목적으로 기존 어휘들을 재사용한다. eRDF는 네임스페이스와 임의의 RDF 그래프 데이터 모델을 사용하는 것으로, 작은 포맷과 어휘들을 확장할 방법을 모색하고 있다.
Embedded RDF는 현재 표준 기구에서 개발되지 않는다. Microformat과 마찬가지로, eRDF는 웹 페이지 안에서 데이터를 인코딩 하여, 머신이 콘택트, 이벤트, 위치 정보(그리고 기타 데이터 유형)을 추출하는 강력한 소프트웨어 에이전트 역할을 한다.
RDFa (전 RDF/A)는 RDF 데이터를 XHTML 안에 직접 삽입하는 또 다른 메커니즘이다. RDFa는 고정된 신/구 XHTML 엘리먼트와 애트리뷰트를 사용하여, 웹 페이지에 머신 가독성 시맨틱 데이터와 인간에게 보여지는 표준 XHTML 콘텐트를 포함할 수 있다. RDFa는 현재, XHTML과 Semantic Web Deployment 작업 그룹의 연합인, W3C RDF-in-XHTML task force에서 개발하고 있다.
eRDF와 마찬가지로, 네임스페이스와 RDFa는 RDF 그래프 데이터 모델을 활용하여, 하나의 웹 페이지 안에 많은 데이터 구조와 어휘들을 표현하고 있다. RDFa는 하나의 웹 페이지 안에 인간-머신 가독성 데이터를 포함시킬 수 있는 범용 솔루션을 모색하고 있다.
인간과 머신이 모두 접근할 수 있는 World Wide Web을 실현하는 방법에 대해 설명했다. 공존 방식을 통해 실행될 수 있는 통합 시나리오 예제도 개발했다. 또한 기술들을 비교하고 평가할 기준에 대해서도 논했다.
Part 2를 기대해주기 바란다. 병렬 웹(parallel Web) 기술에 대해 상세히 설명하겠다.
교육
-
eBay Web Services
-
Citibank
-
GRDDL
-
RDF in XHTML
- Microformat hCard
- Microformat hCalendar
-
Tim Berners-Lee
-
Links
-
Top 500 list from Alexa
-
W3C
-
IETF
-
RDF
-
Semantic Web Activity
W3C.
-
Atom 1.0 extensions (James Snell, developerWorks, October 2005)
- developerWorks 디벨로퍼웍스 Korea 웹 개발 존
-
developerWorks technical events and Webcasts
제품 및 기술 얻기
-
Google Calendar
-
eBay
-
Flickr
-
Microformats
-
RDFa
-
Embedded RDF
-
developerWorks RSS and Atom feeds
-
AtomEnabled.org
-
IBM trial software 다운로드
토론
Lee Feigenbaum은 IBM Internet Technology Group(Cambridge, MA)의 소프트웨어 엔지니어 자문이다. 현재, 엔터프라이즈에서 시맨틱-웹 기술을 활용하는 전략과 소프트웨어를 연구 중이다. 과거 연구 개발 주제로는 인스턴트 메시징 소프트웨어, 체계적인 주석 시스템, DHTML 클라이언트 런타임 등이 있다. Semantic Web과 기타 주제들에 대해서 그의 블로그에 주기적으로 글을 쓰고 있다. TechnicaLee Speaking.
Elias Torres는 IBM WebAhead Lab의 소프트웨어 엔지니어이다. 현재 연구 주제는 Semantic Web, Web 2.0, Social Software이다. IBM 내에서 두 개의 협업 서비스를 개발 및 전파했다. (Blog Central과 Wiki Central) Apache Software Foundation 오픈 소스 프로젝트의 적극적인 커미터이며, W3C의 Semantic Web 표준 개발에 참여하고 있다. http://torrez.us.