IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  XML | 웹 개발  >

RSS의 새로운 한계에 도전하기 (한글)

RSS를 사용하여 결합적 데이터베이스 만들기

developerWorks
Go to the previous page10 페이지 중 3 페이지Go to the next page

문서 옵션

샘플 코드


제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


예제를 통해 RSS 데이터베이스 만들기

이전 절에서 정의했듯이 RSS를 데이터 저장소로 사용하는 개념은 여기서 만들 예제로 가장 잘 설명할 수 있다. 다음 세 가지 테스트 피드를 만들 것이다.

  • 개인의 정보를 포함하는 디렉터리
  • 장소를 표현한 지도
  • 행사 일정. 행사는 특정 장소에서 사람이 할 일을 정의하며 이들 두 세트의 데이터를 하나로 묶는 역할을 한다.

만나야 할 사람

연락처를 정의하려면 원하는 어떤 XML 포맷이든 사용할 수 있다. 예전에 쓴 "XSLT를 사용하여 오픈오피스의 편집기능 확장하기 (한글)"(참고자료에서 링크를 확인하자) 튜토리얼에서 설명했듯 VCF의 XML화된 폼이 하나의 옵션이다.


Listing 2. 샘플 RSS 데이터베이스: 디렉터리
                    
<rss version="2.0"
  xmlns:mesh="http://www.hisown.com/NameSpaces/Mesh/20071203">
   <channel>
        <title>People</title>
        <item>
            <guid>Simpsons:/Homer_J_Simpson</guid>
            <title>Homer Jay Simpson</title>
          <link>http://en.wikipedia.org/wiki/Homer_Simpson</link>
            <description>Nuclear Plant Drone, Sector 7-G</description>
            <xvcf:... /> <!-- additional details about this person !-->
            <mesh:axon  type="relation" value="wife"> 
           Simpsons:/People/Marjorie_M_Simpson</mesh:axon>
     <mesh:axon  type="relation" value="son"> 
           Simpsons:/People/Bartholomew_J_Simpson</mesh:axon>
     <mesh:axon type="relation" value="father"> 
          Simpsons:/People/Abraham_A_Simpson</mesh:axon>
     <mesh:axon  type="location" value="work"> 
           Simpsons:/Places/Springfield_Nuclear_Power_Plant</mesh:axon>
        </item>
    </channel>
</rss>

디렉터리
테스트 피드는 본 튜토리얼에 첨부됐다. http://hisown.com/rss/simpsons_contacts.xml에서 온라인으로 볼 수 있다.

테스트 피드는 매우 간단하다. RSS 채널을 아이템 컨테이너로 만들면 된다. 그리고 나서 아이템 각각을 가장 중요한 요소인 guid와 함께 링크에 사용하듯 추가한다. 그리고 목적을 보여주는 제목을 추가하고 위키백과 엔트리(개인의 신상명세를 연결한다고 상상해보자)에 연결되는 링크를 추가한다. <xvcf:> 이름공간 요소는 어느 것이든 될 수 있고 실제로도 추가 아이템 정보가 여기 저장될 수 있다고 알려주는 위치 구분자다. 이제 mesh라는 새 이름공간을 사용한다. 본 튜토리얼에서 사용하진 않겠지만 링크 또는 커넥터는 axon 요소로 타입이나 값을 붙일 수 있다.

실제 시맨틱 네트워크는 요소 간의 링크 뿐 아니라 방향(a'b 또는 b'a), 타입, 값도 사용한다.




위로


가야 할 장소

위치를 정의하려면 Listing 3처럼 두 번째 채널을 만든다.


Listing 3. 샘플 RSS 데이터베이스 — 지도
                    
<rss version="2.0">
   <channel>
        <title>Places</title>
        <item>
            <guid> Simpsons:/Places/Springfield_Nuclear_Power_Plant</guid>
            <title>Springfield Nuclear Power Plant</title>
            <description>
            </description>
<image>
   <url> http://upload.wikimedia.org/wikipedia/en/6/6e/Snpp.gif</url>
  <title>Springfield Nuclear Power Plant</title>
 </image>
<link> http://en.wikipedia.org/wiki/Springfield_Nuclear_Power_Plant</link>
            <!-- additional details about this location, if any !-->
          <mesh:axon type="relation" value="proprietor">
                  Simpsons:/People/Charles_Montgomery_Burns</mesh:axon>
           </item> 
    </channel>
</rss>

이 채널은 다른 것과 비슷해야 한다. RSS 채널은 기본적으로 모두 같은 포맷을 공유한다. 아이템의 실제 데이터가 아니라 아이템 guid가 중요하다.




위로


해야 할 일

가상의 인물이 가상의 장소에서 경험할 행사를 정의하기 위해 세 번째 채널을 만들 것이다. 이 행사들은 Listing 4처럼 사람과 공간을 연결하는 역할을 한다.


Listing 4. 샘플 RSS 데이터베이스 — 달력
                    
<rss version="2.0">
   <channel>
        <title>Calendar</title>
        <item>
            <guid>http://jade.hisown.com/Calendar/Meetings/1234</guid>
            <title>Meeting with Mr. Burns</title>
            <description>
            </description>
            <xics: /> <!-- additional details about this event !-->
<mesh:axon type="location" value="place"> 
Simpsons:/Places/Springfield_Nuclear_Power_Plant</mesh:axon>  
          <mesh:axon type="relation" value="participant">
                  Simpsons:/People/Homer_J_Simpson </mesh:axon>
          <mesh:axon type="relation" value="participant">
                  Simpsons:/People/Charles_Montgomery_Burns</mesh:axon>
           </item> 
    </channel>

</rss>

다시 말하지만 새로운 것은 없다. 특정 장소에서 약속(이 경우 보스와 Homer의 회의)이 있다. 모든 축색돌기는 /People/이나 /Places/ 이름공간 중 하나에서 이미 정의된 요소와 연결돼 있음에 주목하자.

달력
이 테스트 피드 역시 본 튜토리얼에 있다. http://hisown.com/rss/simpsons_engagements.xml에서 온라인으로도 볼 수 있다.

이제 mesh:axon 요소에 의해 연관 링크를 갖게 됐다. 이런 각각의 링크를 링크 타입(관계 또는 위치)과 값(아버지, 아들, 참여자)으로 어떻게 정의했는지 적어두자. 이 정의나 분류(사람, 장소) 세트를 분류법이라 부른다. 관계(아버지, 아들, 은(는) ~이다, ~의 하위클래스)를 만드는 것은 온톨로지가 된다.

또한 데이터를 연결하는 데 RSS 빌트인 데이터를 사용했다는 것에 주목하자. axon 요소 값은 RSS 아이템이 무엇을 말하는지 유일하게 정의한 guid로 재참조한다.

지금까지 분류법의 가장 기본적인 응용을 봤다. 이것을 더 확장할 수 있다. 다시 말하면 특별한 XML 문법, 비슷한 특징을 지닌 항목 간 관계와 연관을 사용해 시맨틱 웹(또는 웹 3.0. 사실 웹 2.0이 뭔지도 명확치 않긴 하지만)이라 알려진 것을 구성할 수 있다. 이미 몇 가지가 진행 중에 있는데 그 중 가장 잘 알려진 것이 W3C의 웹 온톨로지 언어(참고자료의 링크를 보자)다.

이로써 데이터 저장에 몇 가지 인터페이스 타입을 제공한다. 하지만 이를 위해 먼저 RSS 데이터를 프로그램적으로 쉽게 조작할 수 있는 방법을 찾아야 한다.

이제 가지고 있는 데이터로 조작을 해보자.




위로



Go to the previous page10 페이지 중 3 페이지Go to the next page
    IBM 소개 개인정보 보호정책 문의