mozilla
검색 결과

    RDF in Fifty Words or Less

    어쩌면 이 문서는 50 단어 이상이 될 수도 있겠습니다, 하지만 핵심 사항들은 꽤 간단합니다 (핵심적인 것들만 빨리 익히고 싶어하는 관리자들을 위해 이러한 것들은 굵은 글씨체로 표기하였습니다). Resource Description Framework, 혹은 "RDF" 라고 하는 것은 실제로는 2 가지를 말합니다.

    첫째로, RDF 는 (웹 페이지나 email 주소와 같은) 인터넷 상의 자원들을 설명하고 이들이 어떻게 서로 연관되어 있는지를 나타내는 그래프 기반의 모델입니다.

    하지만 실제로는 이라는 말이 어떤 의미일까요? Mozilla 개발자에게는 RDF 데이터 모델(그래프)이 인터넷 자원들을 통합하고 구조화하기 위한 메카니즘으로 사용될 수 있다는 것을 말합니다.

    예제를 하나 보겠습니다: 북마크 (bookmark). 지금 대부분의 브라우저들은 당신이 북마크를 체계적으로 관리하도록 폴더 를 지정하고 있습니다. 각 북마크는 URI (Uniform Resource Identifier) 라고 하는 웹페이지를 가리키는 포인터 입니다.

    하지만 웹 페이지는 단지 인터넷 자원 중의 하나일 뿐 입니다. 이 밖에도 다른 많은 자원들 - 몇가지 예를 들자면 이메일 메시지, 유즈넷 뉴스 기사 (혹은 전체 유즈넷 뉴스 그룹), 당신이 잘 사용하는 웹 검색 엔진의 검색 결과 - 이 있습니다. 그리고 기본적으로 이들을 "북마크"로 다루거나 이들을 그룹지어 원하는 폴더 안에 저장하지 못할 이유가 없으며, 심지어는 당신이 특정 폴더를 열 때 마다 미리 정의된 검색을 수행하여 동적으로 컨텐츠를 생성해내는 "스마트" 폴더를 생성하는 것도 가능합니다.

    그리고 "북마크"는 실제로 임의의 특성(arbitrary properties associated with it)을 가지고 있습니다: 당신은 북마크를 분류하기 위한 (매킨토시의 "hot", "warm", "cool" 컬러 코딩 방식처럼) 당신만의 기준을 만들고 싶을 수도 있을 것입니다. 또는 한 북마크를 다른 북마크와 연관시키거나 한 북마크를 여러 폴더에 같이 저장시키고 싶을 수도 있습니다.

    RDF 그래프는 위의 예제에서 언급한 "유니버설" 북마크 서비스를 구성할 수 있는 완전한 데이터 모델을 제공합니다: 그래프는 임의의 자원을 지정할 수 있는 포인터를 포함하며, 당신이 생각할 수 있는 어떠한 방식으로도 그들을 그룹으로 묶을 수 있습니다.

    하지만 그전에..

    둘째로, RDF 는 직렬화 문법(serialization syntax)입니다. 이 문법은 "에이전트" 간에 통신할 수 있는 그래프 방식의 모델을 제공합니다.

    이게 무슨 소리일까요? 기본적으로 RDF 데이터 모델의 일부분은 네트워크 간에 통신할 수 있으며 그래프의 내용은 원격지의 서비스에서 도착한 정보로 동적으로 변경될 수 있다는 것을 의미합니다.

    위의 예제를 다시 보기로 합시다. 당신의 북마크 "폴더" 중의 하나는 실제로 당신의 메일함의 받은 편지함을 가리키는 포인터라고 합시다: 당신이 그 폴더를 열었다면, 자! 밤 사이 받았던 모든 메시지들을 볼 수 있습니다.

    하지만 어떻게 이런 일이 가능할까요? 그 "폴더"는 사실 그래프를 확장한 RDF 를 저장하고 있는 인터넷 자원을 가리키는 포인터 였습니다. "인터넷 자원"은 CGI 스크립트를 가리키는 URI 였습니다. (즉, <tt>http://www.mozilla.org/smart-mail/ge...n&folder=inbox</tt>). 이 CGI 스크립트가 실제 직렬화된(serialized) RDF 를 생성합니다. 이것은 기본적으로 XML 을 이용한 그래프의 표현 방식입니다:

    <rdf:RDF
        xmlns:rdf="http://www.w3.org/TR/WD-rdf-syntax#"
        xmlns:sm="http://www.mozilla.org/smart-mail/schema#">
      <rdf:Description
        about="http://www.mozilla.org/smart-mail/ge...n&folder=inbox">
        <sm:message id="4025293">
           <sm:recipient>
             Chris Waterson "waterson@netscape.com"
           </sm:recipient>
           <sm:sender>
             Aunt Helga "helga@netcenter.net"
           </sm:sender>
           <sm:received-by>x-wing.mcom.com</sm:received-by>
           <sm:subject>Great recipe for Yam Soup!</sm:subject>
           <sm:body>
             http://www.mozilla.org/smart-mail/ge...cgi?id=4025293
           </sm:body>
        </sm:message>
        <sm:message id="4025294">
           <sm:recipient>
             Chris Waterson "waterson@netscape.com"
           </sm:recipient>
           <sm:sender>
             Sarah Waterson "waterson.2@postbox.acs.ohio-state.edu"
           </sm:sender>
           <sm:received-by>x-wing.mcom.com</sm:received-by>
           <sm:subject>We won our ultimate game</sm:subject>
           <sm:body>
             http://www.mozilla.org/smart-mail/ge...cgi?id=4025294
           </sm:body>
        </sm:message>
      </rdf:Description>
    </rdf:RDF>
    

    위와 같은 복잡한 데이터(monstrosity)를 받으면, RDF 엔진은 RDF 데이터를 그래프 상의 적절한 위치에 배치(fold)하며 실제로 북마크 UI 를 구현하는 트리 컨트롤에 통지하여 (Aunt Helga 에게서 받은 Yam Soup 에 대한) 최근의 메시지에 대해 특정 아이콘을 표시하도록 합니다.

    이것은 SmartMail이 동작하는 원리와 정확히 동일합니다.

    연락처: Chris Waterson (waterson@netscape.com)

    원본 문서 정보

    Interwiki Language Links

    문서 태그 및 공헌자

    태그: 
    Contributors to this page: Nam-Hyung Kim
    최종 변경: Nam-Hyung Kim,