KR20160005048A - 소셜 네트워킹 시스템에서 유연한 문장의 생성을 위한 방법 및 시스템 - Google Patents

소셜 네트워킹 시스템에서 유연한 문장의 생성을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20160005048A
KR20160005048A KR1020157032938A KR20157032938A KR20160005048A KR 20160005048 A KR20160005048 A KR 20160005048A KR 1020157032938 A KR1020157032938 A KR 1020157032938A KR 20157032938 A KR20157032938 A KR 20157032938A KR 20160005048 A KR20160005048 A KR 20160005048A
Authority
KR
South Korea
Prior art keywords
developer
edge
flexible
social networking
networking system
Prior art date
Application number
KR1020157032938A
Other languages
English (en)
Other versions
KR101667220B1 (ko
Inventor
바오 링
휴벤 휴고 요한 반
지앙보 미아오
Original Assignee
페이스북, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 페이스북, 인크. filed Critical 페이스북, 인크.
Publication of KR20160005048A publication Critical patent/KR20160005048A/ko
Application granted granted Critical
Publication of KR101667220B1 publication Critical patent/KR101667220B1/ko

Links

Images

Classifications

    • G06F17/271
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • G06F17/2881
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • G06Q50/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • Machine Translation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

유연한 문장을 제공하기 위한 방법 및 시스템이 개시된다. 시스템은 유연한 문장 구문의 행위자, 에지, 대상 및 통합을 정의하는 옵션을 제공하기 위한 개발자 인터페이스를 포함한다. 일실시예에서, 토큰은 유연한 문장 구문의 에지 및/또는 대상의 속성 표현을 정의하기 위하여 제공된다. 정의된 에지 및 토큰에 기반하여 개발자 인터페이스는 개발자가 선택하도록 복수의 유연한 문장 구문을 생성할 수 있다. 일부 실시예에서, 개발자는 유연한 문장 구문의 에지 및/또는 대상을 더 정의하기 위한 추가적인 속성 표현을 추가할 수 있다. 일부 예에서, 복수의 유연한 문장 구문은 주어진 시간 프레임 동안 수신한 노출수에 의해 결정되는 퍼센티지 커버리지에 기반하여 우선순위화될 수 있다.

Description

소셜 네트워킹 시스템에서 유연한 문장의 생성을 위한 방법 및 시스템 {METHODS AND SYSTEMS FOR GENERATION OF FLEXIBLE SENTENCES IN A SOCIAL NETWORKING SYSTEM}
본 출원은 본 명세서에 전체로서 참조로 통합되는 2013년 4월 23일자로 출원된 미국특허출원 제13/868,917호의 우선권을 주장한다.
본 명세서의 다양한 실시예는 일반적으로 사용자에게 소셜 네트워킹 경험을 제공하는 것이고, 특히, 소셜 네트워킹 시스템에서 소셜 표현을 렌더링하는 것에 관한 것이다.
전세계의 대다수의 사람들은 이제 소셜 네트워킹 시스템을 통해 온라인으로 연결된다. 네트워킹 시스템은 복수의 에지에 의해 상호연결되는 복수의 노드를 포함하는 소셜 그래프를 생성하고 유지할 수 있다. 각 노드는 소셜 네트워킹 시스템 내의 객체(예컨대, 장소, 영화 기타등등)를 나타낸다. 객체는 사용자 객체를 포함할 수 있다. 복수의 에지 각각은 두 노드 간의 특정한 종류의 연결을 나타낸다.
이 구조화된 데이터는 네트워킹 시스템의 사용자를 위한 의미 있는 브라우저 경험을 렌더링하는데 유용할 수 있다. 개발자는 새로운 컨텐츠를 소셜 그래프에 발행하여 구조화된 데이터를 확장하고 소셜 그래프의 에지로 객체를 연결할 수 있다. 사용자는 구조화된 데이터 내에서 그래프 검색을 질의하고 생성할 수 있다.
하지만, 개발자가 소셜 그래프에 새로운 컨텐츠를 발행하는 애플리케이션을 만들 때, 피드 소식, 검색 결과 및 다른 타입의 경험 내에서 이 구조화된 데이터를 렌더링하는데 사용되는 기계 생성된 텍스트는 이상한 문장 및 경험으로 이어질 수 있다.
본 명세서의 실시예는 관계 또는 애플리케이션을 통해 행위자에 의해 수행된 행위를 나타내는 유연하고 자연스럽게 들리는 문장을 생성하기 위한 다양한 방법 및 시스템을 제공한다. 문장은 애플리케이션에 의해 소셜 그래프로 발행된다. 이들 문장은 뉴스 피드 소식, 검색 결과, 프로필 소식 또는 소셜 네트워킹 시스템 안 또는 밖에서 일어나는 다른 경험에서 나타날 수 있다. 일실시예에서, 행위자는 소셜 네트워킹 시스템에서 객체로 나타내어질 수 있고 행위 또는 관계는 에지로 나타내어질 수 있다. 일반적으로, 기본 문장 구조는 행위자, 에지, 행위자가 상호작용하는 대상 및 소셜 네트워킹 시스템에서 행위자를 대신하여 문장을 발행하는 애플리케이션을 포함한다. 예를 들어, 다음 소식이 소셜 네트워킹 시스템에 발행될 수 있다: "샘은 굿리드에서 바람의 이름 읽기를 마쳤습니다." 이 예시에서, 행위자는 샘, 에지는 "읽기를 마쳤습니다", 대상은 "바람의 이름"(책), 애플리케이션은 "굿리드"이다.
특정한 환경에서, 기본 문장 구조는 이상하거나 문맥이 부족할 수 있다. 예를 들어, 어떤 사람이 그녀가 운동 애플리케이션을 통해 하이킹을 끝냈다고 표시하는데, 발행된 문장은 이전에 "켈리가 하이킹 트레일을 하이킹했습니다."였을 수 있다. 이 예시에서, "켈리"는 행위자, "하이킹했습니다"는 에지이고; "하이킹 트레일"은 대상이다. 기본 문장 구조는 불필요하고 어색한 문장이 된다. 다른 예시에서, 이전에, 한 사람이 그가 콘서트 검색 애플리케이션 송킥에서 아티스트를 트랙했음을 표시하지만, 다음과 같이 명료하지 않다: "크리스틴은 Songkick.com에서 뮤즈를 트랙했습니다." 이와 같이, 기본 문장은 문장에 충분한 문맥을 제공하지 않는다.
본 명세서에 기술되는 시스템은 소셜 네트워킹 시스템에 의해 발행되는 문장을 위한 구문(syntax)를 커스터마이즈하기 위한 개발자 인터페이스를 포함하는 플랫폼을 포함한다. 인터페이스는 애플리케이션의 개발자가 그 애플리케이셔엔 의해 발행되는 에지를 표현하는 문장의 구조를 제어할 수 있게 한다. 문장 구문을 [행위자] [에지] [대상]으로 제한하는 대신, 개발자는 발행될 대상의 속성을 나타내는 토큰을 사용할 수 있다. 예를 들어, "켈리가 하이킹 트레일을 하이킹했습니다" 대신, 보다 명쾌한 버전은 "켈리가 3.5마일을 하이킹했습니다. 그녀를 격려해주세요!"일 수 있다. 이 예시에서, 구문은 보다 자연스럽고, 기술적이고, 소셜적 행위가능한 "[행위자] [에지] [대상.길이]. 그녀를 격려해주세요!"이다. 이 문장은 대상 자체를 문장에서 생략하고, 대상의 속성을 사용하고, 문장을 보다 소셜적 행위가능하게 들리도록 만드는 임의의 텍스트를 포함한다. 각 행위자, 에지 및 대상은 상이한 환경에서 상이하게 표현될 수 있다.
나아가, 시스템은 또한 행위자, 에지 또는 대상의 속성을 나타내는 토큰을 문장에 삽입하고; 임의의 문자열을 삽입하고; 필요에 따라 토큰을 생략하는 옵션을 포함한다.
정의된 에지 및 대상에 기반하여, 플랫폼은 특정 개발자가 정의할 유연한 문장의 세트를 생성할 수 있다. 플랫폼은 개발자가 하나 이상의 행위자, 에지, 대상, 임의의 텍스트 문자열 또는 그들의 임의의 조합의 속성을 유연한 문장 구문에 삽입할 수 있게 한다. 플랫폼은 유연한 문장 구문의 속성에서 계산된 파생물을 더 가능하게 한다. 플랫폼은 개발자가 유연한 문장 구문을 발행/렌더링하는 상이한 환경을 위한 복수의 문장 구성의 정의를 포함하여, 유연한 문장 구문의 임의의 요소를 생략 및/또는 재정렬할 수 있게 한다.
정의된 에지 및 대상에 기반하여, 플랫폼은 특정 개발자가 정의할 유연한 문장의 세트를 생성할 수 있다. 플랫폼은 개발자가 하나 이상의 행위자, 에지, 대상, 임의의 텍스트 문자열 또는 그들의 임의의 조합의 속성을 유연한 문장 구문에 삽입할 수 있게 한다. 플랫폼은 유연한 문장 구문의 속성에서 계산된 파생물을 더 가능하게 한다. 플랫폼은 개발자가 유연한 문장 구문을 발행/렌더링하는 상이한 환경을 위한 복수의 문장 구성의 정의를 포함하여, 유연한 문장 구문의 임의의 요소를 생략 및/또는 재정렬할 수 있게 한다.
특정 실시예에서, 개발자가 에지 토큰 및/또는 대상 토큰을 선택하기 위한 다양한 옵션이 개발자 인터페이스에 의해 제공된다. 예를 들어, 토큰은 체크 박스 리스트, 드롭 다운 메뉴, 선택 리스트, 버튼의 리스트, 멀티 레이어 메뉴 레벨(multiple layered menu levels) 또는 그들의 임의의 조합으로 제공될 수 있다. 다른 예로서, 개발자가 여는 중괄호("{")를 에지 또는 객체(예컨대, 행위자 또는 대상)의 앞에 입력하면, 에지 또는 객체의 속성 표현의 드롭 다운 박스가 개발자가 선택하도록 디스플레이될 수 있다.
일부 실시예에서, 컬러 코드가 에지 및/또는 대상 토큰을 사용자들의 인기의 상이한 레벨을 구분하기 위해 사용될 수 있다. 일부 실시예에서, 개발자-선택된 에지 및 객체에 기반하여, 복수의 관련 문장이 생성되고 개발자가 검토할 수 있도록 그들의 대응하는 퍼센티지 커버리지와 함께 디스플레이될 수 있다. 복수의 문장은 그들이 얼마나 자주 발생하는가에 기반하여 우선순위화될 수 있다. 일부 실시예에서, 기설정된 임계치 이상의 퍼센티지 커버리지를 가지는 문장은 개발자 장치의 네트워크 I/O 지연을 최소화하기 위하여 프리-페치(pre-fetched)될 수 있다.
일부 실시예에서, 개발자는 활동의 요약을 통합하여 한번에 발행할 수 있다. 개발자는 갤러리 타입, 표, 리스트, 지도 또는 그들의 임의의 조합을 포함하는 상이한 타입의 통합에서 선택할 수 있다. 일부 실시예에서, 개발자는 특정 유연한 문장의 에지 및 대상을 선택하고, 개발자가 선택하도록 복수의 통합이 자동으로 생성될 수 있다.
일부 실시예에서, 개발자는 "에지 구성"의 세트에서 선택함으로써 특정 문장을 구성할 수 있다. 에지 구성의 세트는 일대일, 대상 제목 없이 일대일, 일대이, 일대다, 대상 제목 없이 일대이/다, 이대일, 다대일 기타 등등을 포함할 수 있으나 이에 제한되지는 않는다.
일부 실시예에서, 개발자가 상이한 에지 구성을 가지는 특정 유연한 문장을 미리보기할 수 있도록 미리보기 박스가 제공될 수 있다. 일부 실시예에서, 미리보기 박스는 개발자가 문장이 이들 플랫폼을 사용하는 행위자의 친구들에게 어떻게 인지될 수 있는지 시각화하도록 상이한 플랫폼에서 특정 유연한 문장의 디스플레이를 시뮬레이션할 수 있다.
특정 실시예에서, 개발자는 특정 유연한 문장의 시제를 커스터마이즈할 수 있다. 특정 문장의 동사의 시제는 예컨대 과거 시제, 복수 과거 시제, 현재 시제, 복수 현재 시제, 진행 시제, 완료 시제, 완료 진행 시제 및 명령 시제를 포함할 수 있다. 일부 실시예에서, 개발자는 특정 유연한 문장의 에지를 위하여 하나 이상의 시제를 선택할 수 있다. 일부 실시예에서, 특성(attribution) 토큰이 개발자가 어떻게 개발자의 애플리케이션이 소식에 특성지어질(attributed) 것인지를 커스터마이즈하기 위하여 제공될 수 있다.
일부 실시예에서, 개발자는 특정 유연한 문장을 모바일 웹, iOS, 안드로이드, 데스크탑 웹 및/또는 윈도우 OS, 리눅스 또는 유닉스에 존재하는 애플리케이션으로부터 발행할 수 있다.
복수의 실시예가 개시되나, 본 명세서의 다른 실시예 또한 본 발명의 예시적인 실시예를 도시하고 기술하는 후술할 상세한 설명으로부터 통상의 기술자에게 명백할 것이다. 이해되는 바와 같이, 본 발명은 본 명세서의 범위에서 벗어남 없이 다양한 측면의 변형이 가능하다. 따라서, 본 도면 및 상세한 설명은 사실상 예시적인 것이고 제한적이지 않은 것으로 간주될 것이다.
본 발명의 내용 중에 포함되어 있다.
본 명세서의 실시예는 첨부된 도면의 사용을 통하여 기술되고 설명될 것이다.
도 1은 유연한 문장을 생성하는 메커니즘을 가지는 소셜 네트워킹 시스템을 도시한다.
도 2는 일실시예에 따른 소셜 네트워킹 시스템에 적합한 시스템 환경의 고레벨 블록도이다.
도 3은 소셜 네트워킹 시스템에서 특정 유연한 문장을 생성하기 위한 토큰 사용의 블록도를 도시한다.
도 4a는 개발자 플랫폼에서 특정 유연한 문장의 동사 시제를 구성하기 위한 옵션의 예시를 도시한다.
도 4b 내지 c는 개발자 플랫폼에서 특정 유연한 문장의 시제를 편집하는 옵션의 예시를 도시한다.
도 4d는 개발자 플랫폼에서 특정 유연한 문장을 위한 특성을 선택하는 옵션의 예시를 도시한다.
도 5는 소셜 네트워킹 시스템에서 특정 유연한 문장 구문을 생성하기 위하여 사용될 수 있는 동작의 세트를 도시하는 흐름도를 도시한다.
도 6은 본 명세서의 일부 실시예에서 사용될 수 있는 컴퓨터 시스템의 예시를 도시한다.
도면은 필수적으로 치수에 맞게 도시되지 않았다. 예를 들어, 본 명세서의 실시예의 보다 좋은 이해를 돕기 위해 도면에서 요소의 일부의 치수는 확장되거나 감소될 수 있다. 유사하게, 일부 구성요소 및/또는 동작은 본 명세서의 일부 실시예의 논의의 목적으로 상이한 블록으로 분리되거나 단일 블록으로 결합될 수 있다. 나아가, 본 발명은 다양한 변형 및 대안적인 형태로 보정가능하고, 특정 실시예는 아래의 도면 및 상세한 설명에서 예시의 방식으로 도시될 수 있다. 하지만, 그 의도는 설명된 특정한 실시예로 발명을 제한하는 것이 아니다. 반대로, 본 발명은 첨부된 청구항에서 정의된 발명의 범위에 속하는 모든 변형, 등가물 및 대안을 포함하기 위한 것이다.
본 명세서의 다양한 실시예는 일반적으로 사용자에게 소셜 네트워킹 경험의 제공에 관한 것이다. 보다 구체적으로, 본 명세서의 다양한 실시예는 소셜 네트워킹 시스템에서 유연한 문장을 제공하기 위한 시스템 및 방법에 관한 것이다. 과거에, 개발자-선택한 행위자, 에지 및 대상은 문장 또는 소식으로 발행될 수 있었다. 하지만, 기계 생성된 텍스트는 발행 후 독자에게 이상한 구절의 문장 또는 적절한 문맥이 부족한 문장이 되는 결과를 낳았다. 예를 들어, 특정 소셜 네트워킹 시스템에서 사용가능한 Nike+와 같은 운동 애플리케이션을 고려한다. 운동 애플리케이션 내에서, 사용자가 어떤 운동 관련 작업을 시작하거나 끝내면, 운동 애플리케이션은 기본 문장 구문에 기반하여 포스팅하기 위한 텍스트를 생성한다. 이것은 에지 및 대상이 중복되는, 예컨대 "하이킹을 하이킹하다" 또는 "달리기를 달리다"와 같은 문장을 생성하는 결과를 낳을 수 있다. 반면, 본 명세서의 다양한 실시예는 독자가 쉽게 이해할 수 있는 유연한 문장을 생성한다.
일실시예에서, 애플리케이션 개발자는 행위자, 대상, 에지 및 통합 구성요소를 포함하는 특정 유연한 문장을 위한 구문을 정의할 수 있다. 개발자가 특정 유연한 문장의 에지 및/또는 객체(예컨대, 행위자 또는 대상)의 속성 표현을 정의하기 위하여 토큰이 제공된다. 정의된 객체와 에지와 그들의 대응하는 유의어에 기반하여, 플랫폼은 개발자가 선택할 유연한 문장 구문을 자동으로 생성할 수 있다. 개발자는 보다 많은 속성 표현을 추가하여 특정 유연한 문장의 에지 및/또는 객체를 더 커스터마이즈할 수 있다. 특정 유연한 문장은 개발자가 애플리케이션에 의해 발행되는 소식 및 문장이 타임라인, 뉴스피드 및/또는 소셜 네트워킹 시스템의 다른 장소에 어떻게 나타날 수 있는지를 제어할 수 있도록 한다.
본 명세서에 기술되는 예시가 네트워킹 시스템을 언급하지만, 기술은 본 명세서의 범위를 제한하는 것이 아니다. 다양한 대안, 변형 및 등가물이 통상의 기술자에게 본 발명의 정신과 달라짐 없이 명백할 것이다. 예를 들어, 유연한 문장 생성 방법은 임의의 사용자 장치 - 애플리케이션을 발행하고 및/또는 소식을 포스팅하여 - 또는 사용자에게 서비스를 제공하는 컴퓨팅 시스템에서 구현될 수 있다. 다른 예시로, 유연한 문장을 생성하는 방법은 웹 서버 시스템을 가지는 임의의 컴퓨팅 시스템에서 구현될 수 있다. 웹 서버 시스템은 예컨대 HBase, MySQL, FoxPro, IBM DB2, Linter, Microsoft SQL 서버, 오라클, PostgreSQL, SQLite 기타 등등과 같은 데이터베이스 관리 시스템(DMBS)을 포함할 수 있다.
도 1은 유연한 문장을 개발하고 렌더링하는 메커니즘을 가지는 소셜 네트워킹 시스템(100)을 도시한다. 소셜 네트워킹 시스템(100)은 사용자가 객체 및 다른 사용자 양자와 소셜 네트워킹 시스템의 컨텍스트 내부 및 외부에서 상호작용할 수 있도록 한다. 소셜 네트워킹 시스템(100)은 소셜 그래프(102)를 포함한다. 소셜 그래프(102)는 객체(104)와 같은, 에지(106)와 같은 에지들을 통해 연결된 복수의 객체를 포함한다. 소셜 그래프(102)의 객체(104)는 소셜 네트워킹 시스템(100) 내의 엔티티, 예컨대 사용자, 페이지, 그룹, 비즈니스, 사용자가 상호작용할 수 있는 다른 엔티티 또는 그들의 임의의 조합을 나타낼 수 있다. 에지(106)는 객체 간의 관계를 나타낸다. 관계는 방향성일 수 있다. 예를 들어, 관계 생성을 책임지는 객체는 행위자(108)로 간주될 수 있다. 관계를 수동적으로 수신하는 객체는 대상(110)으로 간주될 수 있다. 하지만, 만약 단일 객체에서 시작하는 에지와 단일 객체에서 나오는 에지가 있다면 단일 객체는 행위자(108) 및 대상(110) 양자로 간주될 수 있다. 소셜 그래프(102)는 보다 자세히 후술된다.
소셜 네트워킹 시스템(100)을 구동하여 유연한 문장을 개발하고 렌더링하는 하나 이상의 방법은 후술되는 모듈과 스토어에 의해 구현될 수 있다. 모듈은 하드웨어 구성요소, 소프트웨어 모듈 또는 그들의 임의의 조합으로 구현될 수 있다. 예를 들어, 기술되는 모듈은 장치의 프로세서 또는 컨트롤러에 의해 실행될 수 있는 비휘발성 메모리의 명령어로 구현되는 소프트웨어 모듈일 수 있다.
각 모듈은 다른 모듈과 개별적 및 독립적으로 구동될 수 있다. 모듈의 일부 또는 전부는 동일한 호스트 장치 또는 개별 장치에서 실행될 수 있다. 개별 장치는 통신 모듈을 통해 연결되어 그 동작을 조직화할 수 있다. 모듈의 일부 또는 전부는 하나의 모듈로 결합될 수 있다. 단일 모듈은 또한 서브 모듈로 분리될 수 있고, 각 서브 모듈은 단일 모듈의 개별 방법 단계 또는 방법 단계들을 수행할 수 있다. 모듈은 메모리 공간으로의 접근을 공유할 수 있다. 한 모듈은 다른 모듈에 의해 접근되거나 변형된 데이터에 접근할 수 있다. 모듈들은 만약 물리적 연결 또는 가상 연결을, 직접적 또는 간접적으로 공유하여, 한 모듈에서 접근되거나 변형된 데이터가 다른 모듈에서 접근될 수 있도록 한다면, 서로 "연결되었다"고 간주될 수 있다. 소셜 네트워킹 시스템(100)은 다양한 애플리케이션을 위하여 추가적이거나, 보다 적거나, 상이한 모듈을 포함할 수 있다.
후술되는 저장소 또는 "스토어"는 예컨대 네트워크 접근가능한 데이터베이스를 구동함으로써 디지털 데이터를 저장하는 하드웨어 구성요소이거나 하드웨어 구성요소의 부분이다. 각 저장소는 단일 물리적 엔티티이거나 복수의 물리적 장치를 통해 분산될 수 있다. 각 저장소는 개별 물리적 장치 상에 있거나 동일한 장치 또는 장치들을 공유할 수 있다. 각 저장소는 런타임 애플리케이션을 위한 특정 저장 공간을 할당할 수 있다.
소셜 네트워킹 시스템(100)은 유연한 문장 관리 시스템(150)을 포함할 수 있다. 유연한 문장 관리 시스템(150)은 소셜 네트워킹 시스템(100) 상에서 실행될 수 있는 소셜 네트워킹 애플리케이션(152)의 개발자를 돕는다. 소셜 네트워킹 애플리케이션(152)는 또한 소셜 네트워킹 시스템(100)과 개별적인 서버 시스템 상에서 외부 모듈로서 실행될 수 있다. 소셜 네트워킹 시스템(152)는 후술되는 바와 같이 소셜 네트워킹 시스템(100)과 소셜 네트워킹 시스템(100)의 그래프 애플리케이션 프로그래핑 인터페이스(API) 서버를 통해 소셜 네트워킹 시스템(100)과 통신할 수 있다. 소셜 네트워킹 애플리케이션(152)는 소셜 네트워킹 시스템(100)의 사용자를 위한 추가적인 기능을 제공하는 모듈이다. 소셜 네트워킹 애플리케이션(152)의 일부는 소셜 네트워킹 시스템(100) 내의 소셜 그래프(102)의 발전을 기술하는 문장을 발행함으로써 사용자와 상호작용할 수 있다.
유연한 문장 관리 시스템(150)은 컴퓨터 시스템 또는 컴퓨터 기능을 가진 전자 장비와 같은 개발자 장치(155)에서 유연한 문장을 구성하기 위한 개발자 인터페이스를 생성하고 제공하는 개발자 인터페이스 모듈(154)를 포함한다. 예를 들어, 개발자 인터페이스는 개발자가 소셜 네트워킹 애플리케이션(152)에 의하여 발행될 수 있는 유연한 문장 구문(156)을 생성할 수 있도록 한다. 예를 들어, 개발자 인터페이스는 개발자가 행위자(108)와 같은 행위자, 에지(106)와 같은 에지, 타겟(110)과 같은 타겟, 추가적인 정적 또는 가변적 텍스트 템플릿, 또는 그들의 임의의 조합을 유연한 문장 구문(156)에 삽입할 수 있도록 한다. 유연한 문장 구문(156)의 구성은 소셜 네트워킹 애플리케이션(152)의 일부로서, 유연한 문장 관리 시스템구성된 유연한 문장을 포함하는 문장 템플릿 스토어(158)에 기반할 수 있다.
유연한 문장 관리 시스템(150)은 유연한 문장 구문(156)의 런타임 인스턴스를 렌더링하는 문장 렌디션(rendition) 모듈(160)을 더 포함한다. 소셜 네트워킹 애플리케이션(152)이 실행될 때, 유연한 문장 구문(156)이 소셜 네트워킹 애플리케이션(152)를 대표하여 소셜 그래프의 표현을 렌더링, 예컨대 뉴스피드 소식을 포스팅하거나 모바일 알림을 생성하는데 사용된다.
유연한 문장 구문(156)은 에지 구성에 의해 조직될 수 있다. 각 유연한 문장 구문(156)은 에지 구성에 특정한 것일 수 있다. 예를 들어, 소셜 네트워킹 애플리케이션(152)은 소셜 네트워킹 시스템(100)에 로그온한, 소셜 네트워킹 애플리케이션(152)를 구독하거나 실행하는 특정 사용자에 기반하여 행위자를 감지할 수 있다. 행위자는 특정 사용자, 특정 사용자의 친구 또는 소셜 네트워킹 시스템(100)에 의해 결정된 특정 사용자와 관련된 임의의 다른 행위자일 수 있다. 유연한 문장 구문(156)의 에지 구성에 맞는 에지이 렌더링된 유연한 문장 구문의 인스턴스에 렌더링될 수 있다. 일실시예에서, 문장 렌디션 모듈(160)은 소셜 네트워킹 애플리케이션(152)의 일부이다.
개발자 인터페이스는 개발자가 행위자, 에지, 대상 및 그들의 임의의 조합의 속성을 유연한 문장 구문(156)에 삽입할 수 있도록 한다. 개발자 인터페이스는 행위자, 에지 또는 대상의 계산된 속성의 삽입을 더 가능하게 한다. 예를 들어, 개발자는 유연한 문장 구문(156)을 행위자가 한 주 동안 하이킹한 개별 하이킹을 통합하는 요소 "[sum(대상.길이)]"로 구성할 수 있다. 키워드 "sum"은 유연한 문장 구문(156)에 위치할 수 있는 계산 함수이다. 유연한 문장의 인스턴스가 문장 렌디션 모듈(160)에 의해 렌더링될 때, 계산이 수행되고 결과인 숫자가 렌더링된 인스턴스의 텍스트의 일부가 된다.
개발자 인터페이스는 동일한 문장에 복수의 행위자, 에지 및 대상의 삽입을 포함하는 유연한 문장 구문(156)의 구조를 가능하게 한다. 예를 들어, 렌던링된 유연한 문장의 인스턴스는 다음을 포함할 수 있다: "조와 질은 이번 주 2개의 트레일을 하이킹했고, 3개의 도시를 자전거 탔고, 12마일을 조깅했다." 예를 들어, 유연한 문장 구문(156)은 [행위자#1]와 [행위자#2], [에지#1]와 [에지#2], 에지#1.대상의 카운트의 계산 함수 및 에지#2.대상.거리의 합계의 계산 함수를 포함할 수 있다.
개발자 인터페이스는 개발자가 "그를 격려해주세요!"와 같은 임의의 문자열을 유연한 문장 구문(156)에 삽입할 수 있도록 한다. 렌더링될 때 표현에 동적으로 채워지는 대신, 임의의 문자열은 실행시에 말 그대로 표현된다. 개발자 인터페이스는 개발자가 유연한 문장 구문(156)의 임의의 요소를 생략하고 재정렬할 수 있도록 한다.
개발자 인터페이스는 유연한 문장 구문(156)에서 상이한 환경에 복수의 문장 구성의 정의를 더 가능하게 한다. 복수의 문장 구성은 문장 렌디션 모듈(160)에 의해 렌더링될 때 상이한 환경 하에서 유연한 문장 구문(156)의 상이한 렌더링을 가능하게 한다. 예를 들어, 상이한 환경은 유연한 문장 구문(156)이 뉴스피드를 위해 렌더링될 때, 개인 타임라인을 위해 렌더링될 때, 검색 결과로서 렌더링될 때를 포함한다. 상이한 포럼을 위해 유연한 문장 구문(156)을 렌더링하는 이외에, 상이한 환경은 또한 유연한 문장 구문(156)의 에지 구성 아래 수식하는 사용자 행위의 상이한 수의 통합의 차이를 포함한다. 예를 들어, 한 주에 한번 이상 하이킹했을 때 대 사용자가 단 한번만 하이킹했을 때이다. 상이한 환경은 에지 구성의 타이밍의 차이를 더 포함한다. 예를 들어, 환경은 에지가 과거에 일어났던 관계를 표시할 때(예컨대, 조가 디아블로 산 트레일을 하이킹했습니다), 에지가 일어나고 있는 관계를 표시할 때(예컨대, 조가 탬 산 하이킹을 시작했습니다), 또는 에지가 앞으로 일어날 관계를 표시할 때(조가 5월에 이탈리아 여행을 계획합니다)를 포함한다.
소셜 네트워킹 시스템 개요
유연한 문장 관리 시스템(150)은 임의의 데이터 공유 시스템에서 사용될 수 있다. 특히, 유연한 문장 관리 시스템(150)은 소셜 네트워킹 시스템(100)과 같은 소셜 네트워킹 시스템에서 사용될 수 있다. 소셜 네트워킹 시스템은 공통적으로 소셜 네트워킹 시스템의 컨텍스트 내외에서 사용자들이 객체들 및 다른 사용자들과 상호작용할 수 있도록 해주는 메커니즘을 제공한다. 소셜 네트워킹 시스템 사용자는 개인 또는, 가령 비즈니스나 다른 비-인격 엔티티와 같은 임의의 다른 엔티티일 수 있다. 소셜 네트워킹 시스템은 디스플레이하고 사용자들이 소셜 네트워킹 시스템 객체들 및 정보와 상호작용할 수 있도록 하는 일련의 상호-연결 페이지들을 포함하는 웹-기반 인터페이스를 이용할 수 있다. 예컨대, 소셜 네트워킹 시스템은 객체들 및 소셜 네트워킹 시스템 사용자에 의해 입력되거나 관련된 정보(예컨대, 사용자의 "프로필")를 포함하는 각각의 소셜 네트워킹 시스템 사용자에 대한 페이지를 디스플레이할 수 있다. 또한, 소셜 네트워킹 시스템은 사진이나 비디오를 포함하거나, 컨셉들 전용이거나, 유사한 관심사를 갖는 사용자들 전용("그룹")이거나, 다른 사용자들로의, 다른 사용자들로부터, 또는 다른 사용자들에 의한 통신들이나 소셜 네트워킹 시스템 활동을 포함하는, 페이지들을 포함할 수 있다. 소셜 네트워킹 시스템 페이지는 다른 소셜 네트워킹 시스템 페이지들로의 링크를 포함할 수 있고, 가령 검색, 실시간 통신, 컨텐츠-아이템 업로드, 구매, 광고 및 임의의 다른 웹-기반 기술이나 능력과 같은 추가적인 능력들을 포함할 수 있다. 소셜 네트워킹 시스템 인터페이스는 웹 브라우저나, 가령 전용 소셜 네트워킹 시스템 모바일 장치나 컴퓨터 애플리케이션과 같은 비-웹 브라우저 애플리케이션으로부터 접속가능할 수 있음에 유의해야 한다. 본 명세서에서 사용되는 바와 같이, "페이지"는 웹페이지, 애플리케이션 인터페이스나 디스플레이, 웹페이지나 애플리케이션을 통해 디스플레이되는 위젯(widget), 박스나 다른 그래픽 인터페이스, (소셜 네트워킹 시스템 내외의) 다른 페이지 상의 오버레이 창, 또는 소셜 네트워크 시스템 플러그 인이나 통합 능력을 갖는 소셜 네트워킹 시스템 외부의 웹페이지일 수 있다.
상술한 바와 같이, 소셜 그래프는 (상호작용, 활동 또는 관련성을 표현하는) 에지들에 의해 상호연결되는 (소셜 객체라고도 알려진 소셜 네트워킹 시스템 객체들을 표현하는) 한 세트의 노드들을 포함한다. 소셜 그래프의 각 노드는 행위할 수 있고 및/또는 다른 노드에 의해 행위될 수 있는 무언가를 나타낼 수 있다. 소셜 네트워킹 시스템 객체는 소셜 네트워킹 시스템 사용자, 비-인격 엔티티, 컨텐츠 아이템, 그룹, 소셜 네트워킹 시스템 페이지, 위치, 애플리케이션, 주제, 컨셉이나 가령 영화, 밴드 또는 책과 같은 다른 소셜 네트워킹 시스템 객체일 수 있다. 컨텐츠 아이템은, 가령 메시지, 큐잉된 메시지(예컨대, 이메일), 텍스트나 SMS(단문 메시지 서비스) 메시지, 코멘트 메시지, 임의의 다른 적절한 메시징 기술로 송신된 메시지, HTTP 링크, HTML 파일, 이미지, 비디오, 오디오 클립, 문서, 문서 편집, 캘린더 엔트리나 이벤트 및 다른 컴퓨터-관련 파일들과 같이, 소셜 네트워킹 시스템 사용자나 다른 객체가 생성하거나, 업로드 하거나, 편집하거나, 상호작용할 수 있는 임의의 것을 포함한다. 소셜 그래프의 컨텍스트 내의 주제들 및 컨셉들은 임의의 사람, 장소, 사물 또는 추상적 사상을 표현하는 노드들을 포함한다. 소셜 그래프의 두 노드 간의 에지는 노드 중 하나에 의해 다른 노드에 수행된 행위에서 나올 수 있거나 노드/객체 간 관계를 다르게 기술하는 두 노드 간의 특정 종류의 연결을 나타낸다.
소셜 네트워킹 시스템은 사용자가 사용자의 관심사, 학력과 경력, 연락 정보 및 사용자의 프로필 페이지 내 다른 신상 정보와 관련된 정보를 입력하고 디스플레이할 수 있도록 할 수 있다. 각각의 학교, 고용주, 관심사(예컨대, 음악, 책, 영화, 텔레비전 쇼, 게임, 정치적 견해, 철학, 종교, 그룹 또는 팬 페이지), 지리적 위치, 네트워크 또는 프로필 페이지 내에 포함된 임의의 다른 정보는 소셜 그래프에서 노드로 표현될 수 있다. 소셜 네트워킹 시스템은 사용자가 사진, 비디오, 문서, 노래 또는 다른 컨텐츠 아이템들을 업로드 하거나 생성할 수 있도록 할 수 있고, 사용자가 이벤트를 생성하고 계획할 수 있도록 할 수 있다. 컨텐츠 아이템 및 이벤트는 소셜 그래프에서 노드로 표현될 수 있다.
소셜 네트워킹 시스템은 소셜 네트워킹 시스템 내의 비-인격 객체들과 상호작용하는 다양한 수단을 제공할 수 있다. 예컨대, 사용자는 그룹을 형성하거나 그룹에 가입할 수 있거나, 소셜 네트워킹 시스템 내의 팬 페이지의 팬이 될 수 있다. 또한, 사용자는 소셜 네트워킹 시스템 객체를 생성하거나, 다운로드 하거나, 열람하거나, 업로드 하거나, 링크하거나, 태그하거나, 편집하거나 실행할 수 있다. 사용자는 소셜 네트워킹 시스템의 컨텍스트 외부의 소셜 네트워킹 시스템 객체들과 상호작용할 수 있다. 예컨대, 뉴스 웹사이트의 기사는 사용자가 클릭할 수 있는 "좋아요" 버튼을 가질 수 있다. 각각의 이런 예에서, 사용자와 객체 사이의 상호작용은 사용자의 노드와 객체의 노드를 연결하는 소셜 그래프의 에지로 표현될 수 있다. 사용자는 특정 위치로 "체크인(check in)"하는 위치 탐지 기능(가령 모바일 장치상의 GPS 수신기)을 사용할 수 있고, 에지는 소셜 그래프에서 사용자의 노드를 위치의 노드와 연결할 수 있다.
소셜 네트워킹 시스템은 사용자들이 그들 자신을 연관시키고 소셜 네트워킹 시스템의 다른 사용자들과의 연결들을 확립할 수 있도록 한다. 2명의 사용자들이 명시적으로 소셜 네트워킹 시스템에서 연결을 확립할 때, 그들은 소셜 네트워킹 시스템의 컨텍스트 내에서 "친구"(또는 "연결")가 된다. 소셜 네트워킹 시스템에서 친구가 되면 사용자들은 미연결 사용자들이 이용할 수 있는 것보다 서로에 대해 더 많은 정보에 접속할 수 있다. 예컨대, 친구가 되면 사용자는 다른 사용자의 프로필을 열람하거나, 다른 사용자의 친구들을 관찰하거나, 다른 사용자의 사진을 열람할 수 있다. 마찬가지로, 소셜 네트워킹 시스템 내에서 친구가 되면 사용자는 가령 (소셜 네트워킹 시스템 내부 및 외부의) 이메일, 인스턴트 메시지, 텍스트 메시지, 전화 또는 임의의 다른 통신형 인터페이스에 의해, 다른 사용자와 통신하도록 더 많이 접속할 수 있다. 마지막으로, 친구가 되면 사용자는 다른 사용자의 업로드 된 컨텐츠 아이템을 열람하거나, 코멘트하거나, 다운로드 하거나, 보증하거나, 상호작용할 수 있다. 연결을 확립하고, 사용자 정보에 접속하고, 통신하고, 소셜 네트워킹 시스템의 컨텍스트 내에서 상호작용하는 것은 2명의 소셜 네트워킹 시스템 사용자들을 표현하는 노드들 사이의 에지로 표현될 수 있다.
소셜 네트워킹 시스템에서 연결을 명시적으로 확립하는 것 이외에, 공통의 특성을 갖는 사용자들이 통신의 토픽을 결정하는데 사용하기 위해 소셜 컨텍스트를 결정할 목적으로 연결(가령 약한 연결 또는 암시적 연결)된 것으로 간주될 수 있다. 일실시예로, 공통의 네트워크에 속한 사용자들은 연결된 것으로 간주된다. 예컨대, 공통의 학교에 다니거나, 공통의 회사에서 일하거나, 공통의 소셜 네트워킹 시스템 그룹에 속하는 사용자들은 연결된 것으로 간주될 수 있다. 일실시예로, 공통의 개인 신상 특성을 가진 사용자들은 연결된 것으로 간주된다. 예컨대, 사용자들이 태어나거나 자란 지리적 영역, 사용자들의 연령, 사용자들의 성별 및 사용자들의 관계 상태가 사용자들의 연결 여부를 결정하는데 사용될 수 있다. 일실시예로, 공통의 관심사를 가진 사용자들은 연결된 것으로 간주된다. 예컨대, 사용자들의 영화 선호도, 음악 선호도, 정치적 견해, 종교적 견해 또는 임의의 다른 관심사가 사용자들의 연결 여부를 결정하는데 사용될 수 있다. 일실시예로, 소셜 네트워킹 시스템 내에서 공통의 행위를 했던 사용자들은 연결된 것으로 간주된다. 예컨대, 공통의 객체를 보증하거나 추천한 사용자들, 공통의 컨텐츠 아이템에 대해 코멘트한 사용자들 또는 공통의 이벤트로 회답(RSVP)한 사용자들은 연결된 것으로 간주될 수 있다. 하기에 더 상세히 기술되는 바와 같이, 소셜 네트워킹 시스템은 특정 사용자의 통신의 소셜 컨텍스트를 결정하거나 평가하기 위해 소셜 그래프를 이용하여 특정 사용자와 연결된 사용자들을 결정할 수 있다.
소셜 네트워킹 시스템은 다양한 통신 채널을 사용자들에게 제공할 수 있다. 예컨대, 소셜 네트워킹 시스템은 사용자가 하나 이상의 다른 사용자들에게 이메일, 인스턴트 메시지 또는 텍스트/SMS 메시지 하도록 할 수 있고; 사용자가 사용자의 담벼락이나 프로필 또는 다른 사용자의 담벼락이나 프로필에 메시지를 게시하도록 할 수 있거나; 사용자가 그룹이나 팬 페이지로 메시지를 게시하도록 할 수 있거나; 사용자가 사용자나 다른 사용자에 의해 생성되거나 업로드된 이미지, 담벼락 게시물 또는 다른 컨텐츠 아이템에 대해 코멘트하도록 할 수 있다. 일실시예로, 사용자는 상태 메시지를 현재 이벤트, 마음 상태, 생각, 감정, 활동 또는 임의의 다른 현재 시점과 관련한 통신을 나타내는 사용자의 프로필로 게시한다. 소셜 네트워킹 시스템은 사용자들이 소셜 네트워킹 시스템 내부와 외부 모두에서 통신하도록 할 수 있다. 예컨대, 제1 사용자는 제2 사용자에게 소셜 네트워킹 시스템 내에서 메시지를, 소셜 네트워킹 시스템을 통한 이메일을, 소셜 네트워킹 시스템에서 비롯되나 외부에 있는 이메일을, 소셜 네트워킹 시스템 내에서 인스턴트 메시지를, 그리고 소셜 네트워킹 시스템에서 비롯되나 외부에 있는 인스턴트 메시지를 송신할 수 있다. 게다가, 제1 사용자는 제2 사용자의 프로필 페이지에 코멘트할 수 있거나, 가령 제2 사용자에 의해 업로드 되는 컨텐츠 아이템들과 같이, 제2 사용자와 관련된 객체들에 코멘트할 수 있다.
소셜 네트워킹 시스템 환경 및 구조
이제 도 2를 참조하면, 일실시예에 따른 소셜 네트워킹 시스템(202)에 적합한 시스템 환경(200)의 상위계층 블록 다이어그램이 도시된다.
도 2에 도시된 시스템 환경(200)은 소셜 네트워킹 시스템(202), 클라이언트 장치(204A) 및 네트워크 채널(206)을 포함한다. 시스템 환경(200)은 가령 클라이언트 장치(204B) 및 클라이언트 장치(204C)와 같은 다른 클라이언트 장치들을 또한 포함할 수 있다. 예를 들어, 클라이언트 장치(204)는 도 1의 개발자 장치(155)를 포함할 수 있다. 다른 실시예로, 시스템 환경(200)은 도 2에 도시된 것과는 다른 컴포넌트 및/또는 추가 컴포넌트를 포함할 수 있다. 소셜 네트워킹 시스템(202)은 도 1의 소셜 네트워킹 시스템(100)일 수 있다.
하기에 더 기술되는 소셜 네트워킹 시스템(202)은 사용자와 관련된 사용자 프로필 및/또는 다른 객체뿐 아니라 사용자와 다른 사용자 및/또는 객체 사이의 연결을 저장하는 하나 이상의 컴퓨팅 장치를 포함한다. 사용시, 사용자는 소셜 네트워킹 시스템(202)에 가입한 후 사용자가 연결되기를 원하는 소셜 네트워킹 시스템의 다른 사용자들 또는 객체들과의 연결을 추가한다. 도 2와 함께 하기에 더 기술되는 바와 같이, 소셜 네트워킹 시스템(202)의 사용자는 개인들 또는, 가령 사업체, 단체, 대학, 제조자와 같은 엔티티일 수 있다. 소셜 네트워킹 시스템(202)은 그 사용자가 서로 상호작용할 뿐 아니라 소셜 네트워킹 시스템(202)에 의해 관리되는 다른 객체들과 상호작용할 수 있게 해준다. 일부의 실시예로, 소셜 네트워킹 시스템(202)은 사용자가 제3자 웹사이트 및 재정적 계정 제공자와 상호작용할 수 있게 해준다.
사용자, 객체 및 사용자 및/또는 객체 사이의 연결에 대한 저장된 데이터를 기초로, 소셜 네트워킹 시스템(202)은 복수의 에지에 의해 상호연결된 복수의 노드를 포함하는 "소셜 그래프"를 생성하고 관리한다. 소셜 그래프에서 각각의 노드는 또 다른 노드에서 실행가능한 및/또는 또 다른 노드에 의해 실행될 수 있는 객체 또는 사용자를 표현한다. 소셜 그래프에서 2개의 노드 사이의 에지는 2개의 노드 사이의 특정 종류의 연결을 나타내며, 다른 노드에서 노드들 중 하나에 의해 수행되었던 행위의 결과일 수 있다. 예컨대, 사용자가 친구로서 추가 사용자를 식별하는 경우, 제1 사용자를 표현하는 노드와 추가 사용자를 포함하는 추가 노드를 연결하는 소셜 그래프 내 에지가 생성된다. 생성된 에지는 사용자들이 친구들임을 표시하는 연결 타입을 가진다. 다양한 노드가 서로 상호작용하기 때문에, 소셜 네트워킹 시스템(202)은 상호작용을 반영하도록 다양한 노드를 연결하는 에지를 추가 및/또는 변경한다.
클라이언트 장치(204A)는 사용자 입력을 수신할 수 있고 네트워크 채널(206)을 통해 데이터를 전송 및/또는 수신할 수 있는 컴퓨팅 장치이다. 일실시예로, 클라이언트 장치(204A)는 가령 데스크톱이나 랩톱 컴퓨터와 같은 종래의 컴퓨터 시스템이다. 또 다른 실시예로, 클라이언트 장치(204A)는 가령 개인용 정보단말기(PDA), 모바일폰, 태블릿, 스마트폰이나 유사한 장치와 같이, 컴퓨팅 기능을 갖는 장치일 수 있다. 또 다른 실시예로, 클라이언트 장치(204A)는 클라우드 컴퓨팅 서비스에서 실행하는 가상의 데스크톱일 수 있다. 클라이언트 장치(204A)는 네트워크 채널(206)을 통해 소셜 네트워킹 시스템(202) 및/또는 재정적 계정 제공자와 통신하도록 구성된다. 일실시예로, 클라이언트 장치(204A)는 클라이언트 장치(204A)의 사용자가 소셜 네트워킹 시스템(202)과 상호작용할 수 있게 하는 애플리케이션을 실행한다. 예컨대, 클라이언트 장치(204A)는 네트워크 채널(206)을 통해 클라이언트 장치(204A)와 소셜 네트워킹 시스템(202) 사이의 상호작용을 가능하게 하는 브라우저 애플리케이션을 실행한다. 또 다른 실시예로, 클라이언트 장치(204A)는, 가령 iOS® 또는 ANDROIDTM와 같이, 클라이언트 장치(204A)의 네이티브 운영 시스템에서 실행하는 응용 프로그래밍 인터페이스(API)를 통해 소셜 네트워킹 시스템(202)과 상호작용한다.
클라이언트 장치(204A)는 유선 및 무선 통신 시스템 모두를 사용하여 근거리 네트워크 및/또는 광역 네트워크의 임의의 조합을 포함할 수 있는 네트워크 채널(206)을 통해 통신하도록 구성된다. 일실시예로, 네트워크 채널(206)은 표준 통신 기술 및/또는 프로토콜을 사용한다. 따라서, 네트워크 채널(206)은 가령 이더넷, 802.11, WiMAX(worldwide interoperability for microwave access), 3G, 4G, CDMA, DSL(digital subscriber line) 등과 같은 기술을 사용하는 링크를 포함할 수 있다. 마찬가지로, 네트워크 채널(206)에서 사용되는 네트워킹 프로토콜은 MPLS(multiprotocol label switching), TCP/IP(transmission control protocol/Internet protocol), UDP(User Datagram Protocol), HTTP(hypertext transport protocol), SMTP(simple mail transfer protocol) 및 FTP(file transfer protocol)를 포함할 수 있다. 네트워크 채널(206)에서 교환되는 데이터는 하이퍼텍스트 마크업 언어(HTML)와 확장형 마크업 언어(XML)를 포함하는 기술 및/또는 포맷을 사용하여 표현될 수 있다. 또한, 링크의 전부 또는 일부는 가령 SSL(secure socket layer), TLS(transport layer security) 및 IPsec(Internet Protocol security)와 같은 종래의 암호화 기술을 사용하여 암호화될 수 있다.
도 2에 도시된 소셜 네트워킹 시스템(202)은 프로필 스토어(210), 컨텐츠 스토어(212), 행위 로거(214), 행위 로그(216), 에지 스토어(218), 재정적 계정 스토어(220), 유연한 문장 관리 시스템(222), 웹 서버(224), 메시지 서버(226) 및 API 요청 서버(228)를 포함한다. 다른 실시예로, 소셜 네트워킹 시스템(202)은 다양한 애플리케이션용 추가 모듈, 보다 적은 모듈 또는 다른 모듈을 포함할 수 있다. 가령 네트워크 인터페이스, 보안 기능, 부하 균형기, 장애복구 서버, 관리와 네트워크 동작 콘솔 등과 같은 종래의 구성요소들은 시스템의 세부사항을 모호하게 하지 않도록 도시되지 않는다.
소셜 네트워킹 시스템(202)의 각각의 사용자는 프로필 스토어(210)에 저장되는 사용자 프로필과 관련된다. 사용자 프로필은 사용자에 의해 명시적으로 공유되었던 사용자에 대한 선언형 정보를 포함하며, 소셜 네트워킹 시스템(202)에 의해 추론되는 프로필 정보도 또한 포함할 수 있다. 일실시예로, 사용자 프로필은 소셜 네트워킹 시스템(202)의 해당 사용자의 하나 이상의 속성을 각각 기술하는 다수의 데이터 필드를 포함한다. 가령 경력, 학력, 성별, 취미나 기호, 위치 등과 같이, 인명 정보, 인구학적 정보 및 다른 타입의 설명적 정보를 포함하는 프로필 스토어(210)에 저장된 사용자 프로필 정보는 소셜 네트워킹 시스템(100)의 사용자들을 설명한다. 또한, 사용자 프로필은 예컨대 이미지나 비디오와 같이 사용자에 의해 제공되는 다른 정보를 저장할 수 있다. 특정 실시예로, 사용자의 이미지는 이미지에서 디스플레이되는 소셜 네트워킹 시스템(202)의 사용자들의 식별 정보와 함께 태그될 수 있다. 또한, 프로필 스토어(210)의 사용자 프로필은 에지 스토어(218)에 저장되고 컨텐츠 스토어(212)의 컨텐츠 아이템에 대해 수행된 해당 사용자에 의한 행위에 대한 레퍼런스를 관리할 수 있다.
하기에 더 기술되는 바와 같이, 사용자 프로필은 사용자 프로필이 재정적 계정으로부터 검색되거나 도출되는 데이터를 포함할 수 있게 해주는 하나 이상의 재정적 계정(financial accounts)과 관련될 수 있다. 사용자는 소셜 네트워킹 시스템(202)의 접근이 허용되는 재정적 계정으로부터의 정보를 제한하는, 사용자 프로필에 저장되는 하나 이상의 개인정보 설정을 명시할 수 있다. 예컨대, 개인정보 설정은 재정적 계정의 거래 이력에 접근하고 현재 계정 잔고에는 접근하지 않도록 소셜 네트워킹 시스템(202)을 제한한다. 또 다른 예로서, 개인정보 설정은 소셜 네트워킹 시스템(202)이 특정된 시간 범위 내 거래들, 임계 거래량 미만을 포함하는 거래들, 특정된 판매자 식별자와 관련된 거래들, 특정된 판매자 식별자 이외의 판매자 식별자들과 관련된 거래들 또는 소셜 네트워킹 시스템(202)에 의해 접근가능한 사용자에 의해 식별되는 재정적 계정으로부터의 정보를 제한하는 임의의 적절한 기준에 접근할 수 있게 해주는 재정적 계정의 거래 이력의 서브세트로 소셜 네트워킹 시스템(202)을 제한한다. 일실시예로, 재정적 계정으로부터의 정보는 프로필 스토어(210)에 저장된다. 다른 실시예로, 이 정보는 재정적 계정 스토어(220)에 저장될 수 있다.
컨텐츠 스토어(212)는 가령 이미지, 비디오 및 오디오 파일과 같이 사용자 프로필과 관련된 컨텐츠 아이템을 저장한다. 컨텐츠 스토어(212)로부터의 컨텐츠 아이템은 사용자 프로필이 열람될 때 또는 사용자 프로필과 관련된 다른 컨텐츠가 열람될 때 디스플레이될 수 있다. 예컨대, 디스플레이된 컨텐츠 아이템은 사용자 프로필과 관련된 이미지나 비디오를 보여주거나 사용자의 상태를 설명하는 텍스트를 보여줄 수 있다. 추가로, 다른 컨텐츠 아이템은 소셜 네트워킹 시스템(202)의 사용자, 객체, 활동 또는 기능에 관한 컨텐츠를 디스플레이하여 사용자가 다른 사용자에 대한 연결관계를 확장하거나, 새로운 사용자를 시스템으로 초대하거나, 소셜 네트워킹 시스템과의 상호작용을 증가시키도록 장려함으로써 사용자 참여를 용이하게 할 수 있다. 소셜 네트워킹 컨텐츠 아이템의 예는 제안된 연결들이나 다른 행위를 수행하는 제안들, 소셜 네트워킹 시스템(202)에 의해 제공되거나 관리되는 미디어(예컨대, 사진 또는 비디오), 사용자에 의해 소셜 네트워킹 시스템으로 게시된 상태 메시지나 링크, 이벤트, 그룹, 페이지들(예컨대, 기관을 표현하는 페이지, 상업용 엔티티를 표현하는 페이지) 및 소셜 네트워킹 시스템을 통해 제공되거나 접속가능한 임의의 다른 컨텐츠를 포함한다.
또한, 컨텐츠 스토어(212)는 프로필 스토어(210) 내 사용자 프로필을 가진 엔티티와 관련된 하나 이상의 페이지를 포함한다. 엔티티는 가령 사업체, 판매자, 단체 또는 대학과 같은 소셜 네트워킹 시스템(202)의 비-개인 사용자이다. 페이지는 엔티티와 관련된 컨텐츠 및 컨텐츠를 소셜 네트워킹 시스템 사용자에게 제시하기 위한 명령어를 포함한다. 예컨대, 페이지는 엔티티의 사용자 프로필과 관련된 컨텐츠뿐 아니라 컨텐츠를 브랜드 페이지를 열람하는 사용자에게 제시하는 방법을 설명하는 정보를 식별한다. 판매자는 소셜 네트워킹 시스템 사용자가 소셜 네트워킹 시스템(202)을 통해 판매자와 더 용이하게 상호작용할 수 있게 해주는 컨텐츠 스토어(212) 내 페이지들과 관련될 수 있다. 판매자 식별자는 소셜 네트워킹 시스템(202)이 판매자를 식별하고/하거나 프로필 스토어(210), 행위 로그(216) 또는 판매자 식별자를 사용하는 임의의 다른 적절한 소스로부터 판매자에 대한 추가 정보를 검색할 수 있게 해주는 판매자의 페이지와 관련된다. 일부의 실시예로, 컨텐츠 스토어(212)는 또한 저장된 객체와 관련되고 객체가 제시될 자격을 가진 사용자의 하나 이상의 특성을 식별하는 하나 이상의 타겟팅 기준을 저장할 수 있다.
행위 로거(214)는 소셜 네트워킹 시스템(202)에서 및/또는 소셜 네트워킹 시스템 외부에서 사용자 행위에 대한 통신을 수신하며, 사용자 행위에 대한 정보로 행위 로그(216)를 채운다. 이런 행위들은 예컨대 다른 사용자와의 연결을 추가하기, 메시지를 다른 사용자에게 송신하기, 이미지를 업로드하기, 다른 사용자로부터의 메시지를 읽기, 다른 사용자와 관련된 컨텐츠를 열람하기, 다른 사용자에 의해 게시된 이벤트에 참여하기 등을 포함할 수 있다. 일부의 실시예로, 행위 로거(214)는 하나 이상의 개인정보 설정에 따라 사용자와 관련된 재정적 계정으로부터 거래 정보를 수신하며, 거래 정보로부터 사용자 행위를 식별한다. 예컨대, 행위 로거(214)는 재정적 계정의 거래 이력으로부터 판매자 식별자를 검색하고, 판매자 식별자와 관련되는 소셜 네트워킹 시스템에서의 가령 페이지와 같은 객체를 식별한다. 이는 행위 로거(214)가 컨텐츠 스토어(212) 내 페이지 또는 또 다른 객체와 관련되는 사용자의 제품이나 서비스의 구매를 식별할 수 있게 해준다. 또한, 다른 객체들과 연관하여 설명되는 다수의 행위는 특정 사용자에 관한 것이며, 그래서 이런 행위들은 물론 그 사용자와 관련된다. 이런 행위는 행위 로그(216)에 저장된다.
다양한 실시예에 따르면, 행위 로거(214)는 소셜 네트워킹 시스템(200) 내부 및/또는 외부에서 사용자 행위에 대한 웹 서버(224)로부터 통신을 수신할 수 있다. 행위 로거(214)는 사용자 행위를 추적하도록 행위 로그(216)를 사용자 행위에 대한 정보로 채운다. 이런 정보는 사용자와 관련된 개인정보 설정에 종속될 수 있다. 특정 사용자가 다른 사용자에 대하여 행한 임의의 행위는 가령 행위 로그(216)와 같이 데이터베이스나 다른 데이터 저장소에 관리되는 정보를 통해 각 사용자의 프로필과 관련된다. 이런 행위는 예컨대 다른 사용자와의 연결을 추가하기, 메시지를 다른 사용자에게 송신하기, 다른 사용자로부터 메시지를 읽기, 다른 사용자와 관련된 컨텐츠를 열람하기, 다른 사용자에 의해 게시된 이벤트에 참여하기, 다른 사용자와 사진에 태그되기, 엔티티를 좋아하기 등을 포함할 수 있다.
행위 로그(216)는 소셜 네트워킹 시스템(202)뿐 아니라 소셜 네트워킹 시스템(202)과 정보를 통신하는 외부 웹사이트에서의 사용자 행위를 추적하는데 소셜 네트워킹 시스템(202)에 의해 사용될 수 있다. 사용자는 소셜 네트워킹 시스템(202)에서 다양한 객체와 상호작용할 수 있는데, 게시물에 대해 코멘트하기, 링크를 공유하기, 모바일 장치를 통해 물리적 위치로 체크인하기, 순서대로 컨텐츠 아이템에 접속하기 또는 다른 상호작용을 포함한다. 이런 행위를 기술하는 정보는 행위 로그(216)에 저장된다. 행위 로그(216)에 포함되는 소셜 네트워킹 시스템(202)상의 객체와의 상호작용의 추가적인 예는 사진 앨범에 대해 코멘트하기, 사용자 간에 통신하기, 가수의 팬이 되기, 이벤트를 캘린더에 추가하기, 그룹에 가입하기, 브랜드 페이지의 팬이 되기, 이벤트를 생성하기, 애플리케이션을 승인하기, 애플리케이션을 사용하기 및 거래를 체결하기를 포함한다. 추가로, 행위 로그(216)는 소셜 네트워킹 시스템(202)뿐 아니라 소셜 네트워킹 시스템(202)에서 동작하는 애플리케이션에서 광고와 사용자의 상호작용을 기록한다. 일부의 실시예로, 행위 로그(216)로부터의 데이터는 사용자의 관심사 또는 기호를 추론하는데 사용되며, 사용자 프로필에 포함된 관심사를 증대시키고, 사용자 기호의 더 완전한 이해를 가능하게 한다.
게다가, 가령 소셜 네트워킹 시스템(200)에서 특정 컨텐츠에 접근하는 사용자가 도시되었거나 보였을 때와 같이, 특정 컨텍스트에서 발생한 사용자 행위는 특정 컨텍스트와 함께 캡처되고 로그된다. 예컨대, 특정 사용자는 특정 사용자가 고정된 시간 구간 동안 소셜 네트워킹 시스템(200)에 접근했을 때마다 후보 사용자에 관한 정보를 제시받거나/제시받지 않을 수 있다. 이런 시간 구간 동안 사용자가 행한 임의의 행위는 컨텍스트 정보(즉, 후보 사용자가 특정 사용자에게 제공되었거나/제공받지 않았음)와 함께 로그되며 행위 로그(216)에 기록된다. 또한, 다른 객체들과 연관하여 하기에 설명되는 다수의 행위는 특정 사용자에 관한 것이며, 그래서 이런 행위들은 물론 그 사용자와 관련된다.
또한, 행위 로그(216)는 외부 웹사이트에서 행해지고/행해지거나 사용자와 관련된 재정적 계정으로부터 결정되는 사용자 행위를 저장할 수 있다. 예컨대, 할인가로 스포츠 장비를 주로 판매하는 전자상거래 웹사이트는 전자상거래 웹사이트가 소셜 네트워킹 시스템(202)의 사용자를 식별할 수 있게 하는 소셜 플러그-인을 통해 소셜 네트워킹 시스템(202)의 사용자를 인식할 수 있다. 소셜 네트워킹 시스템(202)의 사용자는 고유하게 식별가능하기 때문에, 가령 이런 스포츠 장비 소매상과 같은 전자상거래 웹사이트는 사용자가 웹사이트를 방문할 때 이런 사용자에 대한 정보를 사용할 수 있다. 행위 로그(216)는 웹페이지 열람 이력, 체결된 광고, 이루어진 구매 및 쇼핑과 구입에서의 다른 패턴을 포함하는 이런 사용자에 대한 데이터를 기록한다. 사용자와 관련된 재정적 계정의 거래 이력으로부터 행위 로거(214)에 의해 식별된 행위들은 행위 로그(216)가 추가적인 타입의 사용자 행위에 대한 추가 정보를 기록할 수 있게 해준다.
일실시예로, 에지 스토어(218)는 사용자와 에지 객체 내 소셜 네트워킹 시스템(202)상의 다른 객체 사이의 연결을 설명하는 정보를 저장한다. 에지 스토어(218)는 가령 도 1의 소셜 그래프(108)와 같이 상술한 소셜 그래프를 저장할 수 있다. 사용자가 다른 사용자들과의 관계를 명시할 수 있게 해주는 몇몇의 에지는 사용자에 의해 정의될 수 있다. 예컨대, 사용자는 가령 친구, 직장동료, 파트너 등과 같은 사용자의 실생활 관계에 상응하는 다른 사용자들과의 에지를 생성할 수 있다. 다른 에지는 사용자가 가령 소셜 네트워킹 시스템상의 페이지에 대한 관심을 표현하고, 소셜 네트워킹 시스템의 다른 사용자들과 링크를 공유하며, 소셜 네트워킹 시스템의 다른 사용자들에 의해 행해진 게시물에 코멘트하는 것과 같이 소셜 네트워킹 시스템(202)에서 객체와 상호작용할 때 생성된다. 에지 스토어(218)는 가령 객체, 관심사 및 다른 사용자들에 대한 친밀성 점수와 같은 에지에 대한 정보를 포함하는 에지 객체를 저장한다. 친밀성 점수는 사용자에 의해 수행된 행위를 기초로 소셜 네트워킹 시스템(202)에서 객체, 관심사 및 다른 사용자에 대한 사용자의 친밀감을 근사화하도록 시간에 따라 소셜 네트워킹 시스템(202)에 의해 계산될 수 있다. 일실시예로, 사용자와 특정 대상 사이의 동일한 타입의 다수의 상호작용은 에지 스토어(218)에서 하나의 에지 객체에 저장될 수 있다. 일부의 실시예로, 사용자 간의 연결은 프로필 스토어(210)에 저장될 수 있거나, 프로필 스토어(210)는 사용자 간의 연결을 결정하도록 에지 스토어(218)에 접근할 수 있다. 사용자는 기결정된 유형의 연결들로부터 선택할 수 있거나, 필요에 따라 그들 자신의 연결 유형을 정의할 수 있다.
웹 서버(224)는 네트워크를 통해 소셜 네트워킹 시스템(200)과 하나 이상의 클라이언트 장치를 연결한다; 웹 서버(224)는 웹페이지뿐만 아니라 가령 자바, 플래시, XML 등과 같은 다른 웹-관련 컨텐츠를 제공한다. 웹 서버(224)는 소셜 네트워킹 시스템(200)과 클라이언트 장치 사이의 메시지를 수신 및 라우팅하는 기능을 제공하는 메시지 서버(226)와 통신할 수 있다. 메시지 서버(226)에 의해 처리되는 메시지는 인스턴트 메시지, 큐잉된(queued) 메시지(예컨대, 이메일), 텍스트와 SMS (단문 메시지 서비스) 메시지 또는 임의의 다른 적합한 메시징 기술일 수 있다. 일부의 실시예로, 사용자에 의해 다른 사용자로 송신된 메시지는 예컨대 메시지를 수신하는 사용자의 연결관계들과 같이 소셜 네트워킹 시스템(200)의 다른 사용자들에 의해 열람될 수 있다. 메시지의 수신자 이외의 소셜 네트워킹 시스템의 다른 사용자에 의해 열람될 수 있는 메시지 타입의 예가 담벼락 게시물이다. 일부의 실시예로, 사용자는 다른 사용자에 의해서만 오직 검색될 수 있는 개인 메시지를 또 다른 사용자에게 송신할 수 있다.
API 요청 서버(228)는 외부 시스템이 API들을 호출하여 소셜 네트워킹 시스템(200)으로부터 정보에 접근할 수 있게 해준다. 소셜 네트워크에 의해 제공되는 정보는 그들 각각의 개인정보 설정에 의해 결정되는 바대로 사용자 프로필 정보 또는 사용자들의 연결 정보를 포함할 수 있다. 예컨대, 소셜 네트워킹 시스템 내에서 사용자가 연결을 형성할 확률을 예측하는 것에 관한 시스템은 네트워크를 통해 API 요청을 소셜 네트워킹 시스템(200)으로 송신할 수 있다. API 요청은 API 요청 서버(228)에 의해 소셜 네트워킹 시스템(200)에서 수신된다. API 요청 서버(228)는 적절한 응답을 결정하여 그 요청을 처리한 후, 네트워크를 통해 요청중인 시스템으로 다시 통신된다.
또한, 소셜 네트워킹 시스템(202)은 유연한 문장 관리 시스템(222)을 포함한다. 유연한 문장 관리 시스템(222)은 도 1의 유연한 문장 관리 시스템(150)일 수 있다. 유연한 문장 관리 시스템(222)은 소셜 네트워킹 시스템(202)에서 실행되는 애플리케이션을 위하여 유연한 문장을 개발하고 유연한 문장을 렌더링하기 위해 소셜 네트워킹 시스템(202)의 스토어 및 모듈에 접근할 수 있다. 유연한 문장이 개발됨에 따라, 유연한 문장 관리 시스템(222) 은 또한 소셜 네트워킹 시스템(202)의 다른 모듈 및 스토어와 함께 작동하여, 유연한 문장 구성에 기반하여 클라이언트 장치(204A)에 렌더링된 유연한 문장을 디스플레이할 수 있다.
도 3은 도 1의 소셜 네트워킹 시스템(100)이나 도 2의 소셜 네트워킹 시스템(200)과 같은 소셜 네트워킹 시스템(300)에서 특정 유연한 문장을 생성하기 위한 토큰 사용의 블록도를 도시한다. 유연한 문장 구문의 세트는 개발자 인터페이스에서 구성되고 그 후 소셜 네트워킹 시스템의 소셜 그래프 데이터로부터 렌더링될 수 있다.
소셜 네트워킹 시스템(300)은 도 2의 사용자 장치(204)와 같은 사용자 장치와 상호작용하는 그래프 API 서버(228)와 같은 그래프 API 서버를 포함한다. 그래프 API 서버는 소셜 네트워킹 시스템(300)에서의 사용자 프로필과 활동의 기록이 가능할 수 있다. 일부 실시예에서, 사용자 프로필과 활동은 프로필 스토어(210)과 행위 로그(216)에 각각 저장될 수 있다. 사용자 프로필은 특정 사용자의 이름 또는 사용자 식별자(UID), 프로필 사진, 성별, 생일, 네트워크, 친구 리스트, 위치, 언어, 나라, 좋아요, 좋아하는 브랜드, 뉴스, 아울렛, 레스토랑, 특정 사용자가 모두와 공유하기로 선택한 임의의 정보 또는 그들의 임의의 조합을 포함할 수 있으나, 이에 제한되지 않는다.
개발자에 의해 개발된 애플리케이션은 소셜 네트워킹 시스템(300)에 저장된 소셜 그래프를 사용하여 소셜 네트워킹 시스템(300)과 상호작용할 수 있다. 예를 들어, 애플리케이션은 그래프 API 서버를 통하여 도 2의 에지 스토어(218)에 접근할 수 있다. 도 3은 애플리케이션을 통하여 소셜 그래프로부터 정보를 표현하기 위해 애플리케이션을 설정하는 특정 개발자 인터페이스를 도시한다.
소셜 네트워킹 시스템(300)은 도 2의 클라이언트 장치(204)와 같은 장치에 실체화되는 도 1의 개발자 인터페이스 모듈(154)에 의해 생성된 개발자 인터페이스와 같은 개발자 플랫폼(310)을 생성할 수 있다. 개발자 플랫폼(310)은 개발자가 도 1의 소셜 네트워킹 애플리케이션(152)을 위한 도 1의 유연한 문장 구문(156)과 같은 애플리케이션을 위한 유연한 문장 구문을 구성할 수 있도록 한다. 유연한 문장 구문은 애플리케이션에 의하여 소셜 네트워킹 시스템(300) 상의 사용자 계정에 의해 수행된 행위를 해석하고 의미 있는 방식으로 이들 행위를 표현하기 위하여 사용된다. 해석된 행위는 행위 로그(216)로부터 그래프 API 서버를 통하여 또는 에지 스토어로부터 접근될 수 있다. 개발자 플랫폼(310)은 소셜 네트워킹 시스템(300)과 직접 또는 그래프 API 서버를 통하여 간접적으로 통신할 수 있다.
일부 실시예에서, 개발자 플랫폼(310)은 개발자가 소셜 네트워킹 시스템(300)의 유연한 문장을 생성하기 위한 복수의 옵션을 제공한다. 개발자는 특정 유연한 문장의 "행위자", "에지" 및 "대상"을 입력함으로써 시작할 수 있다. 예를 들어, 개발자는 "행위자", "에지" 및 "대상"을 그들의 대응하는 텍스트 박스에 타이핑함으로써 정의할 수 있다. 일부 실시예에서, "행위자" 텍스트 박스는 개발자의 애플리케이션을 사용하는 사용자의 이름으로 미리 채워질 수 있다. 특정 사용자는 다른 이름으로 수정하거나 다른 친구를 추가할 수 있다.
개발자 플랫폼(310)에서, 옵션은 개발자가 하나 이상의 에지 토큰(321 내지 329)(예컨대, 에지를 위한 변수) 및/또는 하나 이상의 대상 토큰(331 내지 339)(예컨대, 대상을 위한 변수)를 고르기 위해 제공된다. 하나 이상의 에지 토큰(321 내지 329)은 특정 유연한 문장에서 "에지"의 속성 표현을 정의하기 위해 사용될 수 있다. 개발자는 특정 문장의 "에지"를 더 정의하기 위하여 에지 토큰(들)(321 내지 329)을 선택할 수 있다. 에지 토큰(321 내지 329)는 많은 방식으로 개발자에게 나타내어질 수 있다. 예를 들어, 에지 토큰(321 내지 329)는 체크 박스 리스트, 드롭 다운 메뉴, 선택 리스트, 버튼의 리스트, 멀티 레이어 메뉴 레벨 또는 그들의 임의의 조합으로 제공될 수 있다. 다른 예로서, 개발자가 "에지"의 앞에 기정의된 문자, 예컨대 여는 중괄호("{")를 타이핑했을 때, 드롭 다운 박스가 개발자가 "에지"와 연관된 속성 표현을 선택하도록 디스플레이될 수 있다.
하나 이상의 대상 토큰(331 내지 339)은 특정 유연한 문장에서 "대상"의 속성 표현을 정의하기 위해 사용될 수 있다. 개발자는 특정 유연한 문장의 "대상"를 더 정의하기 위하여 대상 토큰(들)(331 내지 339)을 선택할 수 있다. 대상 토큰(331 내지 339)는 예컨대 체크 박스 리스트, 드롭 다운 메뉴, 선택 리스트, 버튼의 리스트, 멀티 레이어 메뉴 레벨 또는 그들의 임의의 조합으로 개발자에게 나타내어질 수 있다.
일부 에지 및 대상 토큰은 소셜 네트워킹 시스템(300)의 사용자에 의해 다른 것보다 보다 빈번히 사용될 수 있다. 일부 실시예에서, 에지와 대상 토큰은 사용자 및/또는 개발자에 의한 사용 빈도의 상이한 수준을 가지는 토큰을 구별하기 위해 컬러-코드될 수 있다.
일부 실시예에서, 개발자-선택된 에지 및/또는 대상에 기반하여, 개발자 플랫폼(310)은 자동으로 개발자가 선택할 복수의 문장을 생성할 수 있다. 각 문장은 그 대응하는 퍼센티지 커버리지와 함께 표시될 수 있다. 특정 문장의 퍼센티지 커버리지 특정 문장이 소셜 네트워킹 시스템(300)의 사용자에 의하여 주어진 시간 프레임 동안 열람된 노출수(impressions)에 의해 결정된다. 노출수는 총 노출수(예컨대, 수신된 노출수의 수), 총 리퍼럴(referrals)(예컨대, 모든 채널을 통한 총 클릭), 피드 노출수(예컨대, 사용자의 뉴스피드에서 열람된 노출수의 수), 피드 리퍼럴(예컨대, 사용자의 뉴스피드에서 열람된 클릭 수), 지금 이 순간(ticker) 노출수(예컨대, 사용자의 지금 이 순간에서 열람된 노출수의 수), 지금 이 순간 리퍼럴(예컨대, 사용자의 지금 이 순간에서 열람된 클릭 수) 기타 등등을 포함할 수 있으나, 이에 제한되지 않는다.
일부 실시예에서, 특정 문장의 퍼센티지 커버리지는 또한 특정 문장의 비율에 의존한다. 특정 문장의 비율은 소셜 네트워킹 시스템(300)의 사용자로부터의 좋아요, 코멘트, 좋아요 취소(unlike) 기타 등등과 같은 피드백에 기반하여 결정될 수 있다.
복수의 문장은 그들의 대응하는 퍼센티지 커버리지에 기반하여 우선순위화될 수 있다. 높은 퍼센티지 커버리지를 가지는 문장은 가장 위에 리스트될 수 있다. 일부 실시예에서, 퍼센티지 커버리지는 컬러-코드될 수 있다. 특정 색은 퍼센티지 커버리지의 특정 수준으로 지정된다.
일부 실시예에서, 에지가 정의될 때, 기설정된 임계치 이상의 대응하는 퍼센티지 커버리지를 가지는 관련 문장은 네트워크 I/O 지연을 최소화하기 위해 개발자 장치에 프리-페치될 수 있다.
일부 실시예에서, 개발자는 활동의 요약을 통합하여 한번에 발행하도록 소셜 네트워킹 시스템(300)에서 실행되는 애플리케이션을 구성할 수 있다. 개발자 플랫폼(310)은 개발자에게 선택할 상이한 통합 타입을 제공할 수 있다. 통합 타입은 갤러리 타입, 표, 리스트, 지도 또는 그들의 임의의 조합을 포함할 수 있으나 이에 제한되지 않는다. 예를 들어, 만약 에지가 "요리하다"이면, 통합은 특정 사용자가 최근에 요리한 모든 것을 리스트할 수 있다.
일부 실시예에서, 에지와 대상이 선택될 때, 개발자 플랫폼(310)은 개발자에게 선택할 복수의 통합을 제공할 수 있다. 예를 들어, 만약 특정 문장의 에지와 대상이 "음악을 듣다"이면, 통합은 특정 사용자의 좋아하는 앨범, 좋아하는 플레이리스트 및/또는 좋아하는 아티스트를 포함할 수 있다. 개발자는 통합을 커스터마이즈하고 커스터마이즈된 통합이 소셜 네트워킹 시스템(300)의 다른 사용자에게 어떻게 인식될지 시각화하여 커스터마이즈된 통합을 미리보기할 수 있다. 예를 들어, 개발자는 소셜 네트워킹 시스템(100)에서 실행되는 애플리케이션을 구성하여 좋아하는 앨범을 갤러리 타입으로 통합할 수 있다.
도 4a는 도 3의 개발자 플랫폼(310)과 같은 개발자 플랫폼(400)에서 특정 유연한 문장의 동사 시제를 구성하기 위한 옵션의 예시를 도시한다. 개발자는 복수의 에지 구성(410)에서 선택함으로써 특정 유연한 문장을 구성할 수 있다. 에지 구성(410)은 일대일(예컨대, "존은 소셜 하이킹에서 하이킹.제목을 하이킹했습니다"); 대상 제목 없이 일대일(예컨대, "존은 소셜 하이킹에서 하이킹을 하이킹했습니다"); 일대이(예컨대, "존은 소셜 하이킹에서 하이킹1.제목과 하이킹2.제목을 하이킹했습니다"); 일대다(예컨대, "존은 소셜 하이킹에서 하이킹1.제목과 5개의 다른 하이킹을 하이킹했습니다"); 대상 제목 없이 일대이/다(예컨대, "존은 소셜 하이킹에서 5개의 하이킹을 하이킹했습니다"); 이대일(예컨대, "존과 메리는 소셜 하이킹에서 하이킹.제목을 하이킹했습니다"); 및 다대일(예컨대, 존과 다른 3명은 소셜 하이킹에서 하이킹.제목을 하이킹했습니다")을 포함할 수 있으나 이에 제한되지 않는다. 각 에지 구성(410)은 도 1의 유연한 문장 구문(156)과 같은 유연한 문장 구문으로서 저장될 수 있다.
개발자가 특정 유연한 문장을 발행할 때, 발행된 특정 문장은 뉴스피드 뿐만 아니라 소셜 네트워킹 시스템(300)의 특정 사용자의 친구의 사용자 장치(115)의 지금 이 순간에도 나타날 수 있다. 일부 실시예에서, 개발자는 상이한 "에지 구성"의 문장을 미리보기할 수 있다. 예를 들어, 개발자 플랫폼(310)은 개발자를 위해 특정 유연한 문장을 뉴스피드 및 지금 이 순간에 디스플레이하는 미리보기 박스를 제공할 수 있다. 지금 이 순간은 보통 뉴스피드보다 작은 공간을 가진다. 미리보기에 기반하여, 개발자는 지금 이 순간에서 동일한 정보를 전달하기 위해 문장을 줄여야 할 수 있다.
일부 실시예에서, 브리뷰 박스는 특정 유연한 문장 또는 뉴스피드 소식의 디스플레이를 상이한 플랫폼에서 시뮬레이션하여 개발자가 특정 문장 및/또는 뉴스피드 소식이 이들 플랫폼에서 사용자들에게 어떻게 인식될 수 있는지를 시각화하도록 도울 수 있다.
도 4b 내지 c는 개발자 플랫폼(400)에서 특정 유연한 문장의 시제를 편집하는 옵션의 예시를 도시한다. 도 4b에 도시된 바와 같이, 특정 유연한 문장을 편집할 때, 개발자는 에지 및 대상의 속성 표현을 선택하기 위하여 토큰을 사용할 수 있다. 예를 들어, 특정 사용은 여는 중괄호("{")(420)와 같은 기정의된 문자를 사용하고, "hike"를 더하여 에지 "hike"의 복수의 속성 표현(430)을 가지는 드롭 다운 박스를 가져올 수 있다. 개발자는 특정 유연한 문장의 에지 "hike"와 연관된 하나 이상의 속성 표현을 선택할 수 있다. 예를 들어, 속성 표현은 hike.title, hike.audio, hike.description, hike.determiner, hiker.image, hike.restrictions, hike.see_also, hike.site_name, 기타 등등과 같은 에지 "hike"와 연관된 에지 토큰을 포함할 수 있다. 드롭 다운 박스의 각 에지 토큰은 선택되고 편집될 수 있다. 예를 들어, 개발자는 hike.image를 선택하고 에지 "hike"와 관련된 하나 이상의 이미지로 편집할 수 있다.
특정 실시예에서, 개발자는 추가적인 속성 표현을 추가하여 특정 유연한 문장의 에지와 대상을 커스터마이즈할 수 있다. 예를 들어, 개발자는 hike.locale(예컨대, 에지 "hike"에 관한 장소)을 "hike" 에지의 커스터마이즈된 속성으로서 추가할 수 있다. 다른 예로서, 만약 에지와 대상이 "영화를 보다"이면, 개발자는 대상 "영화"를 영화의 감독, 영화의 배우/여배우, 영화를 제작한 스튜디오, 특정 주제 또는 영화의 장르, 기타 등등과 같은 속성 표현을 추가함으로써 커스터마이즈할 수 있다.
일부 실시예에서, 개발자는 특정 사용자가 특정 유연한 문장에서 다른 사용자를 태그할 수 있도록 할 수 있다. 다른 사용자를 태그함으로써, 특정 유연한 문장이 태그된 사용자의 타임라인뿐만 아니라 태그된 사용자의 친구의 지금 이 순간 및 뉴스피드에도 발행될 수 있다.
예를 들어, 만약 에지와 대상이 "레시피를 요리하다"이면, 개발자는 추가적인 대상 "재료"를 추가할 수 있다. 대상 "재료"는 이미지, 지리적 위치, 날짜, 시각, 재료들의 배열, 부울(Boolean) 및/또는 정수, 기타 등등과 같은 다양한 상이한 타입이 될 수 있다. 만약 레시피가 에그롤이면, 특정 사용은 일반적인 에그롤 레시피의 좋아하는 재료(예컨대, 계란, 간 돼지고기 및 골파)를 추가할 수 있다. 개발자는 또한 "생일"과 같은 새로운 대상 타입 "기회(occasion)"를 추가할 수 있다. 기회는 "요리하다" 에지의 속성이다. 개발자는 또한 "요리하다" 에지의 또 다른 속성 "장소"(예컨대, "존의 집")를 추가할 수 있다. 다른 사용자(예컨대, 짐과 제인)를 태그함으로써, 마치 그들도 에지에 의해 나타내어지는 행위를 한 것처럼 특정 문장이 짐과 제인의 친구의 지금 이 순간 및 뉴스피드에 발행될 수 있다. 개발자는 예컨대 "맛있는"과 같은 대상 속성 표현을 특정 문장에 더 추가할 수 있다. 뉴스피드에 발행된 특정 문장은 "존이 존의 집에서 짐과 제인과 함께 생일을 위해 계란, 골파 및 간 돼지고기로 맛있는 에그롤 레시피를 요리했습니다"와 같이 보일 수 있다.
일부 실시예에서, 특정 문장의 에지(예컨대, 동사)의 시제는 동사 주위의 회색 박스를 클릭함으로써 편집될 수 있다. 일부 실시예에서, 플랫폼(301)은 개발자가 특정 문장의 시제를 편집하기 위한 대화창을 제공한다. 개발자는 대화창에서 동사 자체를 바꿀 수 있다(예컨대, "하이킹했습니다"에서 "걸었습니다"로). 변화는 그 타입의 모든 소식에서 동사가 변하는 결과가 된다.
특정 문장에서 동사의 시제는 예컨대 과거 시제, 복수 과거 시제, 현재 시제, 복수 현재 시제, 진행형 시제, 완료형 시제, 완료진행형 시제 및 명령형을 포함할 수 있다. 개발자는 특정 유연한 문장의 에지를 위해 하나 이상의 시제를 선택할 수 있다. 예를 들어, 도 4c에 도시된 바와 같이, 개발자는 에지 "hike"와 함께 소식을 보여주기 위해 과거와 현재 시제 양자(440)를 선택할 수 있다. 일부 실시예에서, 개발자의 선택 없이, 에지의 이름이 기본적으로 과거 시제로 디스플레이될 수 있다.
도 4d는 개발자 플랫폼(400)에서 특정 유연한 문장을 위한 특성을 선택하는 옵션의 예시를 도시한다. 일부 실시예에서, 특성 토큰(460)은 개발자가 개발자의 애플리케이션이 소식에서 어떻게 특성지어지는지를 커스터마이즈할 수 있도록 제공될 수 있다. 특성 토큰(460)은 체크 박스 리스트, 드롭 다운 메뉴, 선택 리스트, 버튼의 리스트, 멀티 레이어 메뉴 레벨 또는 그들의 임의의 조합과 같은 옵션으로 선택될 수 있다. 도 4d에 도시된 바와 같이, 개발자는 특정 유연한 문장을 편집할 때 특정 특성 "on social hiking"(463)을 선택할 수 있다.
실시예들이 개발자 플랫폼(310)의 컨텍스트에서 기술됐지만, 다양한 실시예가 특정 유연한 문장을 모바일 웹, iOS, 안드로이드, 데스크탑 웹 및/또는 윈도우 OS, 리눅스 또는 유닉스에 존재하는 애플리케이션으로부터 생성하고 발행할 수 있다.
도 5는 도 1의 소셜 네트워킹 시스템(100)나 도 2의 소셜 네트워킹 시스템(202)과 같은 소셜 네트워킹 시스템에서 특정 유연한 문장을 생성하기 위하여 사용될 수 있는 동작의 세트(500)를 도시하는 흐름도를 도시한다. 단계 520에서, 소셜 네트워킹 시스템은 개발자가 개발 장치에서 특정 유연한 문장 구문을 정의할 수 있도록 개발자 인터페이스를 제공한다.
단계 530에서, 하나 이상의 에지 토큰이 개발자가 특정 유연한 문장 구문의 특정 에지의 속성 표현을 선택할 수 있도록 생성될 수 있다. 단계 540에서, 하나 이상의 대상 토큰이 개발자가 특정 유연한 문장 구문의 특정 대상의 속성 표현을 선택할 수 있도록 생성될 수 있다. 단계 550에서, 시제 토큰이 개발자가 특정 유연한 문장 구문의 특정 에지의 시제를 정의할 수 있도록 생성될 수 있다.
단계 560에서, 특정 에지, 특정 대상 및 특정 에지의 정의된 시제에 기반하여, 복수의 관련 문장 구문이 개발자가 특정 유연한 문장 구문을 결정할 수 있도록 생성될 수 있다. 복수의 관련 문장 구문은 그들의 대응하는 커버리지 퍼센티지에 따라 우선순위화될 수 있다.
일부 실시예에서, 개발자는 한번에 통합하여 발행할 활동의 요약을 생성할 수 있다. 상이한 통합 타입이 개발자가 선택하도록 제공될 수 있다. 일부 실시예에서, 복수의 통합이 자동으로 개발자가 선택하도록 제공될 수 있다.
단계 570에서, 미리보기 옵션이 개발자가 특정 유연한 문장 구문을 미리보기하고 발행할 수 있도록 제공될 수 있다. 일부 실시예에서, 미리보기 박스가 개발자가 특정 유연한 문장 구문이 상이한 타입의 플랫폼을 사용하는 사용자들에게 어떻게 인식될 수 있는지 시각화할 수 있도록 제공될 수 있다. 유연한 문장 구문의 에지 구성이 에지 구성을 소셜 네트워킹 시스템의 유연한 문장 구문으로 저장함으로써 발행될 수 있다. 예를 들어, 유연한 문장 구문의 런타임 렌디션은 도 2의 그래프 API 서버(228)를 통해 소셜 그래프 데이터를 해석함으로써 도 1의 문장 렌디션 모듈(160)에 의해 렌더링될 수 있다. 문장의 렌디션은 소셜 네트워킹 시스템에 새로운 에지를 생성하는 새로운 사용자 행위에 응답하여 일어날 수 있다. 에지 구성에 매핑하는 각 새로운 에지는 렌더링된 유연한 문장 구문의 새로운 인스턴스로 렌더링될 수 있다.
도 5의 방법(500)이 단일 네트워킹 시스템의 문맥에서 기술되었지만, 본 명세서는 복수의 네트워킹 시스템 및/또는 서버를 고려한다. 복수의 네트워킹 시스템/서버는 단일 위치 또는 복수의 위치에 위치할 수 있다.
도 6은 본 명세서의 또 다른 실시예에 따른 컴퓨터 시스템(600)의 예시를 도시한다. 컴퓨터 시스템(600)은 모두 하나 이상의 버스(670)로 상호 연결된 적어도 하나의 프로세서(610), 하나 이상의 네트워크 인터페이스(630) 및 하나 이상의 컴퓨터 판독가능 매체(620)를 포함할 수 있다. 도 6에서, 다양한 컴포넌트는 예시의 간소화를 위해 생략된다. 컴퓨터 시스템(600)은 본 명세서에 기술된 임의의 다른 컴포넌트(예컨대, 도 1 내지 5에 도시된 임의의 컴포넌트)가 구현될 수 있는 장치를 설명하도록 의도된다.
컴퓨터 시스템(600)은 다양한 물리적 형태를 취할 수 있다. 예시로서, 컴퓨터 시스템(600)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 개인 정보 단말기(PDA), 휴대용 컴퓨터, 태블릿 PC, 웨어러블 컴퓨터, 상호작용 키오스크, 휴대폰, 서버, 메인프레임 컴퓨터, 메쉬-연결형 컴퓨터, 싱글보드 컴퓨터(SBC)(예컨대, BeagleBoard, PC-온-어-스틱, Cubieboard, CuBox, Gooseberry, Hawkboard, Mbed, OmapZoom, Origenboard, Pandaboard, Pandora, Rascal, Raspberry Pi, SheevaPlug, Trim-Slice, 기타 등등), 임베디드 컴퓨터 시스템 또는 이들의 둘 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(600)은 통합되거나 분산된, 복수의 장소에 걸치거나, 복수의 장치에 걸치거나, 클라우드에 존재하는, 하나 이상의 네트워크에서 하나 이상의 클라우드 컴포넌트를 포함할 수 있는 하나 이상의 컴퓨터 시스템(600)을 포함할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(600)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실질적으로 공간적 또는 시간적 제한 없이 실행할 수 있다. 예로서 제한 없이, 하나 이상의 컴퓨터 시스템(600)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실시간으로 또는 일괄 모드로 실행할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(600)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 다른 시기에 또는 다른 위치에서 실행할 수 있다.
컴퓨터 시스템(600)은 바람직하게 윈도우®, 리눅스® 또는 유닉스®과 같은 운영체제를 포함할 수 있으나, 이에 제한되지 않는다. 운영체제는 파일을 조직화하고 추적하는 파일 관리 시스템을 포함할 수 있다. 일부 실시예에서, 개별 파일 관리 시스템이 제공될 수 있다. 개별 파일 관리는 운영체제와 부드럽게 상호작용하고 향상된 백업 프로시져 및/또는 엄격한 파일 보호와 같은 향상되고 및/또는 보다 많은 기능을 제공할 수 있다.
적어도 하나의 프로세서(610)는 임의의 적절한 프로세서일 수 있다. 적어도 하나의 프로세서(610)의 타입은 중앙 처리 유닛(CPU), 마이크로프로세서, 그래픽 처리 유닛(GPU), 물리 처리 유닛(PPU), 디지털 신호 프로세서, 네트워크 프로세서, 프론트 엔드 프로세서, 데이터 프로세서, 워드 프로세서 및 오디오 프로세서를 포함하는 그룹 중 하나 이상을 포함할 수 있다.
하나 이상의 버스(670)은 컴퓨터 시스템(600)의 컴토넌트들을 서로 연결하도록 구성된다. 예로서 제한 없이, 하나 이상의 버스(670)은 그래픽 버스(예컨대, AGP(Accelerated Graphics Port)), EISA(Enhanced Industry Standard Architecture) 버스, 프론트-사이드 버스(FSB), 하이퍼트랜스포트(HT) 인터커넥트, ISA(Indusry Standard Architecture) 버스, Infiniband 인터커넥트, LPC(low-pin-count) 버스, 메모리 버스, MCA(Micro Channel Architecture) 버스, PCI(Peripheral Component Interconnect) 버스, PCI-Express(PCI-X) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standards Association local) 버스 또는 다른 적절한 버스 또는 이들의 둘 이상의 조합을 포함할 수 있다. 본 명세서가 특정 버스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 버스 또는 인터커넥트를 고려한다.
하나 이상의 네트워크 인터페이스(630)는 하나 이상의 모뎀 또는 네트워크 인터페이스를 포함할 수 있다. 모뎀이나 네트워크 인터페이스는 컴퓨터 시스템(600)의 일부로 간주될 수 있다고 이해될 것이다. 인터페이스는 아날로그 모뎀, ADSL(asymmetric digital subscriber line) 모뎀, 케이블 모뎀, 양방향 위성 모뎀, 전력선 모뎀, 토큰 링 인터페이스, 캠브릿지 링 인터페이스, 위성 전송 인터페이스 또는 컴퓨터 시스템을 다른 컴퓨터 시스템과 연결하기 위한 임의의 적절한 인터페이스들을 포함할 수 있다. 인터페이스는 하나 이상의 입력 및/또는 출력 장치를 포함할 수 있다. I/O 장치는 예로서 제한 없이 키보드, 마우스 또는 다른 포인팅 장치, 디스크 드라이브, 프린터, 스캐너, 터치 스크린, 태블릿 스크린 및 디스플레이 장치를 포함하는 다른 입력 및/또는 출력 장치를 포함할 수 있다. 디스플레이 장치는 예로서 제한 없이 CRT(cathode ray tube) 디스플레이, LCD(liquid crystal display), 3-D 디스플레이 또는 몇몇의 다른 적용가능한 공지되거나 간편한 디스플레이 장치를 포함할 수 있다. 간소화를 위해, 도 6의 예에서 도시되지 않은 임의의 장치들의 컨트롤러들은 인터페이스에 상주한다고 추정된다.
컴퓨터 판독가능 매체(620)는 프로세서(610)에 의해 접근가능한 임의의 매체 장치를 포함할 수 있다. 예로서 제한 없이, 컴퓨터 판독가능 매체(620)는 휘발성 메모리(예컨대, RAM(random access memory), 다이나믹 RAM(DRAM) 및/또는 스태틱 RAM(SRAM)) 및 비-휘발성 메모리(예컨대, 플래시 메모리, ROM(read-only memory), 프로그래머블 ROM(PRAM), 이레이저블 프로그래블 ROM(EPROM) 및/또는 전기적 이레이저블 프로그래머블 ROM(EEPROM))을 포함할 수 있다. 적절한 경우, 휘발성 메모리 및/또는 비-휘발성 메모리는 단일-포트 또는 멀티-포트 메모리일 수 있다. 본 명세서는 임의의 적절한 메모리를 고려한다. 일부 실시예에서, 적절한 경우, 컴퓨터 판독가능 매체(620)는 반도체-기반 또는 다른 집적 회로(IC)(예컨대, FPGA(field-programmable gate array) 또는 ASIC(application specific IC)), 하드 디스크, HDD, 하이브리드 하드 디스크(HHD), 광학 디스크(예컨대, CD 롬 또는 DVD(digital versatile disk)), 광학 디스크 드라이브(ODD), 자기-광학 디스크, 자기-광학 드라이브, 플로피 디스크, 플로피 디스크 드라이브(FDD), 자기 테이프, 홀로그래픽 저장 매체, SSD(solid-state drive), SD(secure digital) 카드, SD 드라이브 또는 다른 적절한 컴퓨터 판독가능 저장 매체 또는 이들의 둘 이상의 조합을 포함할 수 있다. 적절한 경우, 컴퓨터 판독가능 저장매체(620)는 휘발성, 비휘발성 또는 휘발성과 비휘발성의 조합일 수 있다.
프로그램(6201)은 하나 이상의 컴퓨터 판독가능 매체(620)에 저장될 수 있다. 예로서 제한 없이, 컴퓨터 시스템(600)은 프로그램(6201)을 하나 이상의 컴퓨터 판독가능 매체(620)의 적절한 위치에 실행을 위해 불러올 수 있다. 프로그램(6201)은 실행될 때, 컴퓨터 시스템(600)이 본 명세서에 기술되거나 도시된 하나 이상의 동작 또는 하나 이상의 방법을 수행하도록 할 수 있다. 일부 실시예에서, 동작은 도 5의 방법(500)을 포함할 수 있으나 이에 제한되지 않는다.
통상의 기술자가 알 수 있듯이, 동작 또는 방법은 로컬로(예컨대, 한 로컬 컴퓨터 시스템에서) 예시될 수 있고 원격 ?퓨터 시스템에 걸쳐서 분산될 수 있다. 예를 들어, 로컬 컴퓨터 시스템의 사용 가능한 계산 능력이 부족하거나 추가적인 계산 능력이 필요한 것으로 결정되면, 동작의 특정 측면을 클라우드로 떠넘길 수 있다.
실시예에 서술되는 컴퓨터 판독가능 저장 매체가 단일 매체이지만, 용어 "컴퓨터 판독가능 매체"는 명령어의 하나 이상의 세트를 저장하는 단일 매체 또는 복수의 매체(예컨대, 중앙집중되거나 분산된 데이터베이스, 및/또는 연관된 캐시와 서버)로 간주될 수 있다. 용어 "컴퓨터 판독가능 매체"는 또한 컴퓨터에 의한 실행을 위한 명령어의 세트를 저장, 인코딩 또는 수행할 수 있고 컴퓨터가 본 명세서에 개시된 기술 및 혁신의 방법론 중 임의의 하나 이상을 수행하도록 하는 임의의 매체로 간주될 수 있다.
컴퓨터 판독가능 매체, 기계 판독가능 매체, 기계 판독가능 매체 또는 컴퓨터 판독가능 (저장) 매체의 추가적인 예시는 휘발성 및 비-휘발성 메모리 장치와 같은 기록가능한 타입의 매체, 플로피 및 다른 제거가능 디스크, 하드디스크 드라이브, 광학 디스크, DVD, 디지털 및 아날로그 통신 링크와 같은 전송 타입의 매체를 포함하나 이에 제한되지 않는다.
일부의 경우, 가령 이진수 1에서 이진수 0으로의 상태 변화나 그 역과 같은 메모리 장치의 동작은 예컨대 물리적 변환과 같은 변환(transformation)을 포함할 수 있다. 특정 타입의 메모리 장치로, 이런 물리적 변환은 다른 상태나 사물로의 물품의 물리적 변환을 포함할 수 있다. 예컨대, 제한 없이, 몇몇 타입의 메모리 장치에 대하여, 상태 변화는 전하의 축적과 저장 또는 저장된 전하의 방출을 포함할 수 있다. 마찬가지로, 다른 메모리 장치에서, 상태 변화는 자성 방향(magnetic orientation)의 물리적 변화나 변환 또는 가령 결정질에서 비결정질로 또는 그 역으로와 같이 분자 구조의 물리적 변화나 변환을 포함할 수 있다. 상술한 내용은 메모리 장치에서 이진수 1에서 이진수 0으로 또는 그 역으로의 상태 변화가 가령 물리적 변환과 같은 변형을 포함할 수 있는 모든 예들의 완전한 목록임을 의도하지 않는다. 그 대신, 상술한 내용은 설명을 위한 예들로 의도된다.
통상, 저장매체는 비-일시적일 수 있거나 비-일시적 장치를 포함할 수 있다. 이와 관련하여, 비-일시적 저장매체는 장치가 그 물리적 상태를 변화시킬 수 있지만 장치가 구체적인 물리적 형태를 의미하는 유형의 장치를 포함할 수 있다. 따라서, 예컨대, 비-일시적은 그 상태 변화에도 불구하고 유형의 상태를 유지하는 장치를 말한다.
컴퓨터는 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 PC, 랩탑 컴퓨터, 셋톱박스(STB), 개인용 정보 단말기(PDA), 휴대 전화, 아이폰®, 아이패드®, 프로세서, 전화, 웹 어플라이언스(web appliance), 네트워크 라우터, 스위치 또는 브릿지 또는 그 기계가 취할 수 있는 행동을 명시하는 명령어의 세트(순차적 또는 그렇지 않은)를 실행할 수 있는 임의의 기계일 수 있다.
대안의 실시예로, 기계는 독립형 장치로 동작하거나 다른 기계들과 연결(예컨대, 네트워크화)될 수 있다. 네트워크형 배치에서, 기계는 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 기계의 능력으로 또는 피어-투-피어(또는 분산형) 네트워크 환경의 피어 기계(peer machine)로서 동작할 수 있다.
상세한 설명의 몇몇의 부분들은 컴퓨터 메모리 내 데이터 비트에서 알고리즘 및 동작의 기호적 표현의 관점으로 제시될 수 있다. 이런 알고리즘적 설명이나 표현은 본 기술분야에서 당업자에게 가장 효과적으로 그들의 작업의 실체를 전달하기 위해 데이터 프로세싱 기술분야에서 당업자에 의해 사용되는 수단이다. 알고리즘은 여기서 일반적으로 소정의 결과로 이끄는 일관성 있는 동작들의 시퀀스라고 이해된다. 동작들은 물리량의 물리적 조작을 요구하는 동작들이다. 보통, 반드시 그런 것은 아니지만, 이런 물리량은 저장되고, 전달되며, 결합되고, 비교되며, 그렇지 않으면 조작될 수 있는 전기적 신호 또는 자기적 신호의 형태를 취한다. 원칙상 공통의 사용을 이유로 이런 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 일컫는 것이 때때로 간편하다고 판명되었다.
그러나, 이런 용어들 및 유사한 용어들 모두는 적절한 물리량과 관련되는 것이고 단지 이런 물리량에 적용되는 편의상의 라벨임을 유의해야 한다. 하기의 논의로부터 명백하게 달리 명시적으로 언급되는 것이 아닌 한, 본 명세서를 통해 가령 "처리하는(processing)" 또는 "연산하는(computing)" 또는 "계산하는(calculating)" 또는 "결정하는(determining)" 또는 "디스플레이하는(displaying)" 또는 "생성하는(generating)" 등과 같은 용어들을 이용하는 설명은 컴퓨터 시스템의 레지스터와 메모리 내 물리적(전자적) 양으로 표현되는 데이터를 컴퓨터 시스템 메모리나 레지스터 내 또는 다른 이런 정보 저장, 전송 또는 디스플레이 장치 내에 물리량으로 유사하게 표현되는 다른 데이터로 조작하고 변형하는 컴퓨터 시스템 또는 유사한 전자식 컴퓨팅 장치의 행위 및 프로세스를 일컫는 것임이 이해된다.
본 명세서에 제시된 알고리즘 및 디스플레이는 본질적으로 임의의 특정한 컴퓨터 또는 다른 장치에 관한 것이 아니다. 다양한 범용 시스템은 본 명세서에 시사된 내용에 따른 프로그램들과 함께 사용될 수 있거나, 일부의 실시예들의 방법을 수행하도록 더 전문화된 장치를 구축하는 것이 편리하다고 판명될 수 있다. 다양한 이런 시스템들에 대해 필요한 구조가 하기의 상세한 설명으로부터 나타날 것이다. 또한, 기술들은 임의의 특정한 프로그래밍 언어를 참조로 기술되지 않으며, 따라서 다양한 실시예들은 다양한 프로그래밍 언어를 사용하여 구현될 수 있다.
통상, 본 명세서의 실시예들을 구현하도록 실행되는 루틴들은 운영 시스템이나 특정 애플리케이션, 컴포넌트, 프로그램, 객체, 모듈이나 "프로그램"이라고 하는 명령어 시퀀스의 일부로 구현될 수 있다. 프로그램은 일반적으로 컴퓨터의 다양한 메모리와 저장 장치에서 다양한 시기에 설정되며, 컴퓨터 내 하나 이상의 처리 유닛이나 프로세서에 의해 판독되고 실행될 때 컴퓨터가 본 명세서의 다양한 태양을 포함하는 요소들을 실행하는 동작들을 수행하게 하는 하나 이상의 명령어 세트를 포함한다.
게다가, 실시예들은 정상 작동되는 컴퓨터 및 컴퓨터 시스템의 상황에서 기술되었지만, 다양한 실시예들이 다양한 형태로 프로그램 제품으로 분산될 수 있으며 본 명세서가 실제로 이런 분산을 위해 사용되는 특정 타입의 컴퓨터-판독가능한 매체에 관계없이 동일하게 적용된다.
문맥상 발명의 상세한 설명과 청구항들 도처에서 명백히 다른 의미를 필요로 하는 것이 아니면, "포함하다(comprise)", "포함하는(comprising)" 등의 단어는 배타적이거나 철저한 의미로서가 아니라 포괄적인 의미(즉, "포함하나, 이에 국한되지 않는"의 의미)로 해석될 수 있다. 본 명세서에 사용되는 바와 같이, "연결되는(connected)", "결합되는(coupled)"이란 용어들이나 이들의 임의의 변형은 2 이상의 구성요소 사이의 직접적이거나 간접적인 임의의 연결이나 결합을 의미한다. 구성요소들 사이의 이런 결합이나 연결은 물리적이거나, 논리적이거나, 이들의 조합일 수 있다. 추가로, "본 명세서에서(herein)", "상기(above)", "하기(below)"란 단어들 및 유사한 의미의 단어들은, 본 출원에서 사용될 때, 전체로서의 본 출원을 나타내며 본 출원의 임의의 특정한 부분을 나타내는 것은 아니다. 문맥상 허용되는 경우, 단수 또는 복수를 사용하는 상기 상세한 설명의 단어들은 또한 각각 복수 또는 단수를 포함할 수 있다. 2 이상의 아이템의 리스트와 관련하여 "또는"이란 단어는 그 단어의 다음과 같은 해석들 모두를 포함한다: 리스트 내 아이템의 일부, 리스트 내 모든 아이템 및 리스트 내 아이템들의 임의의 조합.
본 명세서의 실시예들의 상기 상세한 설명은 배타적이거나 상기 개시된 정확한 형태들로 본 발명을 제한하고자 하는 것이 아니다. 본 명세서에 대한 특정한 실시예 및 예들은 예시의 목적으로 앞서 기술되지만, 당업자가 인식할 수 있는 대로 다양한 동등한 변경이 본 명세서의 범위 내에서 가능하다. 예를 들어, 프로세서 또는 블록은 소정의 순서로 제시되지만, 대안적인 실시예가 다른 순서로 단계들을 가진 루틴을 수행할 수 있거나 블록을 가진 시스템을 이용할 수 있고, 일부의 프로세서 또는 블록은 대체물이나 서브-조합을 제공하도록 삭제, 이동, 추가, 세분, 결합 및/또는 변경될 수 있다. 이들 프로세스 또는 블록 각각은 다양한 상이한 방법으로 구현될 수 있다. 또한, 프로세서 또는 블록은 때때로 순차적으로 수행되는 것으로 도시되지만, 그 대신 이런 프로세서 또는 블록은 동시에 수행될 수 있거나, 다른 시기에 수행될 수 있다. 게다가, 본 명세서에 언급된 임의의 특정한 숫자는 단지 예들이고 - 대안적인 구현은 상이한 값이나 범위를 이용할 수 있다.
본 명세서에서 "일실시예(one embodiment)" 또는 "한 실시예(an embodiment)"에 대한 언급은 그 실시예와 함께 기술되는 특정한 특징, 구조 또는 특성이 본 명세서의 적어도 하나의 실시예에 포함됨을 의미한다. 본 명세서의 곳곳에서 "일실시예로"라는 문구의 형태는 반드시 동일한 실시예를 일컫는 모든 것이 아닐뿐 아니라 다른 실시예들과 상호배타적인 별도의 실시예 또는 대안의 실시예인 것도 아니다. 게다가, 일부의 실시예에 의해 나타날 수 있으나 다른 실시예들에 의해서는 그렇지 않을 수 있는 다양한 특징들이 기술된다. 마찬가지로, 일부의 실시예에서는 필요할 수 있으나 다른 실시예에서는 그렇지 않을 수 있는 다양한 요건들이 기술된다.
일반적으로 본 명세서에서 사용되는 용어들은 본 명세서의 문맥 내에서 그리고 각 용어가 사용되는 특정 문맥에서 해당 기술분야의 일반적인 의미들을 가진다. 본 명세서를 기술하는데 사용되는 특정 용어들은 본 명세서의 상세한 설명에 관한 추가 지침을 실행자에게 제공하도록 앞서 기술되거나 상세한 설명의 다른 곳에서 논의된다. 편의상, 특정 용어는 예컨대 대문자, 이탤릭체 및/또는 인용부호를 사용하여 하이라이팅될 수 있다. 하이라이팅의 사용은 한 용어의 범위 및 의미에 전혀 영향을 주지 않는다; 한 용어의 범위 및 의미는 하이라이팅 여부에 관계없이 동일한 문맥에서 동일하다. 동일한 구성요소는 하나 이상의 방식으로 기술될 수 있음이 이해될 것이다.
결과적으로, 대안의 언어 및 동의어는 본 명세서에서 논의되는 임의의 하나 이상의 용어들에 대해 사용될 수 있으나, 한 용어가 본 명세서에서 설명되거나 논의되는지 여부에 따라 임의의 특별한 의미가 정해지는 것은 아니다. 특정한 용어들에 대한 동의어가 제공된다. 하나 이상의 동의어의 기재가 다른 동의어들의 사용을 배제하지 않는다. 본 명세서에서 논의되는 임의의 용어들의 예들을 포함하는 상세한 설명의 곳곳의 예들의 사용은 단지 설명을 위한 것이며, 본 명세서 또는 임의의 예시적인 용어의 범위 및 의미를 더 제한하려는 의도는 아니다. 마찬가지로, 본 명세서는 상세한 설명에 제공된 다양한 실시예들로 제한되지 않는다.
본 명세서의 범위를 추가로 제한하려는 의도 없이, 본 명세서의 실시예들에 따른 기기, 장치, 방법 및 관련 결과물들의 예가 하기에 제공된다. 본 명세서의 범위를 전혀 제한하지 않아야 하는 제목 또는 부제가 독자(reader)의 편의상 예들에서 사용될 수 있음을 유의하자. 달리 정의되지 않으면, 본 명세서에서 사용되는 모든 기술적이고 과학적인 용어들은 본 명세서에 관한 해당 기술분야의 당업자에 의해 공통으로 이해되는 것과 동일한 의미를 가진다. 모순되는 경우, 정의들을 포함하는 본 명세서의 문서가 조절할 것이다.
본 명세서에서 제공되는 명세서의 내용은 반드시 상술한 시스템에만 적용되는 것이 아니라 다른 시스템들에 적용될 수 있다. 첨부 출원 문서에 리스트될 수 있는 임의의 것들을 포함하는 상기 언급된 임의의 특허와 출원 및 다른 참고문헌들은 참조로 본 명세서에 통합된다. 본 명세서의 태양은 필요한 경우 본 명세서의 또 하나의 실시예들을 제공하도록 상술한 다양한 참고문헌들의 시스템, 기능 및 사상을 이용하도록 변경될 수 있다.
첨부 출원 문서에 리스트될 수 있는 임의의 것들을 포함하는 상기 언급된 임의의 특허와 출원 및 다른 참고문헌들은 참조로 본 명세서에 통합된다. 본 명세서의 태양은 필요한 경우 본 명세서의 또 하나의 실시예들을 제공하도록 상술한 다양한 참고문헌들의 시스템, 기능 및 사상을 이용하도록 변경될 수 있다.
이런 변경 및 다른 변경이 상기 상세한 설명에 비추어 본 명세서에서 이루어질 수 있다. 상기 상세한 설명은 본 명세서의 특정 실시예들을 기술하고 고려되는 최상의 모드를 기술하지만, 상술한 내용을 문자로 아무리 상세히 나타내더라도 그 시사된 내용은 많은 방식으로 실행될 수 있다. 시스템의 세부사항은 그 구현의 세부사항에서 상당히 변할 수 있으면서, 본 명세서에 개시된 내용에 의해 여전히 포함될 수 있다. 상술한 바대로, 본 명세서의 특정한 기능이나 태양을 설명할 때 사용되는 특정 용어는 그 용어가 관련되는 본 명세서의 임의의 특정한 특성, 기능 또는 태양으로 제한되도록 본 명세서에서 그 용어가 재정의됨을 의미하는 것으로 간주되지 않아야 한다. 일반적으로, 하기의 청구항들에서 사용되는 용어들은 상기 상세한 설명 부분이 그런 용어를 명시적으로 정의하지 않으면 명세서에서 개시되는 특정 실시예들로 본 명세서를 제한하는 것으로 해석되지 않아야 한다. 따라서, 본 명세서의 실제 범위는 개시된 실시예들뿐 아니라 청구항들 하에서 본 명세서를 실행하거나 구현하는 모든 균등한 방식들을 포함한다.
본 명세서의 특정한 태양은 특정한 청구항의 형태로 하기에 제시되지만, 발명자들은 임의의 수의 청구항의 형태들로 본 명세서의 다양한 태양들을 고려한다. 예를 들어, 본 명세서의 오직 하나의 태양이 미국연방법률(35 U.S.C.§112, ¶6) 하의 기능식 청구항으로 기재되나, 다른 태양도 유사하게 수단-기능 청구항 또는 컴퓨터 판독가능 매체로 구현되는 등의 다른 형태로 구현될 수 있다(미국연방법률(35 U.S.C.§112, ¶6)하에서 다루어지도록 의도되는 임의의 청구항들은 "~를 위한 수단(means for)"이란 단어들로 시작할 것이다). 따라서, 출원인은 본 명세서의 다른 태양들에 대한 이런 추가적인 청구항 형태를 따르는 출원을 출원한 후 추가 청구항들을 추가할 권리를 유보한다.
본 명세서의 몇몇 부분들은 알고리즘 또는 정보에 대한 동작의 기호적 표현으로 본 발명의 실시예들을 설명한다. 이러한 알고리즘적 설명이나 표현은 본 기술분야에서 통상의 지식을 가진 자들에게 효과적으로 그들의 작업의 실체를 전달하기 위하여 데이터 프로세싱 기술분야에서 통상의 지식을 가진 자에 의하여 공통적으로 사용되는 것이다. 기능적으로, 계산적으로 또는 논리적으로 설명되고 있는 이들 동작은 컴퓨터 프로그램 또는 등가의 전기 회로, 마이크로 코드 등에 의해 구현되는 것으로 이해된다. 또한, 종종 이러한 동작의 배열은 일반성의 손실 없이 모듈로 언급될 수 있는 것으로 확인된다. 기술된 동작 및 그와 관련된 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 결합으로 구현될 수 있을 것이다.
본 명세서에 기술된 임의의 단계들, 동작들 또는 프로세스들은 하나 이상의 하드웨어 또는 소프트웨어 모듈들에 의해 또는 이들과 다른 장치들의 결합에 의해 수행되거나 구현될 수 있다. 일실시예에서, 소프트웨어 모듈은 기술된 단계들, 동작들 또는 프로세스들 일부 또는 전부를 수행하기 위하여 컴퓨터 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능한 매체를 포함하는 컴퓨터 프로그램 제품으로 구현된다.
본 발명에 기술된 실시예들은 또한 본 명세서의 동작들을 수행하기 위한 장치와 관련될 수 있다. 이 장치는 요청된 목적을 위하여 구체적으로 구성될 수 있고/있거나 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨팅 장치를 포함할 수 있다. 이런 컴퓨터 프로그램은 비-일시적 유형의 컴퓨터 판독가능한 저장 매체 또는 전자 명령어를 저장하기에 적절한 임의의 타입의 매체에 저장될 수 있고 컴퓨터 시스템 버스에 결합될 수 있다. 게다가, 본 명세서에서 언급된 임의의 컴퓨팅 시스템들은 단일 프로세서를 포함할 수 있거나, 증가한 컴퓨팅 능력을 위해 다중 프로세서 설계를 채용한 구조일 수 있다.
또한, 본 발명의 실시예들은 본 명세서에 기술된 컴퓨팅 프로세스로 제조된 제품에 관한 것일 수 있다. 이런 제품은 컴퓨팅 프로세스의 결과로 생성된 정보를 포함할 수 있는데, 여기서 정보는 비일시적 유형의 컴퓨터 판독가능한 저장 매체에 저장되며, 본 명세서에 기술된 컴퓨터 프로그램 제품 또는 다른 데이터 조합의 임의의 실시예를 포함할 수 있다.

Claims (20)

  1. 에지 구성에 기반하여 유연한 문장 구문을 정의하는 개발자 인터페이스를 제공하는 단계;
    개발자가 유연한 문장 구문 내의 특정 에지의 제1 속성 표현을 선택하기 위하여 개발자 인터페이스에서 하나 이상의 에지 토큰을 생성하는 단계;
    개발자가 유연한 문장 구문 내의 특정 에지의 하나 이상의 시제를 선택하기 위하여 개발자 인터페이스에서 시제 옵션을 제공하는 단계; 및
    특정 에지에 기반하여, 개발자가 유연한 문장 구문을 결정하기 위하여 복수의 관련 유연한 문장을 생성하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서,
    개발자가 유연한 문장 구문 내의 특정 대상의 제2 속성 표현을 선택하기 위하여 개발자 인터페이스에서 하나 이상의 대상 토큰을 생성하는 단계를 더 포함하는 방법.
  3. 청구항 2에 있어서,
    개발자가 하나 이상의 추가적인 속성 표현을 추가하여 유연한 문장 구문 내의 특정 에지 및/또는 특정 대상의 속성을 커스터마이즈하기 위하여 개발자 인터페이스에서 속성-표현 옵션을 제공하는 단계를 더 포함하는 방법.
  4. 청구항 3에 있어서,
    개발자가 유연한 문장 구문을 구성하기 위하여 개발자 인터페이스에서 복수의 에지 구성을 생성하는 단계를 더 포함하고,
    에지 구성은 일대일, 객체 제목 없이 일대일, 일대이, 일대다, 객체 제목 없이 일대이/다, 이대일 또는 다대일을 포함하는 방법.
  5. 청구항 4에 있어서,
    개발자 인터페이스에서 하나 이상의 통합 타입을 생성하는 단계를 더 포함하고,
    통합 타입은 갤러리 타입, 표, 리스트 및 지도를 포함하는 방법.
  6. 청구항 5에 있어서,
    개발자가 선택하기 위하여 특정 에지 및/또는 특정 대상의 복수의 통합을 자동으로 생성하는 단계를 더 포함하는 방법.
  7. 청구항 6에 있어서,
    자동으로 생성된 문장의 복수의 사용자 인터페이스에서의 디스플레이를 시뮬레이션하는 미리보기 옵션을 생성하는 단계를 더 포함하고,
    복수의 사용자 인터페이스는 모바일 웹, iOS, 안드로이드, 데스크탑 웹 및/또는 윈도우 OS, 리눅스 또는 유닉스에 존재하는 애플리케이션을 포함하는 방법.
  8. 청구항 1에 있어서,
    복수의 유연한 문장은 그들의 대응하는 커버리지 퍼센티지에 기반한 우선순위와 함께 개발자 인터페이스에 표시되고;
    커버리지 퍼센티지는 기정의된 기간 내에 수신된 노출수에 의해 결정되고, 노출수는 총 노출수, 총 리퍼럴(referrals), 피드 노출수, 피드 리퍼럴, 지금 이 순간(ticker) 노출수 또는 지금 이 순간 리퍼럴을 포함하는 방법.
  9. 청구항 8에 있어서,
    하나 이상의 에지 토큰이 개발자에 의하여 선택될 때, 네트워크 I/O 지연을 최소화하기 위하여 관련 유연한 문장의 그룹을 개발자의 장치에 프리-페치(pre-fetching)하는 단계를 더 포함하고,
    유연한 문장의 그룹은 기결정된 임계치보다 높은 커버리지 퍼센티지를 가지는 방법.
  10. 청구항 1에 있어서,
    하나 이상의 에지 토큰은 체크 박스 리스트, 드롭 다운 메뉴, 선택 리스트, 버튼의 리스트 또는 멀티 레이어 레벨 메뉴(multiple layered menu levels)로 제공되는 방법.
  11. 컴퓨터 시스템; 및
    컴퓨터 시스템에서 구현되는, 컴퓨터-생성된 출력을 제공하는 애플리케이션 프로그램을 포함하고,
    컴퓨터 시스템은:
    에지 구성에 기반하여 유연한 문장 구문을 정의하는 개발자 인터페이스를 제공하고;
    개발자가 유연한 문장 구문 내의 특정 에지의 제1 속성 표현을 선택하기 위하여 개발자 인터페이스에서 하나 이상의 에지 토큰을 생성하고;
    개발자가 유연한 문장 구문 내의 특정 에지의 하나 이상의 시제를 선택하기 위하여 개발자 인터페이스에서 시제 옵션을 제공하고;
    특정 에지에 기반하여, 개발자가 유연한 문장 구문을 결정하기 위하여 복수의 관련 유연한 문장을 생성하도록 구성되는 네트워킹 시스템.
  12. 청구항 11에 있어서,
    컴퓨터 시스템은 개발자가 유연한 문장 구문 내의 특정 대상의 제2 속성 표현을 선택하기 위하여 개발자 인터페이스에서 하나 이상의 대상 토큰을 생성하도록 구성되는 네트워킹 시스템.
  13. 청구항 12에 있어서,
    컴퓨터 시스템은 개발자가 유연한 문장 구문을 구성하기 위하여 개발자 인터페이스에서 복수의 에지 구성을 생성하도록 구성되고,
    에지 구성은 일대일, 객체 제목 없이 일대일, 일대이, 일대다, 객체 제목 없이 일대이/다, 이대일 또는 다대일을 포함하는 네트워킹 시스템.
  14. 청구항 13에 있어서,
    컴퓨터 시스템은 개발자가 유연한 문장 구문을 구성하기 위하여 개발자 인터페이스에서 복수의 에지 구성을 생성하도록 구성되고,
    에지 구성은 일대일, 객체 제목 없이 일대일, 일대이, 일대다, 객체 제목 없이 일대이/다, 이대일 및/또는 다대일을 포함하는 네트워킹 시스템.
  15. 청구항 14에 있어서,
    컴퓨터 시스템은 개발자가 유연한 문장 구문을 발행하기 위하여 개발자 인터페이스에서 하나 이상의 통합 타입을 생성하도록 구성되고,
    통합 타입은 갤러리 타입, 표, 리스트 및 지도를 포함하는 네트워킹 시스템.
  16. 청구항 15에 있어서,
    컴퓨터 시스템은 개발자가 선택하기 위하여 특정 에지 및/또는 특정 대상의 복수의 통합을 자동으로 생성하도록 구성되는 네트워킹 시스템.
  17. 유연한 문장 구문으로부터 에지 구성을 해석하는 단계;
    에지 구성과 관련된 소셜 네트워킹 시스템의 소셜 그래프로부터 에지를 추출하는 단계;
    에지의 유연한 문장 표현을 발행할 포럼을 결정하는 단계; 및
    포럼에 기반하여 및 유연한 문장 구문 내의 에지 토큰과 대상 토큰에 기반하여 유연한 문장 표현을 렌더링하는 단계를 포함하는 방법.
  18. 청구항 17에 있어서,
    에지의 시간적 마커를 결정하는 단계를 더 포함하고,
    유연한 문장 표현을 렌더링하는 단계는 시간적 마커에 기반하여 에지 토큰의 동사 시제를 렌더링하는 단계를 포함하는 방법.
  19. 청구항 17에 있어서,
    에지를 추출하는 단계는 에지 구성과 관련된 소셜 그래프로부터 에지의 통합을 추출하는 단계를 포함하고,
    유연한 문장 표현을 렌더링하는 단계는 요약 문장을 렌더링하기 위하여 에지 구성에 기반하여 유연한 문장 표현을 렌더링하는 단계를 포함하는 방법.
  20. 청구항 17에 있어서,
    유연한 문장 표현을 렌더링하는 단계는 대상 토큰 또는 에지 토큰의 속성에 기반하여 수적 함수를 계산하는 단계를 포함하는 방법.
KR1020157032938A 2013-04-23 2014-04-04 소셜 네트워킹 시스템에서 유연한 문장의 생성을 위한 방법 및 시스템 KR101667220B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/868,917 US9110889B2 (en) 2013-04-23 2013-04-23 Methods and systems for generation of flexible sentences in a social networking system
US13/868,917 2013-04-23
PCT/US2014/033052 WO2014176016A1 (en) 2013-04-23 2014-04-04 Methods and systems for generation of flexible sentences in a social networking system

Publications (2)

Publication Number Publication Date
KR20160005048A true KR20160005048A (ko) 2016-01-13
KR101667220B1 KR101667220B1 (ko) 2016-10-18

Family

ID=51729677

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157032938A KR101667220B1 (ko) 2013-04-23 2014-04-04 소셜 네트워킹 시스템에서 유연한 문장의 생성을 위한 방법 및 시스템

Country Status (10)

Country Link
US (4) US9110889B2 (ko)
JP (1) JP6139021B2 (ko)
KR (1) KR101667220B1 (ko)
CN (1) CN105359130B (ko)
AU (1) AU2014257424B2 (ko)
BR (1) BR112015027010A8 (ko)
CA (1) CA2909079C (ko)
IL (1) IL242033A (ko)
MX (1) MX362590B (ko)
WO (1) WO2014176016A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081512B1 (ko) * 2018-09-14 2020-02-25 울산대학교 산학협력단 비유법 문장 생성 장치 및 방법
KR102218973B1 (ko) * 2019-12-31 2021-02-22 이화여자대학교 산학협력단 상호작용 네트워크 제공 방법 및 장치

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9110889B2 (en) 2013-04-23 2015-08-18 Facebook, Inc. Methods and systems for generation of flexible sentences in a social networking system
US9606987B2 (en) 2013-05-06 2017-03-28 Facebook, Inc. Methods and systems for generation of a translatable sentence syntax in a social networking system
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN105453026A (zh) 2013-08-06 2016-03-30 苹果公司 基于来自远程设备的活动自动激活智能响应
US10007954B2 (en) * 2013-08-23 2018-06-26 International Business Machines Corporation Managing an initial post on a website
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9348809B1 (en) * 2015-02-02 2016-05-24 Linkedin Corporation Modifying a tokenizer based on pseudo data for natural language processing
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10719667B1 (en) * 2015-06-30 2020-07-21 Google Llc Providing a natural language based application program interface
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
DE112016004863T5 (de) * 2015-10-21 2018-07-19 Google Llc Parametersammlung und automatische Dialogerzeugung in Dialogsystemen
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10021059B1 (en) * 2016-05-09 2018-07-10 Sanjay K. Rao Messaging content and ad insertion in channels, group chats, and social networks
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10083451B2 (en) 2016-07-08 2018-09-25 Asapp, Inc. Using semantic processing for customer support
CN109792402B (zh) 2016-07-08 2020-03-06 艾赛普公司 自动响应用户的请求
US10109275B2 (en) 2016-12-19 2018-10-23 Asapp, Inc. Word hash language model
EP3552114A4 (en) * 2017-02-08 2020-05-20 Semantic Machines, Inc. NATURAL LANGUAGE CONTENT GENERATOR
WO2018156978A1 (en) 2017-02-23 2018-08-30 Semantic Machines, Inc. Expandable dialogue system
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10838746B2 (en) 2017-05-18 2020-11-17 Aiqudo, Inc. Identifying parameter values and determining features for boosting rankings of relevant distributable digital assistant operations
US11520610B2 (en) 2017-05-18 2022-12-06 Peloton Interactive Inc. Crowdsourced on-boarding of digital assistant operations
US11043206B2 (en) 2017-05-18 2021-06-22 Aiqudo, Inc. Systems and methods for crowdsourced actions and commands
US11340925B2 (en) 2017-05-18 2022-05-24 Peloton Interactive Inc. Action recipes for a crowdsourced digital assistant system
US11056105B2 (en) * 2017-05-18 2021-07-06 Aiqudo, Inc Talk back from actions in applications
US10497004B2 (en) 2017-12-08 2019-12-03 Asapp, Inc. Automating communications using an intent classifier
US10489792B2 (en) 2018-01-05 2019-11-26 Asapp, Inc. Maintaining quality of customer support messages
WO2019152511A1 (en) 2018-01-30 2019-08-08 Aiqudo, Inc. Personalized digital assistant device and related methods
US11145291B2 (en) * 2018-01-31 2021-10-12 Microsoft Technology Licensing, Llc Training natural language system with generated dialogues
US10861440B2 (en) * 2018-02-05 2020-12-08 Microsoft Technology Licensing, Llc Utterance annotation user interface
US10210244B1 (en) * 2018-02-12 2019-02-19 Asapp, Inc. Updating natural language interfaces by processing usage data
US11133001B2 (en) * 2018-03-20 2021-09-28 Microsoft Technology Licensing, Llc Generating dialogue events for natural language system
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) * 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10169315B1 (en) 2018-04-27 2019-01-01 Asapp, Inc. Removing personal information from text using a neural network
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11087748B2 (en) * 2018-05-11 2021-08-10 Google Llc Adaptive interface in a voice-activated network
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11216510B2 (en) 2018-08-03 2022-01-04 Asapp, Inc. Processing an incomplete message with a neural network to generate suggested messages
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10747957B2 (en) 2018-11-13 2020-08-18 Asapp, Inc. Processing communications using a prototype classifier
US11551004B2 (en) 2018-11-13 2023-01-10 Asapp, Inc. Intent discovery with a prototype classifier
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
KR20210033837A (ko) 2019-09-19 2021-03-29 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11425064B2 (en) 2019-10-25 2022-08-23 Asapp, Inc. Customized message suggestion with user embedding vectors
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11159458B1 (en) 2020-06-10 2021-10-26 Capital One Services, Llc Systems and methods for combining and summarizing emoji responses to generate a text reaction from the emoji responses
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110276631A1 (en) * 2010-05-04 2011-11-10 Schmitt Steven J Systems and methods for accessing information from multiple networks, social graphs, and content sites
US8180804B1 (en) * 2010-04-19 2012-05-15 Facebook, Inc. Dynamically generating recommendations based on social graph information
US8386960B1 (en) * 2008-08-29 2013-02-26 Adobe Systems Incorporated Building object interactions
US20140149448A1 (en) * 2012-11-27 2014-05-29 Linkedin Corporation Unified social content platform

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659665A (en) * 1994-12-08 1997-08-19 Lucent Technologies Inc. Method and apparatus for including speech recognition capabilities in a computer system
JPH08185404A (ja) * 1994-12-28 1996-07-16 Canon Inc 自然言語処理システム及びその方法
US6025836A (en) 1997-07-23 2000-02-15 Novell, Inc. Method and apparatus for generating object oriented user interfaces
US6744860B1 (en) * 1998-12-31 2004-06-01 Bell Atlantic Network Services Methods and apparatus for initiating a voice-dialing operation
US6671672B1 (en) * 1999-03-30 2003-12-30 Nuance Communications Voice authentication system having cognitive recall mechanism for password verification
US6408272B1 (en) * 1999-04-12 2002-06-18 General Magic, Inc. Distributed voice user interface
DE10015960C2 (de) * 2000-03-30 2003-01-16 Micronas Munich Gmbh Spracherkennungsverfahren und Spracherkennungsvorrichtung
US7865358B2 (en) 2000-06-26 2011-01-04 Oracle International Corporation Multi-user functionality for converting data from a first form to a second form
EP1168736A1 (en) * 2000-06-30 2002-01-02 Alcatel Telecommunication system and method with a speech recognizer
US6983238B2 (en) 2001-02-07 2006-01-03 American International Group, Inc. Methods and apparatus for globalizing software
US6701293B2 (en) * 2001-06-13 2004-03-02 Intel Corporation Combining N-best lists from multiple speech recognizers
US7650296B1 (en) * 2001-08-31 2010-01-19 Siebel Systems, Inc. Configurator using structure and rules to provide a user interface
US20040034520A1 (en) 2002-03-04 2004-02-19 Irene Langkilde-Geary Sentence generator
JP4224250B2 (ja) * 2002-04-17 2009-02-12 パイオニア株式会社 音声認識装置、音声認識方法および音声認識プログラム
US7302383B2 (en) * 2002-09-12 2007-11-27 Luis Calixto Valles Apparatus and methods for developing conversational applications
TW200409525A (en) * 2002-11-26 2004-06-01 Lite On Technology Corp Voice identification method for cellular phone and cellular phone with voiceprint password
US7222072B2 (en) * 2003-02-13 2007-05-22 Sbc Properties, L.P. Bio-phonetic multi-phrase speaker identity verification
US7213201B2 (en) * 2003-03-03 2007-05-01 International Business Machines Corporation Meta editor for structured documents
WO2005033909A2 (en) * 2003-10-08 2005-04-14 Any Language Communications Inc. Relationship analysis system and method for semantic disambiguation of natural language
US20050165607A1 (en) * 2004-01-22 2005-07-28 At&T Corp. System and method to disambiguate and clarify user intention in a spoken dialog system
US8412521B2 (en) * 2004-08-20 2013-04-02 Multimodal Technologies, Llc Discriminative training of document transcription system
KR100679043B1 (ko) * 2005-02-15 2007-02-05 삼성전자주식회사 음성 대화 인터페이스 장치 및 방법
US8041570B2 (en) * 2005-05-31 2011-10-18 Robert Bosch Corporation Dialogue management using scripts
EP1920393A2 (en) * 2005-07-22 2008-05-14 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US7672865B2 (en) * 2005-10-21 2010-03-02 Fair Isaac Corporation Method and apparatus for retail data mining using pair-wise co-occurrence consistency
US7603275B2 (en) * 2005-10-31 2009-10-13 Hitachi, Ltd. System, method and computer program product for verifying an identity using voiced to unvoiced classifiers
US7747427B2 (en) * 2005-12-05 2010-06-29 Electronics And Telecommunications Research Institute Apparatus and method for automatic translation customized for documents in restrictive domain
US7552047B2 (en) 2006-05-02 2009-06-23 International Business Machines Corporation Instance-based sentence boundary determination by optimization
JP5074751B2 (ja) * 2006-12-07 2012-11-14 キヤノン株式会社 編集装置、編集装置の制御方法、およびプログラム
US8954500B2 (en) * 2008-01-04 2015-02-10 Yahoo! Inc. Identifying and employing social network relationships
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8503686B2 (en) * 2007-05-25 2013-08-06 Aliphcom Vibration sensor and acoustic voice activity detection system (VADS) for use with electronic systems
GB2450886B (en) * 2007-07-10 2009-12-16 Motorola Inc Voice activity detector and a method of operation
WO2009032287A1 (en) * 2007-09-07 2009-03-12 Enhanced Medical Decisions, Inc. Management and processing of information
US8082151B2 (en) * 2007-09-18 2011-12-20 At&T Intellectual Property I, Lp System and method of generating responses to text-based messages
US9602605B2 (en) 2007-10-26 2017-03-21 Facebook, Inc. Sharing digital content on a social network
US8271260B2 (en) 2007-12-05 2012-09-18 Facebook, Inc. Community translation on a social network
US8862622B2 (en) * 2007-12-10 2014-10-14 Sprylogics International Corp. Analysis, inference, and visualization of social networks
US20090193344A1 (en) * 2008-01-24 2009-07-30 Sony Corporation Community mood representation
US7925743B2 (en) * 2008-02-29 2011-04-12 Networked Insights, Llc Method and system for qualifying user engagement with a website
GB2458461A (en) * 2008-03-17 2009-09-23 Kai Yu Spoken language learning system
US8504365B2 (en) * 2008-04-11 2013-08-06 At&T Intellectual Property I, L.P. System and method for detecting synthetic speaker verification
US8145482B2 (en) * 2008-05-25 2012-03-27 Ezra Daya Enhancing analysis of test key phrases from acoustic sources with key phrase training models
US9183513B2 (en) * 2008-05-27 2015-11-10 Intel Corporation Aggregration, standardization and extension of social networking contacts to enhance a television consumer experience
KR101056511B1 (ko) * 2008-05-28 2011-08-11 (주)파워보이스 실시간 호출명령어 인식을 이용한 잡음환경에서의음성구간검출과 연속음성인식 시스템
US8417513B2 (en) * 2008-06-06 2013-04-09 Radiant Logic Inc. Representation of objects and relationships in databases, directories, web services, and applications as sentences as a method to represent context in structured data
US8676586B2 (en) * 2008-09-16 2014-03-18 Nice Systems Ltd Method and apparatus for interaction or discourse analytics
US9922640B2 (en) * 2008-10-17 2018-03-20 Ashwin P Rao System and method for multimodal utterance detection
US20100100371A1 (en) 2008-10-20 2010-04-22 Tang Yuezhong Method, System, and Apparatus for Message Generation
KR101519104B1 (ko) * 2008-10-30 2015-05-11 삼성전자 주식회사 목적음 검출 장치 및 방법
US20100191567A1 (en) * 2009-01-26 2010-07-29 At&T Intellectual Property I, L.P. Method and apparatus for analyzing rhetorical content
US8370126B2 (en) 2009-01-30 2013-02-05 Facebook, Inc. Incorporation of variables into textual content
US20100199184A1 (en) * 2009-01-30 2010-08-05 Yahoo! Inc. Prioritizing vitality events in a social networking system
US9858925B2 (en) * 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8719353B2 (en) * 2009-09-01 2014-05-06 Seaseer Research And Development Llc Systems and methods for visual messaging
US8707172B2 (en) 2009-11-12 2014-04-22 International Business Machines Corporation Internationalization technology
US9009152B2 (en) * 2010-02-04 2015-04-14 Yahoo! Inc. Smart widgets
US20110208822A1 (en) * 2010-02-22 2011-08-25 Yogesh Chunilal Rathod Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine
US9002700B2 (en) * 2010-05-13 2015-04-07 Grammarly, Inc. Systems and methods for advanced grammar checking
US20120016661A1 (en) * 2010-07-19 2012-01-19 Eyal Pinkas System, method and device for intelligent textual conversation system
US8972498B2 (en) * 2010-08-24 2015-03-03 Yahoo! Inc. Mobile-based realtime location-sensitive social event engine
CN102741918B (zh) * 2010-12-24 2014-11-19 华为技术有限公司 用于话音活动检测的方法和设备
US20140074629A1 (en) * 2011-03-29 2014-03-13 Yogesh Chunilal Rathod Method and system for customized, contextual, dynamic & unified communication, zero click advertisement, dynamic e-commerce and prospective customers search engine
US8538742B2 (en) 2011-05-20 2013-09-17 Google Inc. Feed translation for a social network
US8893008B1 (en) 2011-07-12 2014-11-18 Relationship Science LLC Allowing groups expanded connectivity to entities of an information service
US8660847B2 (en) * 2011-09-02 2014-02-25 Microsoft Corporation Integrated local and cloud based speech recognition
WO2013043160A1 (en) * 2011-09-20 2013-03-28 Hewlett-Packard Development Company, L.P. Text summarization
US8909515B2 (en) 2011-09-21 2014-12-09 Facebook, Inc. Dynamic sentence formation from structured objects and actions in a social networking system
US9032290B2 (en) * 2011-09-21 2015-05-12 Facebook, Inc. Tool for creating structured objects and actions on a social networking system
US8340975B1 (en) * 2011-10-04 2012-12-25 Theodore Alfred Rosenberger Interactive speech recognition device and system for hands-free building control
WO2013078388A1 (en) * 2011-11-21 2013-05-30 Robert Bosch Gmbh Methods and systems for adapting grammars in hybrid speech recognition engines for enhancing local sr performance
US8825020B2 (en) * 2012-01-12 2014-09-02 Sensory, Incorporated Information access and device control using mobile phones and audio in the home environment
US9093076B2 (en) * 2012-04-30 2015-07-28 2236008 Ontario Inc. Multipass ASR controlling multiple applications
US8280888B1 (en) * 2012-05-04 2012-10-02 Pearl.com LLC Method and apparatus for creation of web document titles optimized for search engines
TWI474317B (zh) * 2012-07-06 2015-02-21 Realtek Semiconductor Corp 訊號處理裝置以及訊號處理方法
US20140046976A1 (en) * 2012-08-11 2014-02-13 Guangsheng Zhang Systems, methods, and user interface for effectively presenting information
US8983836B2 (en) * 2012-09-26 2015-03-17 International Business Machines Corporation Captioning using socially derived acoustic profiles
US9043703B2 (en) * 2012-10-16 2015-05-26 Facebook, Inc. Voice commands for online social networking systems
US8996372B1 (en) * 2012-10-30 2015-03-31 Amazon Technologies, Inc. Using adaptation data with cloud-based speech recognition
US20140149856A1 (en) * 2012-11-27 2014-05-29 Linkedln Corporation Unified social content platform
US10258881B2 (en) * 2012-12-26 2019-04-16 Sony Interactive Entertainment America Llc Systems and methods for tagging content of shared cloud executed mini-games and tag sharing controls
US9349386B2 (en) * 2013-03-07 2016-05-24 Analog Device Global System and method for processor wake-up based on sensor data
US9361885B2 (en) * 2013-03-12 2016-06-07 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US9201860B1 (en) * 2013-03-12 2015-12-01 Guangsheng Zhang System and methods for determining sentiment based on context
US9312826B2 (en) * 2013-03-13 2016-04-12 Kopin Corporation Apparatuses and methods for acoustic channel auto-balancing during multi-channel signal extraction
US9110889B2 (en) 2013-04-23 2015-08-18 Facebook, Inc. Methods and systems for generation of flexible sentences in a social networking system
US8768687B1 (en) * 2013-04-29 2014-07-01 Google Inc. Machine translation of indirect speech
US9606987B2 (en) 2013-05-06 2017-03-28 Facebook, Inc. Methods and systems for generation of a translatable sentence syntax in a social networking system
MY179900A (en) * 2013-08-29 2020-11-19 Panasonic Ip Corp America Speech recognition method and speech recognition apparatus
US9373321B2 (en) * 2013-12-02 2016-06-21 Cypress Semiconductor Corporation Generation of wake-up words

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386960B1 (en) * 2008-08-29 2013-02-26 Adobe Systems Incorporated Building object interactions
US8180804B1 (en) * 2010-04-19 2012-05-15 Facebook, Inc. Dynamically generating recommendations based on social graph information
US20110276631A1 (en) * 2010-05-04 2011-11-10 Schmitt Steven J Systems and methods for accessing information from multiple networks, social graphs, and content sites
US20140149448A1 (en) * 2012-11-27 2014-05-29 Linkedin Corporation Unified social content platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081512B1 (ko) * 2018-09-14 2020-02-25 울산대학교 산학협력단 비유법 문장 생성 장치 및 방법
KR102218973B1 (ko) * 2019-12-31 2021-02-22 이화여자대학교 산학협력단 상호작용 네트워크 제공 방법 및 장치

Also Published As

Publication number Publication date
JP6139021B2 (ja) 2017-05-31
WO2014176016A1 (en) 2014-10-30
KR101667220B1 (ko) 2016-10-18
US9619456B2 (en) 2017-04-11
MX2015014916A (es) 2016-06-24
US20170315993A1 (en) 2017-11-02
BR112015027010A8 (pt) 2020-01-14
MX362590B (es) 2019-01-25
US20170161265A1 (en) 2017-06-08
US10157179B2 (en) 2018-12-18
IL242033A (en) 2017-07-31
AU2014257424A1 (en) 2015-11-05
US9740690B2 (en) 2017-08-22
CA2909079A1 (en) 2014-10-30
CN105359130B (zh) 2018-09-28
US20150242385A1 (en) 2015-08-27
AU2014257424B2 (en) 2016-10-13
CN105359130A (zh) 2016-02-24
US20140316766A1 (en) 2014-10-23
CA2909079C (en) 2016-10-04
JP2016524207A (ja) 2016-08-12
BR112015027010A2 (pt) 2017-07-25
US9110889B2 (en) 2015-08-18

Similar Documents

Publication Publication Date Title
KR101667220B1 (ko) 소셜 네트워킹 시스템에서 유연한 문장의 생성을 위한 방법 및 시스템
US10430520B2 (en) Methods and systems for generation of a translatable sentence syntax in a social networking system
US9990679B2 (en) Implicit social graph connections
US9450771B2 (en) Determining information inter-relationships from distributed group discussions
JP6184967B2 (ja) ソーシャル・ネットワーク・グループに関連するコンテンツ項目のマップ上への表示
US10432574B2 (en) Managing for-sale group postings
US20190014173A1 (en) Synchronizing Conversation Threads Corresponding to a Common Content Item
US20150317945A1 (en) Systems and methods for generating tinted glass effect for interface controls and elements
US20190347702A1 (en) Managing commerce-related communications within a social networking system
US20170199897A1 (en) Inferring qualities of a place
US9081833B1 (en) Providing a tooltip based on search results
JP2021509493A (ja) 複数のデバイスにわたるコンテンツを提供すること

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant