Post

FOAF

1. FOAF란

FOAF는 인물의 여러가지 특징 및 지인관계를 기술하는 어휘를 제공한다. 이와 같은 어휘에는 속성뿐만 아니라 클래스도 정의되어 있다.

2. 사람에 관한 정보

FOAF(Friend of a friend)는, 사람에 관한 정보를 기술함으로써 RDF의 다양한 기능성을 추구하려는 실험적인 프로젝트이다. URI는 http://xmlns.com/foaf/0.1/ 이며, 일반적으로 foaf:라는 접수사에 매핑되어 있다.

foaf-class

FOAF는 사람뿐만 아니라 사람에 관련된 다양한 리소스를 기술하는 것을 염두해 두고있다. 어떤 사람이 작성한 문서나 촬영한 사진, 또는 그 사람이 소속된 그룹을 표현하기 위한 클래스가 제공되고 있다.

속성은, 이름 및 메일주소 등의 기본정보와 더불어서, 취미, 프로젝트, 친구 등과 같은 것들이 제공도고 있으며, 대채로운 정보를 기술할 수 있다. 대부분의 속성들은 정의역과 치역도 표시되고 있다. 아래의 표에 열거하고 있는 것은, 사람(또는 Agent)을 주어로 해서 사용되고 있는 속성들의 일부분이다.

foaf-properties

foaf-resources

3. 인물의 식별과 IFP

FOAF에서는, 인물은 일반적으로 공백노드로 하고, 이메일주소(foaf:mbox)를 IFP(역함수형 속성)으로 사용한다. IFP는, 목저어로부터 주어가 유일하게 규정되는 속성이므로, 간접적으로 주어리소스를 특정지을 수 있는 ID로서의 역할을 한다.

foaf:mbox외에도, foaf:homepage, foaf:weblog 등도 (홈페이지를 공유하지 않는한) IFP가 될 수 있다. 또한, foaf:mbox값의 해쉬값을 구해서 일종의 암호화한 foaf:mbox_sha1sum도 IFP로서 정의되어 있다. foaf:name이 IFP가 되지 않는다는 사실은 충분히 이해할 수 있을 것이다.

인물뿐만 아니라 이벤트와 조직 등, 네트워크상에 존재하지 않는 것들에게 URI를 부여하는 것은 서적의 ISBN과 같은 체계가 없는 한 상당히 어려우므로, IFP의 이용이 바람직한 경우이다.

홈페이지를 IFP로 함으로써, 조직과 해당 사이트를 명확하게 구분함과 동시에 간접적으로 조직을 특정화할 수도 있다.

4. foaf:knows와 rdfs:seeAlso

FOAF의 특징은, foaf:knows속성에 의해 친구관계를 기술할 수 있다는 점이다.

foaf-knows

또한, 친구의 FOAF에, 그 친구가 알고 있는 (foaf:knows)인물의 정보가 또 있다면, 점진적으로 친구네트워크를 이어갈 수 있다.

이때, RDF의 데이터를 수집하는 에이젼트에게 Dan Brickley의 FOAF(RDF파일)가 어디에 있는지를 전달하면, 에이젼트는 관련된 친구의 FOAF를 기술한 RDF를 수집해 갈 수 있다. 이와 같은 관련리소스를 나타내기 위한 속성으로서, rdfs:seeAlso를 사용할 수 있다.

rdfs:seeAlso의 의미는, RDF스키마사양에서는 “관련리소스”라는 정의 그 이상은 아니며, ‘친구의 FOAF를 나타내는 그래프가 포함되어 있는 문서’라는 의미는 FOAF의 관습에 의해 주어져 있다. 다른 어플리케이션에서 항상 같은 동작을 수행하는 것은 아니지만, 어떠한 형태로 RDF문서를 연결시키는 ‘에이젼트를 위한 하이퍼링크’로서 자주 사용된다.

[출처 및 참고]

  • 시맨틱 웹을 위한 RDF/OWL 입문
This post is licensed under CC BY 4.0 by the author.