페이스북 그래프 데이터 구조 – 출신대학 정보 사례

최근 페이스북에서 그래프 서치를 확장하기 위해 계속적인 스키마 확장을 하면서, 동시에 사용자들에게 정보를 입력하도록 유도하는 UI를 노출시키고 있다.

필자에게는 아래처럼 학교의 위치를 넣으라고 나오는 것을 발견했다. (심지어 느낌표 아이콘까지 나온다)

 

univ-info-ui

 

필자의 경우 정확하게는 위 화면에 링크된 '경희대학교'는 잘못된 링크다. 왜냐하면, 필자는 국제캠퍼스 출신인데 화면의 링크는 서울 소재의 경희대학교로 연결되기 때문이다. 그래서, 경희대학교의 위치를 묻는 창에 용인시를 입력했다.

문제는 지금부터 발생한다. 박사과정의 출신대학 정보가 용인으로 변경되면서 링크가 이상해진다(정확하게는, 용인의 경희대학교가 새로 생겨버린다). 

 

univ-info

 

페이스북에 경희대학교를 검색해보면 경희대학교 국제캠퍼스가 있고 용인시에 있는 것으로 나오는데, 같은 것으로 인식해주지 않는다(어찌보면 당연하다).

그래서 이것저것 테스트해보면서 아래와 같은 결론을 얻었다.

  1. '건물'로서의 경희대학교 국제캠퍼스와 '출신대학'으로서의 경희대학교 국제캠퍼스는 다르다.

    • 건물: https://www.facebook.com/pages/경희대학교-국제캠퍼스/188377297880268?fref=ts
    • 출신대학: https://www.facebook.com/pages/경희대학교-국제캠퍼스/116061555111324
  2. '출신대학'으로서의 학교명칭은 기존에 존재하는 학교명칭이 우선한다.

    • '출신대학'으로서의 학교명칭이 기존에 이미 존재하는 경우는, 같은 명칭의 출신대학의 위치를 이미 존재하는 출신대학의 지역으로 강제로 수정된다. . 즉, '출신대학'으로서의 경희대학교 국제캠퍼스의 지역을 강제로 용인으로 설정해서 입력해도, 수원의 경희대학교 국제캠퍼스로 자동으로 수정된다.
    • 경희대학교의 지역을 용인으로 설정하는 경우는 기존에 용인에 '출신대학'으로서의 경희대학교는 존재하지 않았기 때문에 새로 생성되고, 그 이후에는 위와 같은 방식이 적용된다.

말이 좀 복잡하지만, 결론적으로 아래와 같은 그림으로 표현해볼 수 있다. (그림이 그닥 맘에 들지 않지만..)

univ-graph-data

처음에는 '건물'로서의 경희대학교와 경희대학교 국제캠퍼스, '출신대학'으로서의 경희대학교와 경희대학교 국제캠퍼스가 각각 다는 객체로, 총 4개가 존재하고 있었다. 그런데, 필자가 경희대학교에 위치를 용인시로 입력하자 없었던 객체가 생겨난 것이다 (그림의 빨간점선 부분). 

이런 부분은 그래프 서치 등을 활용해서 기존의 출신대학 정보를 선택하도록 유도해주거나 했어야 할 것 같은데, 아직 알고리즘이 없는 듯 하다. 페이스북 그래프 구조에서도 보완하거나 발전시킬 부분이 꽤 많을 것을 쉽게 예상할 수 있는 대목이다.

게다가 UI상에서의 문제도 있다.

  1. 앞서 설명했던 법칙에 따라 출신대학 정보가 이미 존재하면 출신대학의 위치가 변경되지 않고,
  2. 출신대학자체를 수정할 수는 없으며,
  3. 잘못 생성된 '용인시의 경희대학교'는 삭제할 수 없었다는 점이다 (페이지 신고를 해야 하는건가.. –)

결국 필자가 원하는 대로 프로필을 경희대학교 국제캠퍼스로 모두 수정하려면 기존 프로필의 학력을 지우고 다시 입력해야만 하는 관계로 (이 무슨…), 귀차니즘 발동에 의해 그냥 놔두고 있다.