KR20140135100A - 시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법 - Google Patents

시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법 Download PDF

Info

Publication number
KR20140135100A
KR20140135100A KR1020140053545A KR20140053545A KR20140135100A KR 20140135100 A KR20140135100 A KR 20140135100A KR 1020140053545 A KR1020140053545 A KR 1020140053545A KR 20140053545 A KR20140053545 A KR 20140053545A KR 20140135100 A KR20140135100 A KR 20140135100A
Authority
KR
South Korea
Prior art keywords
service
user
ontology
services
query
Prior art date
Application number
KR1020140053545A
Other languages
English (en)
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 삼성전자주식회사
Priority to US14/276,451 priority Critical patent/US20140337372A1/en
Publication of KR20140135100A publication Critical patent/KR20140135100A/ko

Links

Images

Classifications

    • G06F17/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

프로그램 제공 방법을 개시한다. 본 발명의 일 실시 예에 따른 프로그램 제공 방법은, 사용자의 질의를 수신하는 단계와, 상기 사용자의 질의를 시맨틱 분석하는 단계와, 의도 그래프를 이용하여 상기 사용자의 의도를 판단하는 단계와, 상기 판단된 의도에 기초하여 적어도 하나의 서비스를 추천하는 단계와, 상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스를 매쉬업하는 단계와, 상기 매쉬업 결과로 생성된 프로그램을 제공하는 단계를 포함한다.

Description

시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법{METHOD FOR PROVIDING PROGRAM USING SEMANTIC MASHUP TECHNOLOGY}
본 발명은 새로운 애플리케이션을 만드는 매쉬업 기술 분야에 관한 것이다. 좀더 상세하게는, 프로그램 개발자의 질의를 기초로 하여 여러 서비스를 매쉬업하여 새로운 애플리케이션을 만들 수 있는 매쉬업 기술에 대한 것이다.
1) 의도 파악 기술
프로그램 개발 환경에서, 개발자의 의도를 제대로 파악하는 기술은 개발의 생산성을 향상시키기 위해서 매우 중요한 요소이다. 서비스를 매쉬업하여 프로그램을 개발하는 환경에서 의도파악에 대한 직접적인 연구는 없었지만 정보 검색 분야에서 참조할만한 연구가 존재한다.
유사한 (웹)검색 분야에서는, TV앱 개발자들의 검색 로그 (search log)를 coarse-grained 기법 그리고 fine-grained 기법으로 분류한 사례가 있다. Border[i-1]은 웹 TV앱 개발자의 의도를 navigational, informational, transaction로 나누는 것을 제안하였고, TV앱 개발자 검색 목적에 관련된 다양한 연구들 [i-2, 3]들을 파생시켰다. 이중 Rose[i-2]은 Broder의 분류체계(taxonomy)를 더욱 세분화환 분류체계를 제안하였다. Strohmaier[i-5]는 검색 로그의 질의에서 동사의 존재 유무에 따라 명시적 의도(explicit intentional query)와 암묵적 의도 질의(implicit intentional query)의 범주로 나누고, n-gram과 품사 자질을 이용하여 두 범주로 질의를 분류하였으며, Shen[i-4]은 웹 검색 결과를 이용하여 질의를 67개의 주제 카테고리 (topic category)로 분류하는 기법을 제안한 바 있다.
특히, TV앱 개발자의 질의/실제 클릭한 웹사이트 사이의 차이를 topic transition map (TTM)으로 표현하고 복수 개의 주제(혹은 토픽)을 랭킹 시 고려하여 검색결과의 품질을 높인 경우가 있는데, 이 경우 ODP(open directory project ? www.dmoz.org)를 사용하였다 [i-9].
보다 최근에는 개체 (entity)를 포함하는 질의로부터 관련된 action을 추정하는 방법 [i-6]이 제안되었는데, 그래프 모델 (graph model)을 기반으로 한 확률 추론을 통해 개체를 통해 수행될 수 있는 동사구 수준의 액션(action)을 찾을 수 있다. (예, “reading reviews, watching demo videos, and finding the best price online” 등)
그러나, 프로그램 개발자 의도를 파악하기 위한 연구는 전무하며, 질의-의도-서비스를 피드백으로 연결하는 시도도 없다.
2) 시맨틱 서비스 매칭 기술
서비스 조합 또는 매쉬업 기술은, 여러 단위 서비스(프로그램)들을 조합하여 새로운 응용 서비스를 만들어내는 기술이다. 서비스 매쉬업 시 매끄러운 서비스 연결을 위한 연관성(상호연결성) 계산에는 기본적으로 웹서비스의 정보가 이용된다. 현재 인터넷에서 이용되고 있는 웹서비스의 형태는 크게 WSDL(Web Services Descrip-tion Language) 기반의 웹서비스와 RESTful 서비스로 나뉜다. WSDL 기반의 웹서비스는 WSDL이라는 표준 양식에 따라 서비스를 명세하여 *.wsdl을 제공하고 있으나, 명세 내용이 서비스의 기능적인 특성 (서비스 이름, 서비스 카테고리, 서비스 제공자, 서비스 명세, 서비스 목표, 인터페이스 방법/내용)만을 포함하고 있다. 따라서 기존의 WSDL 기반의 웹서비스들의 매칭 기술에서는 주로 인터페이스 (파라미터 포함) 정보만을 비교하여 서비스 간 상호연결성을 보장하기 위한 정적/동적 매칭 방법을 제공하고 있다 (선행특허/논문 기술분석서 참조). 또한 현재 가장 널리 이용되고 있는 RESTful 서비스들은 웹에 사용법과 내용이 공개되어 있으나 비표준인 관계로 제공하는 측에 따라 그 표현과 설명에 일관성과 통일성이 없다. 이렇게 통일되지 않은 형식의 서비스들을 컴퓨터가 알고리즘에 의해 자동으로 상호 대체하거나 연결한다는 것은 불가능하다. 이에, WSMO[j-1], OWL-S[j-2], SAWSDL[j-3] 연구들에서는 이들의 기능적, 비기능적 정보를 시맨틱 모델링하여 이러한 상호이질성을 극복하여 서비스 처리 (검색, 매칭, 중재 등)를 자동화하려는 노력을 기울이고 있다. 그러나, 상기 연구들은 기존의 웹서비스들에는 적용할 수 없다는 문제가 있다. 새로운 서비스를 만들 경우에만 적용 가능하기 때문이다.
또한, 현재 대부분의 응용에서 연결 가능한 서비스들의 조합이 설계 단계에 확정되어 예외 상황에서 동적 대체가 어려우며, 이를 동적으로 가능하게 하려는 시도들에서도 서비스의 기능적 정보만을 활용하고 있는 문제가 있다.
3) 온톨로지 진화 기술
온톨로지는 특정 도메인에서 사용되는 용어들 간의 관계를 정의하여 도메인의 지식을 효과적으로 공유하고 활용하는 데에 그 목적이 있다. 온톨로지는 해당 도메인의 대표 용어들을 추출하고, 해당 용어 및 관련어들의 관계를 이용하여 RDF(Resource Description Framework, http://www.w3.org/RDF), RDFS(RDF Schema, http://www.w3.org/TR/rdf-schema), OWL(Web Ontology Language, http://www.w3.org/TR/owl-features) 형태로 온톨로지를 구축할 수 있으며, 정보 검색, 인공 지능, 웹 서비스 등 다양한 분야에서 활용되고 있다.
이러한 온톨로지 구축 및 관리는 해당 도메인의 전문가 또는 해당 분야의 사전을 기반으로 관련 용어들과 관련어들의 관계를 기반으로 정의되지만, 도메인에서 사용되는 용어 및 속성이 많아지고, 용어 간의 관계가 복잡해질수록 유지보수가 어려워진다. 또한, 온톨로지를 활용하여 시맨틱 서비스 검색 시, 검색 키워드와 서비스를 명세하는 용어를 추가 정의하는 경우에는 기존에 구축한 온톨로지에 대한 모델링을 기반으로 용어 및 속성간의 관계를 고려하여 수동으로 보완해야 하는 단점이 있다.
4) 가십 기반 기술
파레토 법칙 또는 80 대 20 법칙은 ‘전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상’을 가리킨다. 예를 들어, 20%의 고객이 백화점 전체 매출의 80%에 해당하는 만큼 쇼핑하는 현상을 설명할 때 이 용어를 사용한다. 매쉬업이 포함하는 서비스에 대해서도 동일한 현상이 나타난다. 즉, 매쉬업에서 주로 이용되는 서비스는 일부로 수렴된다는 뜻이다. 예를 들어, 매쉬업에서 주로 이용된 서비스는 Google™ Maps와 소셜, 검색과 관련된 API로 수렴할 수 있다.
여기에 접근 중요성(Closeness centrality) 개념을 적용하면 서비스의 이용빈도를 계량화할 수 있다. 접근 중요성(Closeness centrality)는 네트워크에서 한 노드에서 모든 다른 노드와의 거리의 합의 역수이다(아래 수식 참조). 좀 더 중심적인 노드일수록 이 값이 크다. 접근(Closeness)은 한 서비스가 얼마나 많이 매쉬업에 이용되었는가를 의미하므로, 이러한 서비스를 계량적으로 선별하는데 도움을 준다. 나아가 접근(closeness)이 우세한 서비스와 함께 조합된 다양한 서비스를 유추할 수 있으므로, 새로운 매쉬업 기술을 개발하는데 유용한 참고자료가 될 것이다.
Figure pat00001
접근(Closeness) 수식 (v : 특정 노드, t : 다른 노드, d : v와 t의 거리)
매쉬업에 필요한 정보를 관리하기 위한 예로는 프로그래머블 웹(ProgrammableWeb)[m-3]과 같이 중앙집중적인 포탈이 있다. 서비스의 기능적/비기능적 요소가 사람에 의해 직접 수집되었고, 매쉬업을 만들려는 개발자는 이러한 포탈에서 다양한 웹 서비스의 정보를 얻는다. 그러나 빠르게 변하는 웹 생태계와 웹 서비스의 스타일과 구현 기술이 다양함, 그리고 앞서 언급했듯이 특정 서비스들이 자주 사용된다는 점을 고려할 필요가 있다. 각 서비스 제공자들이 공통 인터페이스를 통하여 자신이 제공하는 서비스의 정보와 연관성 높은 서비스 네트워크를 구성하고 관리하면 서비스와 매쉬업의 관리비용을 절감할 수 있고, 매쉬업 정보를 분산 관리할 수 있는 장점이 있다. 또한, 모든 서비스의 정보를 관리하는 대신 서비스 제공 주체가 근사도가 높은 서비스들의 관계만 유지함으로써 매쉬업 정보의 유효성을 보장할 수 있다.
프로그래머블 웹(ProgrammableWeb)과 같은 매쉬업 포탈은 사람이 매번 API변경사항과 매쉬업 사례를 추적해야 한다. 최신 정보를 자동으로 추적하고 업데이트하기 위해 서비스 제공자와 매쉬업 포탈 혹은 서비스 제공자와 개별 매쉬업 개발자 사이에 발행/구독 모델의 메시지 패러다임을 적용할 수 있다. 발행/구독 모델은 비동기 메시지 패러다임으로서, 보내는 이의 메시지가 자신의 메시지를 특정한 수신자들에게 보내도록 결정되어 있지 않다. 대신, 발행된 메시지는 주제나 내용으로 특징화된다. 구독자는 한 개 이상의 주제에 대해 관심을 표현한다. 그러면 발행자에 대한 어떠한 지식 없이도 관심을 표현한 메시지만을 수신할 수 있다. 이러한 발행자와 구독자의 디커플링은 더 다이나믹한 네트워크 토폴로지를 허용한다. 더불어 각 노드가 주기적으로 서로 메타 정보를 주고 받는 가십 프로토콜[m-5]을 이용하면, 발행자와 구독자를 관리하는 마스터가 없이도 확장성을 높일 수 있어서 이질적이고 분산된 인터넷 서비스의 특성에 적합하다. 발행자와 구독자가 서로 네트워크를 구성하고 데이터를 유통하는데 가십 프로토콜을 적용할 수 있다. 따라서 가십 기반의 발행/구독 네트워크를 기반으로, 서비스 제공자가 서비스 정보와 매쉬업 네트워크를 유통시킨다면 매쉬업 포탈과 매쉬업 개발자가 유효한 최신 정보를 쉽게 업데이트 할 수 있다.
참고 문헌
[i-1] A.Z. Broder, “A Taxonomy of Web Search”, ACM SIGIR Forum, vol. 46, pp.3-10, 2002.
[i-2] D.E. Rose and D.Levinson, “Understanding User Goals in Web Search”, In Proc. of the 14th Int. Conf. of World Wide Web, pp. 13-19, 2004.
[i-3] A. Z. Broder, M. Fountoura, et al., “Robust Classification of Rare Queries using Web Knowledge”, In Proc. of the 30th annual Int. ACM SIGIR Conf. on Research and Development in Information Retrieval , pp. 231-238, 2007.
[i-4] D. Shen, R. Pan, et al, “Query Enrichment for Web Query Classification”, ACM Transactions on Information Systems (TOIS), vol. 24, no.3, pp.320-352, 2006.
[i-5] M. Strohmaier, P. Prettenhofer, M. Lux, “Different Degrees of Explicitness in Intentional Artifacts ? Studying User Goals in a Large Search Query Log”, In Proc. of Int. Workshop on Commonsense Knowledge and Goal Oriented Interfaces, 2008.
[i-6] T. Lin, P. Pantel, et al., “Active Objects: Actions for Entity-centric Search”, In Proc. of the 21th Int. Conf. on World Wide Web, pp. 589-598, 2012.
[i-7] A. Jain and M. Pennacchiotti, “Domain-independent Entity Extraction from Web Search Query Logs”, In Proc. of the 20thInt. Conf. Companion on World Wide Web, pp. 63-64, 2011.
[i-8] X. Ling and D. S. Weld, “Find-Grained Entity Recognition”, In Proc. of AAAI 2012.
[i-9] 맹성현, 정유철, 김경민, “질의/문서 주제 범주 변화 분석 시스템 및 그 방법과 이를 이용한 질의 확장 기반 정보 검색 시스템 및 그 방법”, [10-2009-0025759]
[i-10] 정유철, 배현주, 이병선, “목적기반 시맨틱 서비스 디스커버리를 위한 서비스 목적 해석 장치 및 방법”, [10-2011-0126927]
[j-1] Web Service Modeling Ontology (WSMO), W3C Member Submission 3 Jun. 2005, Available at http://www.w3.org/Submission/WSMO/.
[j-2] Semantic Markup for Web Services (OWL-S), W3C Member Submission 22 Nov. 2004, Available at http://www.w3.org/Submission/2004/SUBM-OWL-S-20041122/.
[j-3] P. Sheth, K. Gomadam, and A. Ranabahu, “Semantics Enhanced Services: METEOR-S, SAWSDL and SA-REST,” IEEE Data Engineering Bulletin, vol.31, no.3, 2008, pp.8-12.
[m-1] S. Yu, and J. Woodard. Innovation in the Programmable Web: Characterizing the mashup ecosystem. Workshop on Web APIs and Services Mashups, LNCS 5472, Springer, 136--147, 2008
[m-2] Closeness centrality, http://en.wikipedia.org/wiki/Centrality#Closeness_centrality
[m-3] Programmable Web, http://www.programmableweb.com/
[m-4] 발행/구독 모델, http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
[m-5] Rahimian, F., Girdzijauskas, S., Payberah, A.H., Haridi, S.: Vitis: A gossip-based hybrid overlay for Internet-scale publish-subscribe. In: 2011 IEEE International Parallel and Distributed Processing Symposium, 2011.
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은 하기의 기술들을 이용하여 복수의 서비스를 매쉬업하여 개발자가 원하는 프로그램을 제공할 수 있는 프로그램 제공 방법을 제안하기 위함이다.
1) 의도 파악 기술
TV앱 개발자 의도를 파악하기 위한 연구는 전무하며, 특히 질의-의도-서비스를 피드백으로 연결하는 시도도 없었다. 본 발명의 일 실시 예에 따른 프로그램 제공 방법은 TV앱 개발자가 손쉽게 원하는 서비스를 찾을 수 있도록, 기존의 사용이력과 즉시적 의도를 동시에 고려하여 의도를 추정하고 관련 서비스 추천한다.
2) 시맨틱 서비스 매칭 기술
현재 대부분의 응용에서 연결 가능한 서비스들의 조합이 설계 단계에 확정되어 예외 상황에서 동적 대체가 어려우며, 이를 동적으로 가능하게 하려는 시도들에서도 서비스의 기능적 정보만을 활용하고 있다. 본 발명의 일 실시 예에 따른 프로그램 제공 방법은, 기능적 정보 외에, 비기능적 정보 (인증 방법, 전달 프로토콜 등)를 정보의 특성에 맞게 활용하여 WSDL 서비스 뿐 아니라 RESTful 서비스의 경우에도 연관성을 계산하고, 그 결과를 바탕으로 충돌을 찾아 해소(resolution)함으로써 연관성을 높이는 매칭을 수행한다.
3) 온톨로지 진화 기술
온톨로지 구축 및 관리는 해당 도메인의 전문가 또는 해당 분야의 사전을 기반으로 관련 용어들과 관련어들의 관계를 기반으로 정의되지만, 도메인에서 사용되는 용어 및 속성이 많아지고, 용어 간의 관계가 복잡해질수록 유지보수가 어려워진다. 또한, 온톨로지를 활용하여 시맨틱 서비스 검색 시, 검색 키워드와 서비스를 명세하는 용어를 추가 정의하는 경우에는 기존에 구축한 온톨로지에 대한 모델링을 기반으로 용어 및 속성간의 관계를 고려하여 수동으로 보완해야 하는 단점이 있다. 본 발명의 일 실시 예에 따른 프로그램 제공 방법은 개발자 피드백에 의한 서비스 온톨로지 진화 방법을 이용한다.
4) 가십 기반 기술
프로그래머블 웹(ProgrammableWeb)과 같은 매쉬업 포탈은 사람이 매번 API변경사항과 매쉬업 사례를 추적해야 한다. 그러나, 발행/구독 모델은 비동기 메시지 패러다임으로서, 보내는 이의 메시지가 자신의 메시지를 특정한 수신자들에게 보내도록 결정되지 않고, 발행된 메시지는 주제나 내용으로 특징화되어 발행자에 대한 어떠한 지식 없이도 관심을 표현한 메시지만을 수신할 수 있다. 이러한 발행자와 구독자의 디커플링은 더 다이나믹한 네트워크 토폴로지를 허용한다. 더불어 각 노드가 주기적으로 서로 메타 정보를 주고 받는 가십 프로토콜[m-5]을 이용하면, 발행자와 구독자를 관리하는 마스터가 없이도 확장성을 높일 수 있어 이질적이고 분산된 인터넷 서비스에 적합하고, 매쉬업 포탈과 매쉬업 개발자가 유효한 최신 정보를 보다 손쉽게 업데이트 할 수 있다. 본 발명의 일 실시 예에 따른 프로그램 제공 방법은 이러한 가십 기반 기술을 이용한다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 프로그램 제공 방법은, 프로그램 제공 방법에 있어서, 사용자의 질의를 수신하는 단계와, 상기 사용자의 질의를 시맨틱 분석하는 단계와, 의도 그래프를 이용하여 상기 사용자의 의도를 판단하는 단계와, 상기 판단된 의도에 기초하여 적어도 하나의 서비스를 추천하는 단계와, 상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스를 매쉬업하는 단계와, 상기 매쉬업 결과로 생성된 프로그램을 제공하는 단계를 포함한다.
이때, 상기 사용자의 질의를 시맨틱 분석하는 단계는, 상기 사용자의 질의에 하나의 단어만이 포함된 경우, 웹 리소스의 어휘 통계를 이용하여 상기 하나의 단어와 함께 사용되는 추가적인 단어를 추천하는 단계를 포함할 수 있다.
상기 사용자의 질의를 시맨틱 분석하는 단계는, 상기 사용자의 질의에 하나의 개체 명칭을 나타내는 단어가 포함되어 있는 경우, 패턴 기반의 휴리스틱 및 통계적 수치를 이용하여 상기 개체 명칭을 인식하는 단계를 포함할 수 있다.
상기 의도 그래프는, 상기 사용자 질의에 포함되어 있는 단어에 대한 서비스의 선택 확률로 나타낼 수 있다.
이때, 상기 사용자의 의도를 판단하는 단계는, 상기 사용자 질의에 포함되어 있는 단어에 매칭되는 서비스 중 대응되는 단어에 대한 서비스의 선택 확률이 높은 순서로 랭킹을 설정하는 단계를 포함하고, 상기 판단된 의도에 기초하여 상기 적어도 하나의 서비스를 추천하는 단계는, 상기 설정된 랭킹 순서에 따라 상기 적어도 하나의 서비스를 추천할 수 있다.
또한, 상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스를 고려하여 상기 랭킹을 변경함으로써 상기 의도 그래프를 갱신하는 단계를 더 포함할 수 있다.
또한, 상기 사용자의 의도를 판단하는 단계는, 상기 사용자에 개별화된 의도 그래프를 이용하여 상기 사용자의 의도를 판단할 수 있다.
또한, 상기 프로그램 제공 방법은, 상기 의도 그래프를 이용하여 판단된 의도를 표시하는 단계를 더 포함하고, 상기 추천된 서비스 중 적어도 하나에 대한 선택 입력이 있고, 상기 표시된 의도 중 적어도 하나에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스 및 상기 선택된 적어도 하나의 의도를 고려하여 상기 의도 그래프를 갱신할 수 있다.
또한, 상기 서비스를 추천하는 단계는, 상기 적어도 하나의 서비스를 추천하여 아이콘으로 표시하는 단계를 포함할 수 있다.
또한, 상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스 및 상기 사용자 질의에 포함되어 있는 단어를 이용하여 서비스 온톨로지를 검색하고 상기 서비스 온톨로지를 갱신하는 단계를 더 포함할 수 있다.
또한, 상기 온톨로지의 검색 및 갱신 단계는, 상기 선택된 적어도 하나의 서비스 및 상기 사용자 질의에 포함되어 있는 단어의 연관어를 더 고려하여 상기 서비스 온톨로지를 검색하고 상기 서비스 온톨로지를 갱신할 수 있다.
또한, 상기 온톨로지의 검색 및 갱신 단계는, 상기 사용자의 서비스 선택 정보 및 상기 사용자 질의에 따른 복수의 키워드와 상기 온톨로지의 키워드 집합이 전체적으로 매칭되면, 상기 복수의 키워드 및 상기 온톨로지의 키워드 집합에 대한 관계 값(relation value)을 수정하고, 상기 사용자의 서비스 선택 정보 및 상기 사용자 질의에 따른 복수의 키워드와 상기 온톨로지의 키워드 집합이 일부만 매칭되면, 상기 복수의 키워드 중 상기 온톨로지의 키워드 집합에 매칭되지 않는 키워드에 대한 클래스를 생성하여 상기 온톨로지에 추가하는 단계를 포함할 수 있다.
또한, 상기 선택된 적어도 하나의 서비스를 매쉬업하는 단계는, 상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스를 레지스트리에서 독출하여 매칭하는 단계를 포함할 수 있다.
또한, 상기 매칭하는 단계는, 상기 선택된 적어도 하나의 서비스 및 상기 사용자 질의에 포함되어 있는 단어를 이용하여 서비스 온톨로지를 검색하고, 상기 서비스 온톨로지에서 검색된 키워드들의 유사성을 계산하여 상기 매칭에 활용할 수 있다.
또한, 상기 레지스트리는, 복수의 서비스들에 대한 기능적인 특성 정보, 비 기능적인 특성 정보, 및 데이터 특성 정보를 기초로 통일된 형태로 상기 복수의 서비스들을 저장할 수 있다.
또한, 상기 기능적인 특성 정보는 서비스 이름, 서비스 카테고리, 서비스 제공자, 서비스 명세, 및 서비스 목표 중 적어도 하나이고, 상기 비 기능적인 특성 정보는 전달 프로토콜, 인증방법, 및 사용자 평가 중 적어도 하나이며, 상기 데이터 특성 정보는 입력 매개변수 및 출력 매개 변수 중 적어도 하나일 수 있다.
또한, 상기 선택된 적어도 하나의 서비스를 매쉬업하는 단계는, 상기 추천된 적어도 하나의 서비스 중에서 복수의 서비스들에 대한 선택 입력이 있는 경우, 상기 선택된 복수의 서비스들 사이의 연관성을 계산하는 단계와, 상기 계산된 연관성에 따라 상기 선택된 복수의 서비스들 사이에 충돌이 발생한 것으로 판단되는 경우, 상기 발생된 충돌을 해소하는 단계를 포함할 수 있다.
또한, 상기 서비스를 매쉬업하는 단계는, 상기 선택된 복수의 서비스들 중 어느 서비스를 호환성 있는 다른 서비스로 대체하기 위한 사용자 입력이 있는 경우, 상기 호환성 있는 다른 서비스의 대체 가능성을 계산하는 단계를 포함할 수 있다.
또한, 상기 호환성 있는 다른 서비스의 대체 가능성은 호환도 매트릭스에 따라 계산할 수 있다.
또한, 상기 매쉬업 결과로 생성된 프로그램을 제공되는 경우, 사용자의 수정 입력이 있으면, 사용자 입력에 따라 상기 제공된 프로그램을 수정하는 단계;를 더 포함할 수 있다.
상기와 같은 본 발명의 다양한 실시 예에 따르면, 본 발명은 아래와 같은 효과를 갖는다.
1) 의도 그래프를 이용한 프로그램 개발자 의도 탐지 기법
세밀한 의도 파악이 필요한 매쉬업 서비스 개발 환경을 위해 제안되었지만, 기타 프로그램 개발자 의도 모델링과 피드백을 수용하면서 진화하는 기타의 여러 지능형 시스템에의 적용도 가능하다. 파악하려는 프로그램 개발자의 의도 범주와 검색의 대상이 되는 서비스 혹은 제품의 목록을 대체하면서 확장 활용이 가능하다.
자동/반자동으로 태깅된 각 서비스의 사용 의도 (혹은 목적)는 잠재적 오류를 내포하고 있는데, 이 오류들을 프로그램 개발자의 피드백을 통해 보정할 수 있다.
동사구 수준의 의도 시각화와 관련 서비스의 추천에 대한 프로그램 개발자 피드백은 보다 직관적인 피드백을 통해 프로그램 개발자 의도를 저장/관리/활용할 수 있다. (기존 웹 검색 (혹은 기타 특정 목적의 검색)에서는 프로그램 개발자 질의에 대응되는 웹페이지 (혹은 사용한 서비스, 책)을 이들의 클릭 빈도에 의한 클릭 그래프 (click graph)를 구성할 수 있었으나, 이것은 프로그램 개발자의 명시적 피드백을 수용하기에는 부족하다.)
기존 개발자가 구체화 하지 못하고 있던 잠재적 의도에 매핑되는 서비스들 (예, 웹서비스 혹은 API)을 제시 후, 프로그램 개발자의 피드백을 통해 의도 파악을 수행함으로써, 애매성이 높은 프로그램 개발자 질의에 대해 서비스 검색/추천의 효율성을 향상 시킬 수 있다.
2) 상호연결 서비스간 연관도를 높이는 시맨틱 서비스 매칭 기법:
데이터 타입간의 호환성을 알고리즘에 의해 자동으로 계산할 수 있기 때문에, 실행 중에 동적으로 연결 서비스를 찾아 실행할 수 있다. 즉, 사람이 개입하지 않아도 적절한 서비스를 찾고, 대체하고, 연결하는 작업을 컴퓨터가 수행할 수 있으므로 런타임 자동 서비스 매쉬업을 가능케 할 수 있다.
웹서비스를 조합하여 응용을 개발하고자 하는 분야라면 TV앱이든, 모바일 앱이든, 데스크탑 앱이든 어느 개발 환경에도 적용할 수 있고, 나아가 일반 프로그램 개발자가 디바이스에서 직접 동적으로 서비스를 조합하여 새로운 앱을 만들 수 있는 기반 기술로 활용할 수 있다.
3) 온톨로지 갱신과 온톨로지 내 키워드 유사도 검사
이용자가 입력한 검색 키워드와 선택한 서비스에 대한 목록 정보를 feedback 받아, 온톨로지 키워드를 자동으로 업데이트하거나 추가함으로써 온톨로지를 자체적으로 진화시킬 수 있는 기능은, 실시간 변화하는 이용자의 서비스 검색 및 이용 패턴을 기반으로 서비스 키워드간 유사도를 계산함으로써 서비스 검색 및 매칭의 의미적 처리를 지원할 수 있다.
4) 가십 기반의 발행/구독 네트워크로 매쉬업 정보를 유통하여 매쉬업 히스토리 구축 방법
서비스의 매쉬업 횟수와 함께 조합된 다른 서비스와의 관계를 계량한 데이터를 활용하여 새로운 매쉬업 개발하는데 활용할 수 있다. 매쉬업 포탈에서 모든 서비스의 정보를 관리하는 매쉬업에 포함된 서비스의 제공자끼리만 정보를 유통하고 다른 서비스 제공자에게 이를 전파하지 않음으로써 전송비용을 절감할 수 있다. 본 기술의 매쉬업 정보는 근사도가 높은 서비스들의 관계를 나타냄으로써 매쉬업 정보의 효용성을 높일 수 있다. 본 발명은 발행/구독 모델에 따라 서비스 제공자가 서비스 정보와 매쉬업 네트워크를 발행하여 매쉬업 포탈과 매쉬업 개발자가 최신 정보를 쉽고 신속하게 업데이트 할 수 있다.
도 1은 개발자의 의도를 반영한 프로그램 제공 방법과 그 방법을 수행하기 위한 시스템 구조를 도시한 도면,
도 2는 본 발명의 일 실시 예에 따른 의도 그래프의 구조를 도시한 도면,
도 3은, 프로그램 개발자 질의 및 Twitter™ API들을 대상으로 구축된 의도 그래프의 예시를 도시한 도면,
도 4는 본 발명의 일 실시 예에 따른 의도 그래프를 이용한 의도 추정 절차를 도시한 도면,
도 5는 본 발명의 일 실시 예에 따른 의도 전환을 고려한 의도의 랭킹을 도시한 도면,
도 6은 본 발명의 일 실시 예에 따른 서비스 추천 및 피드백 과정을 도시한 흐름도,
도 7은 본 발명의 일 실시 예에 따른 서비스에 대한 의도 어노테이션(annotation)을 도시한 도면,
도 8은 본 발명의 일 실시 예에 따른 질의에 대한 의도 추정 결과 및 추천 서비스의 시각화 후 프로그램 개발자 피드백을 도시한 도면,
도 9는 시맨틱 서비스 검색을 위해 이용자의 사용 피드백(usage feedback)에 기반하여 키워드 온톨로지를 진화시키고 유사도를 계산하는 구성을 도시한 블록도,
도 10은 키워드에 대한 연관어를 검색하는 방법의 흐름도,
도 11은 키워드 및 관계 추가 기능에 대한 순서도,
도 12는 키워드간 유사도 계산 기능에 대한 순서도,
도 13은 키워드 온톨로지에서 두 키워드간 유사도 계산 예를 도시한 도면,
도 14는 시맨틱 서비스 매칭을 통합 매쉬업 로직 생성/추천의 기술 구성도,
도 15는 도 14에서 설명한 각 기술들이 매칭을 수행하는 흐름도,
도 16은, 도 14의 호환성 있는 서비스 매칭(Compatible Service Matching)와 상호운용 가능한 서비스 매칭(Interoperable Service Matching)의 계산 방법을 개념적으로 도식화한 도면,
도 17은 시맨틱 서비스 레지스트리에 저장된 웹서비스 메타데이타를 나타낸 표를도시한 도면,
도 18은, 시맨틱 서비스 매칭에 적용되는 매칭 기준을 나타낸 표를 도시한 도면,
도 19 및 20은, 도 16에서 나타난 호환성 있는 서비스 매칭과 상호 운용 가능한 서비스 매칭 방법을 수식으로 표현한 도면,
도 22는 CompareParam 중 유형 호환성(type Compatibility)를 효율적으로 수행하기 위한 매트릭스를 도시한 도면,
도 23은 CompareParam알고리즘을 적용한 일 실시예로 소스 서비스와 타겟 서비스간의 호환도(Compatibility)를 계산한 결과를 나타내는 테이블을 도시한 도면,
도 24는 데이터 특징(Data Feature)간의 연관성 계산 결과에 따라 매칭 정도를 높이기 위한 충돌 발견 (conflict detection) 및 해소 (conflict resolution) 절차를 도시한 흐름도,
도 25는 도 22의 매트릭스를 기반으로 그 값이 0.5인 경우, 파라미터 타입간 호환 가능하도록 타입 변환 함수를 정의하여 제공하는 테이블을 도시한 도면,
도 26은 본 발명의 일 실시 예에 따른 충돌 해소 (Conflict resolution) 방법을 나타내는 도면,
도 27은 본 발명이 적용된 매쉬업 등록/발행/구독 인터페이스와 가십 정보를 저장하는 서비스 제공자의 도면,
도 28는 본 발명이 적용된 서비스 제공자의 매쉬업 등록/발행/구독 메시지 형식을 도시한 도면,
도 29는 다양한 서비스 제공자들과 이들이 호스팅하는 서비스로 매쉬업을 구성한 예를 도시한 도면,
도 30은 매쉬업 정보가 전파되는 일 실시 예를 도시한 도면, 그리고,
도 31은 시간에 따라 진화하는 매쉬업 네트워크의 일 실시 예를 도시한 도면이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 다양한 실시 예를 설명한다.
본 발명의 일 실시 예에 따른 시맨틱 서비스 매쉬업 방법은, TV앱 개발자의 질의와 피드백 히스토리를 통해 의도를 파악하는 제 1단계, 피드백을 이용해 서비스 온톨로지를 갱신하고, 서비스 검색과 매칭 시 클래스(온톨로지를 구성하는 한 용어로서 특정 도메인 내에서 특정 개념을 표현하는 단어를 의미하며 ‘concept’으로도 표현함, 본 발명에서는 서비스들에 주로 이용되는 키워드들을 클래스로 정의하여 온톨로지로 구축함) 간 유사성을 계산하는 제 2단계, 파악된 의도에 기반하여 선택된 서비스들을 상호 연결시키거나 대체하려고 할 때 서비스의 연관성을 계산하고 연관성을 높이는 매쉬업 로직을 생성하는 제 3단계, 매쉬업 결과에 대한 개발자 피드백을 내부 히스토리에 저장하고, 내외부 매쉬업 히스토리를 이용하여 서비스 매쉬업에 활용하는 제 4단계와 마지막으로, 서비스 제공자들간의 가십기반 정보를 공유하여 외부 매쉬업 히스토리를 획득하는 제 5 단계를 포함하는 것으로 한다.
도 1은 개발자의 의도를 반영한 프로그램 제공 방법과 그 방법을 수행하기 위한 시스템 구조를 도시한 도면이다.
도 1을 참조하면, TV앱 개발자(1)가 본 발명이 제안하는 시맨틱 서비스 매쉬업 시스템(2)을 통해 사용자 질의가 수신되면(S10) 사용자 질의를 시맨틱 분석하는 단계(S110)와, 의도 그래프(Intent Graph)(100)를 이용한 사용자 의도 판단(추정) 단계(S120), 그리고 판단된 의도에 기초하여 서비스를 추천하는 단계(S11) 및 상기 추천된 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우(S12), 프로그램 개발자 피드백 수집 및 마이닝 단계(S130)를 포함한다. 개발자 피드백(선택 입력)은 의도그래프(100)와 서비스 온톨로지 갱신(S140)을 유도한다. 개발자가 추천된 서비스를 선택하면(S12), 매쉬업 로직 생성부에서 서비스 상호연결을 매끄럽게 하는 매칭을 수행한다(S150). 매칭 과정에서, 서비스 정보는 레지스트리(200)로부터 획득하고, 갱신된 서비스 온톨로지(300)를 이용하여 온톨로지에 정의된 키워드들의 유사성을 계산하여 매칭에 활용하고, 매쉬업 히스토리(400)를 통해 내외부 매쉬업 결과들을 참조하여 로직을 생성한다(S150). 생성된 매쉬업 로직(매쉬업 결과로 생성된 프로그램)을 개발자에게 제공하면(S13) 개발자가 직접 로직을 수정/편집할 수 있다(S14).
도 1의 각 단계 및 구성을 요약하면 다음과 같다.
■ 시맨틱 질의 분석(S110): 기본적으로, 문장 또는 복합 단어를 자연어 처리(형태소분석, 청킹, 개체명 인식)을 통해 매핑될 수 있는 개념 및 개체들을 분석해 낸다. 추가적으로 현실 세계의 최신 용어들을 확인할 수 있는 웹 자원 (e.g., Wikipedia)이 연결될 수 있다.
■ 의도 그래프 (100): (프로그램 개발자질의, 동사구 수준의 의도, 서비스들)이 연결된 3자(tri-partite) 그래프로서 프로그램 개발자의 피드백에 의하여 질의-의도(query-intent), 의도-서비스(intent-service) 간의 연결 확률이 갱신된다.
■ 의도 그래프를 이용한 의도 추정 (S120): 획득한 개념과 개체를 입력에 대하여 의도 그래프를 활용하여 프로그램 개발자(개발자)가 수행할 수 있는 동사구 수준의 표현을 획득한다. 의도 그래프에서 의도 전환을 고려한 랭킹이 수행된다. 더 나은 성능이나 도메인 확장을 위해 외부에서 제공되는 목적 택소노미(goal taxonomy)와 확장 연결될 수 있다.
택소노미(Taxonomy)란 클래스, 인스턴스들의 개념분류를 위하여 보다 폭넓은 개념과 구체적인 개념들로 구분하여 계층적으로 표현하는 것이다. 예를 들어, "사람은 동물이다"와 같은 개념간 포함관계를 나타내기 위한 "isA" 관계가 그것이다.
난 택소노미(Non-taxonomy)란, 택소노미가 아닌 관계를 말한다. 예를 들어, "운동으로 인해 건강해진다"는 것은 "cause" 관계(인과관계)를 이용하여 표현한다.
■ 서비스 추천 및 개발자 피드백 마이닝 (S130): 동사구 수준의 프로그램 개발자 의도를 성취할 수 있는 서비스들을 추천하여 프로그램 개발자(개발자)에게 제시하고 TV앱 개발자로부터 적합/부적합 수준의 피드백을 회득한다(예를 들어, 서비스의 선택). 이때 프로그램 개발자 입력과 피드백(최초 질의, 추천 서비스, 최종 선택)은 의도 그래프 (Intent Graph)를 갱신하는데 활용된다.
■ 서비스 온톨로지 갱신 (S140): 사용 피드백(usage feedback)을 기반으로 키워드 온톨로지를 추가하여 온톨로지를 자동으로 진화시킨다. 대상으로 하는 사용 피드백(usage feedback)은 서비스 개발자가 입력하는 빈도가 높은 키워드와 서비스 검색 결과 선택되는 서비스에 대한 키워드들로 서비스 검색 장치가 관리하는 사용 피드백(usage feedback) 정보를 얻어 키워드 온톨로지를 추가한다.
■ 서비스 온톨로지 저장소 (300): 각 키워드가 클래스의 위계를 가지고 정리되어 있으며 연관어(유의어, 상위어, 하위어)들이 OWL파일로 정의 될 수 있다.
■ 서비스 매칭을 통합 매쉬업 로직 생성/추천 (S150): 사용자가 선택한 서비스들로 매끄러운 연결이 가능한 매쉬업 로직을 생성한다. 이 과정에서 서비스 온톨로지(300), 서비스 레지스트리 (200), 매쉬업 히스토리(400)를 활용한다.
■ 리모트 매쉬업 로직 수집 (S160): 서비스 제공자들간에 가십 기반의 발행/구독 네트워크를 구성하고 매쉬업 빈도가 높은 서비스의 정보를 축적하여 유통하는 방법으로 외부 매쉬업 정보를 획득한다.
■ 서비스 레지트스리 (200): (표현방식에 상관없이, 표준이든 비표준이든) 기존에 널리 이용되고 있는 웹서비스들에 대해 기능적인 특성 정보 (서비스 이름, 서비스 카테고리, 서비스 제공자, 서비스 명세, 서비스 목표), 비 기능적인 특성 정보 (전달 프로토콜, 인증방법, 사용자 평가), 데이터 특성 정보(입력 매개변수, 출력 매개변수) 정보를 수집하여 통일된 형태(unified form)로 저장한 서비스 메타데이타 저장소이다.
■ 매쉬업 히스토리 (400): 다수 개의 서비스가 매쉬업되어 하나의 프로그램을 생성하는 경우, 프로그램을 구성하는 서비스 로직들의 저장소 (프로그램 정보 아님, 서비스 연결 구성을 포함)이다.
본 명세서에서 의도(intent)와 목적(goal)은 동일한 의미로 사용된다.
이하에서 각 단계의 세부 과정을 기술하며, 그 사용에 있어서는 실시 예에서 설명하도록 한다.
[A] 시맨틱 질의 분석 (S110): 문장 또는 복합 단어를 자연어 처리(part-of-speech tagging, chunking, named entity recognition, etc)을 통해 매핑될 수 있는 개념, 목적 및 개체들로 분석해 낸다. 시맨틱 질의 분석에서는 크게 두 가지 유형의 프로그램 개발자 질의 유형을 내/외부의 지식자원을 활용하여 처리한다. 질의유형에 따라 기존의 주제 범주 (topic category (or taxonomy))의 구조를 활용, 규칙 기반의 휴리스틱 활용, 기 활용 가능한 통계적 정보 등을 취사선택하여 질의 속 주요 개념을 구체화한다.
- 처리 대상이 되는 두 가지 유형의 질의들
1) 우선, 질의가 하나 이상의 단어로 구성되는 경우이다. 하나의 단어는 너무 많거나 애매한 결과를 가져 온다. 이 경우는 웹 리소스 (혹은 도메인의 문서 셋)의 어휘 통계를 활용하여 프로그램 개발자 질의와 같이 쓰이는 추가적인 단어들(2개 혹은 3개)를 추천 한다.
2) 다음으로 프로그램 개발자 질의에 개체명 (named entity)가 존재하는 경우 패턴기반의 휴리스틱과 통계적 수치를 활용하여 개체명을 인식하거나[i-7], 외부 지식 베이스 (e.g. Wikipedia) 같은 자원을 활용한 기계학습을 수행하여 개체명을 인식하는 방법[i-8]이 있다.
*동사구 수준의 명시적 표현으로 질의를 하는 경우에는, 특별한 처리 없이 동사구 수준으로 표현되어 있는 다음 단계의 의도 그래프를 이용한 의도 추정(100)을 바로 시행한다.
일반적으로 한 개의 단어보다 결합된 2개 (혹은 3개)의 단어가 구체적인 의도를 표현할 수 있다. 그리고 특정 이름 (사람이름, 건물이름, 기구이름, 나라이름, 회사이름, 소프트웨어 이름)을 바로 사용한 경우에는 프로그램 개발자의 의도를 제대로 파악하기 힘들기에 추가적으로 개체들에 대한 애매성 해소 (disambiguation)의 과정을 거칠 것이 요구된다.
도 2는 본 발명의 일 실시 예에 따른 의도 그래프의 구조를 도시한 도면이다.
[B] 의도 그래프 (Intent Graph, IG) (100): 의도 그래프는 기본적으로 프로그램 개발자의 사용로그를 기반으로 생성된다. 프로그램 개발자가 선택하는 각 서비스들은 고유의 의도가 자동 (혹은 반자동)으로 태깅되어 있기 때문에, 프로그램 개발자가 피드백 과정에서 선택한 서비스는 도 2와 같은 구조로 표현될 수 있다. 단, 서비스 API(ServiceAPI)는 실제 트위터™(Twitter), 페이스북™ (Facebook), 구글™ (Google) 등의 서비스 제공자들이 일반에 오픈한 웹 서비스들을 지칭한다. 기존의 통상적 문서 검색에서 고려된 클릭그래프(click graph)는 중간단계의 의도 부분이 존재하지 않으며, 서비스는 주로 선택한 웹 페이지 (또는 문서)가 된다.
도 3은, 프로그램 개발자 질의 및 Twitter™ API들을 대상으로 구축된 의도 그래프의 예시를 도시한 도면이다.
도 3은 트위터 사에서 제공하는 웹 서비스들에 매핑될 수 있는 질의와 의도를 도식한 예시이다. 의도 그래프는 프로그램 개발자들의 피드백 (S130)에 의해 질의-의도(query-intent), 의도-서비스(intent-service) 간의 연결 확률이 계속하여 갱신되며, 신규서비스와 의도의 리스트들이 추가되면 더욱 그 활용의 범위는 확장될 수 있다.
[C] 의도 그래프를 이용한 의도 추정 (S120): 시맨틱 질의 분석에서 획득한 개념어를 입력으로 기 구축된 의도 그래프를 탐색하여 프로그램 개발자(개발자)가 수행할 수 있는 동사구 수준의 액션(action)으로 보정하는 단계이다. 이 단계는 특히, 그룹(혹은 개인)의 과거 사례 (case or history) 및 의도 전환(intent transition)에 기반한 의도 그래프를 활용하여 의도를 추정하는 단계이다.
도 4는 본 발명의 일 실시 예에 따른 의도 그래프를 이용한 의도 추정 절차를 도시한 도면이다.
의도 그래프를 이용한 의도 추정은 도 4와 같이 미리 저장된 개인별 의도 그래프를 로딩(loading)하면서 시작한다(S410). 다음으로 프로그램 개발자 질의를 시맨틱 분석한 결과인 복수 개의 개념어들과 연결된 복수개의 의도들의 리스트가 반환 될 수 있는데(S420), 이것은 최종적으로 프로그램 개발자가 처한 조건에 의해 랭킹 되고, 프로그램 개발자에게는 이 랭킹된 의도가 서비스 추천 및 피드백 과정 계속해서 사용된다.
특히, 마지막 단계의 랭킹 단계에서는 “의도 전환 (intent transition)”를 고려키 위해 추출된 의도들 간의 관련도(relatedness)를 계산하여 각 의도 별로 계산된 점수(score)를 보고 랭킹(ranking)을 수행한다(S430).
도 5는 본 발명의 일 실시 예에 따른 의도 전환을 고려한 의도의 랭킹을 도시한 도면이다.
일반적으로, 기존의 연구에서는 대량으로 축적된 로그 (과거기록)에 의해 산출되는 확률 (e.g., 프로그램 개발자 질의 ? 클릭한 웹 문서 사이의 확률)을 바로 사용하면서 상위 k개의 관련도 높은 웹 페이지를 활용하는 시도들이 있다. 이 경우는 로그 분석에 의한 통계적 수치가 높은 대상을 우선시하는 정책이다.
반면, 본 발명에서는 로그 기반의 확률 (프로그램 개발자 질의와 사용한 서비스간의 출현확률)과 더불어 변화하는 프로그램 개발자의 의도 변화에 따라 의도리스트를 다시 랭킹 한다. 이때, 프로그램 개발자의 현재 선택의도가 가장 우선시 되고, 선택 서비스의 잠재적 의도가 반영되어 기 추천된 의도 리스트의 순위가 바뀌게 된다(도 3). 예를 들어, 프로그램 개발자가 선택한 Verb3 + Object101 이 가장 높은 순위의 의도로 랭킹되고, 이와 유사하다고 판단되는 Verb2 + Object10와 Verb4 + Object20가 각각 2순위, 3순위로 결정된다.
도 6은 본 발명의 일 실시 예에 따른 서비스 추천 및 피드백 과정을 도시한 흐름도이다.
[D] 서비스 추천 및 개발자 피드백 마이닝 (S130): 동사구 수준의 프로그램 개발자 의도를 성취할 수 있는 서비스들을 추천하여(S610) 프로그램 개발자에게 제시하고 프로그램 개발자로부터 선택 (혹은 추가) 수준의 피드백을 획득한다(S630). 이때 의도 추정 결과들과 그에 대응되는 서비스들을 시각화하여 보여줄 수 있다(S620). 또한, 프로그램 개발자 입력과 피드백(최초 질의, 추천 서비스, 최종 선택)은 의도 그래프(Intent Graph)를 갱신하는데 활용된다(S640). 각 프로그램 개발자 별로 동일 서비스에 대한 피드백이 다를 수 있으며, 동사구 수준의 목적도 선택 시기에 따라 다를 수 있기에 이를 반영하기 위한 과정들이다.
- 의도 추정 결과 및 추천 서비스의 시각화
도 7은 본 발명의 일 실시 예에 따른 서비스에 대한 의도 어노테이션(annotation)을 도시한 도면이다.
의도 그래프를 이용한 의도 추정(S120) 후에는 서비스 저장소 (service registry)를 검색하여 세밀하게 파악된 프로그램 개발자의도에 맞는 서비스를 추천하게 된다. 우선 각 서비스를 추천하기 위해서는 도 7과 같이 각 서비스들에 대한 의도 어노테이션(intent annotation)이 되어있어야 한다.
물론 단순히 키워드 매칭 (keyword matching) 수준으로 서비스를 추천할 수 있지만 그 오류는 상당하다. 따라서 [i-10]를 참조하여 추천의 대상이 될 서비스들에 대한 의도(혹은 목적)을 분석하여 미리 각 서비스의 메타정보로 유지하고 있다고 가정한다. 결과적으로, 프로그램 개발자의도를 고려한 추천 서비스에서는 키워드(keyword), 의도(intent), 주제범주(topic category)의 특징(feature)이 복합적으로 고려된 검색기법이 사용된다.
- 프로그램 개발자의 명시적 피드백 (선택 혹은 추가)
시스템은 의도 그래프를 이용하여 판단된 의도를 표시할 수 있다. 프로그램 개발자는 추정된 복수개의 의도와 추천 서비스들 중, 현재 자신이 목표하는 의도를 고르고, 그 의도를 만족시키는 서비스를 선택함으로써, 자신의 의도를 명시적으로 나타낼 수 있다. 기존의 피드백 과정에서는 타겟 웹페이지 (혹은 문서)를 클릭하는 피드백이었지만, 여기서는 의도와 타켓 서비스를 모두 선택함으로써 명시적인 피드백을 준다. 만약 추천 의도 리스트 중에 자신이 생각하는 의도가 나타나지 않았다면 신규 의도를 추가할 수 있다. 서비스의 경우는 질의와 새로이 선택되는 의도를 고려하여 새로 검색 및 시각화되므로 새로이 갱신되는 서비스 리스트 속에서 선택하면 된다.
- 피드백을 통한 의도 그래프의 갱신
의도 그래프는 시시 각각의 프로그램 개발자 피드백을 기반으로 확장/갱신된다. 피드백을 고려하여 의도 그래프는 갱신되며, 프로그램 개발자에게는 새로 갱신된 의도 그래프에 의한 의도 추정결과와 추천 서비스들이 다시 시각화된다. 따라서 개인 프로그램 개발자의 많은 피드백이 존재할수록 보다 높은 품질의 의도 그래프가 구축된다.
도 8은 본 발명의 일 실시 예에 따른 질의에 대한 의도 추정 결과 및 추천 서비스의 시각화 후 프로그램 개발자 피드백을 도시한 도면이다.
개발자의 질의를 통해 원하는 서비스들을 찾도록 하는 검색 기능이 제공되며, 사용자의 피드백은 복수개의 의도 추정 결과와 이에 상응하는 추천 서비스들에 대해 각각을 선택 (혹은 추가)하여 이뤄진다.
[E] 온톨로지 갱신 및 서비스 키워드 유사도 검사 (S140)
키워드 온톨로지를 진화하는 장치는, 서비스 검색 장치로부터 요청을 받아 결과를 전달하는 인터페이스 모듈(910), 서비스 명세를 기반으로 키워드 간 유사어를 정의하고 계층적 포함관계에 따라 상위어와 하위어를 모델링하여 OWL 형태의 온톨로지를 생성하고 관리하는 온톨로지 구축 및 관리 모듈(920), 입력 키워드에 대해 온톨로지 저장소에서 유사어, 상위어, 하위어, 하위 콤포넌트(component)를 포함하는 연관어 목록을 검색하여 제공하는 연관어 검색 모듈(930), 두 키워드에 대한 관계(relation)를 기반으로 유사도 값을 계산하여 제공하는 키워드간 유사도 계산 모듈(940), 입력된 키워드와 사용빈도가 높은 서비스에 대한 사용 피드백(usage feedback)을 기반으로 키워드 온톨로지를 추가하여 온톨로지를 진화시키는 키워드 및 관계(relation) 추가 모듈(950)을 포함한다.
도 9는 시맨틱 서비스 검색을 위해 이용자의 사용 피드백(usage feedback)에 기반하여 키워드 온톨로지를 진화시키고 유사도를 계산하는 구성을 도시한 블록도이다.
본 기술의 구성은 도 9와 같이 인터페이스 모듈(910), 온톨로지 구축 및 관리 모듈(920), 연관어 검색 모듈(930), 키워드간 유사도 계산 모듈(940), 키워드 및 관계 추가 모듈(950), 온톨로지 저장소(300)을 포함한다. 연관어 검색 모듈(930)과 키워드간 유사도 계산 모듈(940)은 온톨로지 저장소의 데이터를 리드(read)하여 서비스 검색 장치의 요청을 처리하고, 온톨로지 구축 및 관리 모듈(920)과 키워드 및 관계 추가 모듈(950)은 온톨로지를 읽기 및 쓰기(read/write)하여 온톨로지를 생성 및 수정한다.
‘서비스 매칭을 통합 매쉬업 로직 생성/추천’ 기능으로부터 키워드 유사도 계산 요청을 받아 결과를 전달하는 인터페이스 모듈(910)은 입력 키워드에 대한 연관어를 제공하는 API들과 유사도 계산 API, 키워드 및 관계 추가 API로 구성된다. 키워드에 대한 연관어를 제공하는 API에는 유사어, 상위어, 하위어, 하위 콤포넌트(component) 각각을 제공하는 API 들이 있으며, 유사어, 상위어, 하위어에 대한 계층어를 제공하는 API, 그리고 유사어, 상위어, 하위어, 하위 콤포넌트(component)에 대한 모든 연관어를 제공하는 API로 구성된다. 유사도 계산 API는 두 키워드를 입력받아, 온톨로지 저장소에 정의된 키워드에 대해 최단 경로 길이를 계산하여 유사도 값을 계산하여 제공하며, 키워드 및 관계(relation) 추가 API는 검색 빈도가 높은 키워드에 대해 기존 온톨로지에 키워드를 추가하는API이다.
서비스 매쉬업을 위한 서비스 검색 시에, 입력 키워드와 일치하는 이름의 서비스를 레지스트리에서 찾아 제공하게 된다. 이 때 서비스 개발자에 따라서 같은 의미를 다양한 용어로 명세(description)할 수 있으므로, 서비스 키워드에 대한 연관어들을 온톨로지로 모델링하여 키워드 온톨로지를 구축하고, 서비스 검색 시에 키워드에 대한 연관어들을 찾아 제공함으로써 보다 확장된 질의 결과를 제공할 수 있다.
이를 위한 온톨로지 구축 및 관리 모듈(920)은 서비스에 대한 기능적 시맨틱 정보를 기반으로 관련 키워드를 추출하는 과정과, 키워드들의 카테고리에 따라 온톨로지를 모델링하여 온톨로지 저장소(300)에 저장하는 과정을 수행한다. 서비스에 대한 기능적 시맨틱 정보는 서비스에 대한 이름(service name), 서비스 카테고리(service category), 서비스 제공자(service provider), 서비스 설명(description), 서비스 제공 국가(country) 등으로 서비스 개발자가 서비스 검색을 할 때 입력 키워드가 된다. 이 키워드를 기반으로 키워드 간 유사어를 정의하고, 계층적 포함관계에 따라 상위어, 하위어, 하위 component를 모델링하여 OWL 클래스 형태의 온톨로지를 생성한다.
연관어 검색 모듈(930)은 키워드를 입력 받으면, 온톨로지 저장소(300)에서 키워드와 일치하는 클래스를 찾고, 전체 온톨로지 중에서 키워드 클래스와 연관어(유사어, 상위어, 하위어)로 정의된 목록을 검색하여 확장된 검색 결과를 제공한다.
이 때 온톨로지에 대한 추론 과정을 통해 직접 연관 관계를 정의한 키워드뿐 아니라, 추론에 의해 키워드간 연관관계가 확장되며, 이 확장된 키워드를 기반으로 등록된 서비스를 검색함으로써 서비스 개발자는 의도하는 서비스를 찾아 매쉬업에 이용하게 된다.
키워드간 유사도 계산 모듈(940)은 두 키워드를 입력 받아 온톨로지 저장소에 정의된 키워드이면서, 같은 OWL 파일에 정의되어 연관관계가 있는 경우에, 두 키워드간 연결 경로 중에서 최단 경로 길이를 계산한다.
두 키워드가 유사어로 연결되어 있거나 하위어로 직접 연결이 되는 있는 경우에 대한 기본 값(value)을 지정하고, 경로 길이 수에 따라 값(value)을 곱하여 유사도 값을 계산하여 제공한다.
키워드 및 관계 추가 모듈(950)은 사용 피드백(usage feedback)을 기반으로 키워드 온톨로지를 추가하여 온톨로지를 자동으로 진화시킨다. 대상으로 하는 사용 피드백(usage feedback)은 서비스 개발자가 입력하는 빈도가 높은 키워드와 서비스 검색 결과 선택되는 서비스에 대한 키워드들로 ‘서비스 추천 및 개발자 피드백 마이닝’ (S130)단계로부터 사용 피드백(usage feedback) 정보를 얻어 키워드 온톨로지를 추가한다.
온톨로지에 정의된 키워드 set인 경우에 해당 키워드가 정의된 OWL 파일을 찾아 기 생성되어 있는 키워드인 경우에는 키워드간 관계 값(relation value)을 업데이트하고, 정의되지 않은 키워드에 대해서는 키워드를 생성하여 관계(relation)를 추가한다. 온톨로지에 정의되지 않은 키워드 set인 경우는 먼저 OWL 파일을 생성하고, 해당 키워드들을 클래스로 정의하여 생성한 후, 키워드간 관계(relation)을 추가해 준다. 이 키워드 및 관계(relation) 추가 기능을 자동으로 수행함으로써 온톨로지를 자체적으로 진화시킬 수 있다.
도 10은 키워드에 대한 연관어를 검색하는 방법의 흐름도이다.
검색 키워드를 입력 받으면(S1010), 온톨로지 저장소에 정의된 키워드인지 확인하고(S1020), 온톨로지에 정의된 키워드에 대해서 연관어 검색 기능을 수행하게 된다(S1030). 검색 키워드가 온톨로지에 정의되어 있지 않은 경우는 키워드 및 관계(relation) 추가 모듈로 전달하여 추가 대상 키워드인지 확인한다(S1025).
온톨로지 저장소에서 해당 키워드와 일치하는 클래스를 찾아 유사어 클래스 목록, 상위어 클래스 목록, 하위어 클래스 목록 각각에 대한 연관어 목록을 검색하거나 모든 연관어를 검색할 수 있다(S1040). 또한 하위어 클래스에는 Partof 속성을 정의하여 하위어 중에서 컴포넌트(component) 가 되는 클래스를 검색하여 결과를 전달한다(S1050). 이 때 리즈너(reasoner)를 통해 직접 관계(relation)를 정의한 관계뿐 아니라 추론에 의해 정의된 관계를 통해 확장된 검색 결과를 제공한다.
도 11은 키워드 및 관계 추가 기능에 대한 순서도이다.
키워드 및 관계 추가 기능은 서비스 검색 장치로부터 검색 키워드 및 사용 빈도가 높은 서비스의 키워드에 대한 사용 피드백(Usage Feedback) 정보를 받아(S1110), 기존 온톨로지에 정의된 연관 키워드 set과 매치되는지 체크한다(S1120).
온톨로지에 정의된 키워드 set과 매치되는 경우에 해당 키워드가 정의된 OWL 파일을 찾고(S1130), 키워드 집합(set) 전체가 기존 온톨로지로 정의되어 있는 풀 매치(full match)의 경우는 해당 키워드간 관계 값(relation value)을 업데이트한다(S1140). 키워드 집합(set) 중 일부가 온톨로지에 정의되어 있는 부분 매치(partial match)의 경우는 없는 키워드에 대해 키워드를 클래스 형태로 생성하고(S1150), 관련 클래스간 관계(relation)을 추가한다(S1160).
온톨로지에 정의된 키워드 집합(set)과 매치되지 않는 낫 매치(not match)의 경우는 먼저 OWL 파일을 생성하고(S1170), 해당 키워드들을 클래스로 정의하여 생성한 후(S1180), 키워드간 관계(relation)을 추가해 준다(S1190). 이와 같이 키워드와 관계(relation)을 자동으로 업데이트하거나 생성함으로써 자동으로 온톨로지를 진화시키는 특징이 있다.
도 12는 키워드간 유사도 계산 기능에 대한 순서도이다.
키워드간 유사도 계산 기능은 소스와 타겟이 되는 두 키워드를 입력 받아(S1210) 온톨로지 저장소에 정의되었는지 체크하고(S1220), 두 키워드가 같은 OWL 파일에 정의된 경우에 유사도 계산 기능을 수행한다(S1240). 두 키워드가 온톨로지에 정의되지 않은 경우는 “온톨로지에 정의되지 않은 키워드”임을 리턴하고(S1230), 두 키워드가 같은 OWL 파일에 정의되지 않은 경우는 “키워드간 유사도가 정의되지 않음” 메시지를 리턴한다(S1250).
키워드간 경로는 해당 OWL 파일에서 소스가 되는 키워드로부터 시작하여 타겟이 되는 키워드까지 도달하는 경로 중에서 최단 경로 길이(depth)를 계산하고(S1260), 경로 길이를 기반으로 유사도를 계산하여(S1270), 결과값을 전달한다(S1280). 두 키워드 KA, KB가 유사어(owl:equivalentClass)로 연결되어 있는 경우 weight value(Wequ), 하위어(rdfs:subClassOf)의 hierarchy 연결되어 있는 경우 weight value(Wh), 경로 길이(depth)는 n인 경우, 키워드간 유사도는 소스가 되는 키워드 A(1310 : 도 13 참조)로부터 시작하여 타겟이 되는 키워드 G(1370)까지 도달하는 경로 중에서 최단 경로 길이(depth)를 기반으로 다음과 같이 계산한다.
Similarity (A, G) =
Figure pat00002
where n(A, G): path distance between A and G,
node i : node(s) on the path between A and G (1 ≤ i <n+1),
= Wequ if a node i is a rdfs:subClassOf of node (i+1),
= Wsub if is a node I is a rdfs:subClassOf of node (i+1).
유사어 또는 하위어 연결에 대한 가중치 값(weight value)는 서비스 검색 기준에 따라 이용자가 최적화하여 사용할 수 있으며, 직접 유사어 또는 하위어로 연결된 경우는 추론에 의해 연결관계를 갖는 형제 관계(sibling)로 연결된 경우보다 유사도가 높다.
도 13은 키워드 온톨로지에서 두 키워드간 유사도 계산 예를 도시한 도면이다. 도 13에서 A(1310)와 B(1320)의 유사어 연결 관계는 owl:equivalentClass 로 정의하고, A(1310)와 C(1330)의 하위어 연결은 rdfs:subClassOf로 표현된다. A(1310)에서 G(1370)까지 최단 경로 길이(depth)는 A ? C ? F ? G 이며, A-C 관계의 값은 0.9, C-F 관계의 값은 0.8, F-G 관계의 값은 0.8이므로 Similarity (A, G) = 0.9 * 0.8 * 0.8 = 0.576으로 계산된다.
[F] 서비스간 연관성을 높이기 위한 시맨틱 서비스 매칭 (S150):
이 기술은 웹상에 공개된 모든 기능적/비기능적 정보를 그 개별적 특성에 적합하게 문법적, 의미적으로 고려하여 대체 가능한 서비스(compatible service)와 상호운용 가능한(interoperable service) 서비스의 연관성을 계산하고 이들 간의 연관성을 높일 수 있는 방법을 제안하여 매끄러운 서비스 연결과 대체가 가능하도록 하는 것이 목적이다.
도 14는 시맨틱 서비스 매칭을 통합 매쉬업 로직 생성/추천의 기술 구성도이다.
- 상호 운용이 가능한 서비스 매칭(Interoperable Service Matching)(S1410): 매쉬업 로직을 만들어가는 과정에서 개발자가 선택한 선행 서비스와 후행 서비스에 대해 상호연결성을 계산하는 기능
- 충돌 검출 및 해소 제안(Conflict detection and resolution suggestion)(S1420): 매쉬업 로직 안에서 서비스간 연관성 (대체가능성, 상호연결성)을 높이고자 충돌(conflict)를 찾아 해소하는 방법을 추천하는 기능
- 매쉬업 로직을 생성(making mashup logic)(S1430): 개발자가 의도대로 서비스를 선택하여 매쉬업하는 과정에서 연결되는 서비스간 연관성 정보를 포함한 매쉬업 로직을 생성하는 기능
- 호환성 있는 서비스 매칭(Compatible Service Matching)(S1440): 매쉬업 로직을 만들어가는 과정에서 개발자가 선택한 서비스와 대체가능한 서비스를 찾아 연결성을 계산하는 기능
- 유형 호환성 매트릭스(Type Compatibility Matrix): 서비스가 가지는 데이터 특성 중 파라미터의 타입의 매칭을 계산하기 위한 호환성 매트릭스
- 유형 충돌 해소 매트릭스(Type Conflict Resolution Matrix): 서비스가 가지는 파라미터의 타입간 호환성을 높이기 위해 충돌을 해소하는 방법(라이브러리)을 포함하는 매트릭스
도 15는 도 14에서 설명한 각 기술들이 매칭을 수행하는 흐름도이다.
도 1에서 프로그램 개발자(1)가 서비스를 선택하면(S12), 선행 서비스와 후행 서비스간 연결을 위해 연관성 계산을 요청한다(S1450-S1451). 상호 운용 가능한 매칭(Interoperable Service matching) (S1410)기능은 선행 서비스와 후행 서비스간 상호연결성을 계산하는 과정에서(S1452) 서비스 온톨로지를 통해 유사어 정보를 얻는다 (S1453). 매칭을 마치고 입출력 파라미터간 충돌을 완화/해소하기 위해 충돌 검출 및 해소 제안(Conflict detection & resolution suggestion)(S1420)을 요청하고, 이를 마치면 매칭과 충돌 완화/해소 정보가 모두 포함된 서비스 매쉬업 로직이 생성된다(S1456). 이 과정에서 선택된 서비스가 포함된 매쉬업 결과를 획득하여 매쉬업 로직 생성 시 추천 서비스로 추가한다(S1457). 개발자의 서비스 선택(S12)과 관련하여 완성된 매쉬업 로직은 개발자에게 시각화되어 추천된다(S1458-S1459).
프로그램 개발자는 반환된 서비스 매쉬업 로직을 수정할 수 있다. 이 과정에서 매쉬업 로직 내의 서비스를 다른 서비스로 교체하고자 하는 경우, 호환 가능한 서비스 매칭(Compatible Service matching)(S1440)으로 대체가능 서비스를 요청한다(S1461). 호환 가능한 서비스 매칭(Compatible Service matching)(S1440)는 서비스 레지스트리로부터 타겟 서비스들을 검색하여 이들에 대해 소스 서비스와 타겟 서비스간에 대체가능성을 계산하고 타겟 서비스 목록과 매칭 계산 결과를 함께 반환한다(S1464). 반환된 결과가 시각화되면 개발자는 매쉬업 로직을 완성하기 위해 반복적으로 상기 과정(S1460~ S1465 또는 S1451~S1465)을 수행하면서 로직을 완성한다.
도 16은, 도 14의 호환성 있는 서비스 매칭(Compatible Service Matching)(S1440)와 상호운용 가능한 서비스 매칭(Interoperable Service Matching)(S1410)의 계산 방법을 개념적으로 도식화한 도면이고, 도 17은 시맨틱 서비스 레지스트리에 저장된 웹서비스 메타데이타를 나타낸 표이고, 도 18은, 시맨틱 서비스 매칭에 적용되는 매칭 기준을 나타낸 표이다.
두 방법 모두 서비스의 기능적 특성(Functional properties)(1603, 1608), 비기능적 특성(Non-functional properties)(1604, 1607), 데이터 특성(Data properties)(1605,1606)에 적합한 비교 계산을 개별적으로 수행하고, 각각의 결과에 개발자가 설정한 매칭 기준(matching criteria)(도 15의 S1456) 중 해당 가중치(1633, 1634)를 적용하여 합산하는(1631, 1632) 방식이다. 서비스 정보는 시맨틱 서비스 레지스트리에 저장되어 있으며, 도 17의 표와 같이 정보의 특성에 가장 적합한 비교방식이 매칭 계산에 적용된다. 매칭 기준(matching criteria)은 도 18의 표에서 설명한다.
도 19 및 20은, 도 16에서 나타난 호환성 있는 서비스 매칭과 상호 운용 가능한 서비스 매칭 방법을 수식으로 표현한 도면이다.
도 20 및 21은, 각각 상호 운용 가능한 서비스 매칭과 호환성 있는 서비스 매칭 중 가장 주요한 요소인 데이터 특성(Data Feature)(DFS, DFI)의 매칭 알고리즘인 CompareParam의 수도 코드(pseudo code)를 도시한 도면이다.
소스 서비스의 입/출력 파라미터 i개(2101, 2104)와 타겟 서비스의 입/출력 파라미터 j개(2102, 2105)에 대해 i*j 만큼 (2101~2102, 2104~2105) 반복해서 연관성을 계산하여 이름의 연관성은 Sname [i,j]에(2103) 타입의 호환성은 Stype [i,j] 에(2106) 저장한다. 비교 계산이 모두 끝나면 Sresult[i,j]에 Sname [i,j]와 Stype[i,j]의 값을 합하여 저장한다(2107). Sresult[i,j]에는 두 서비스간 파라미터들 간의 이름과 타입의 연관성이 저장되어 있으며, Sresult[i,j] 셀의 모든 값을 더하여(2108) 총 파라미터 개수로 나눔으로써(2109) 연관성의 평균치를 구한다. 파라미터 이름은 의미상 유사성 비교를, 파라미터 타입은 타입간 호환성을 검사한다. 타입간 호환성 검사 방법은 유형 호환성 매트릭스(Type Compatibility Matrix)를 이용하며 도 22에서 자세히 설명한다.
도 22는 CompareParam 중 유형 호환성(type Compatibility)를 효율적으로 수행하기 위한 매트릭스를 도시한 도면이다.
이 매트릭스는 W3C에서 권고하는 XML schema의 (http://www.w3.org/TR/xmlschema-2/#atomic-vs-list)으로 primitive 타입을 기반으로 타입 대 타입 간 호환성(compatibility)을 계산한 매트릭스이다. 각 열은 소스 서비스의 파라미터 타입이고, 각 행은 소스 파라미터가 할당(assign)될 타겟 서비스의 파라미터 타입을 의미하여, 매트릭스 값은 두 파라미터 타입이 얼마나 호환성 있는지 나타내는 값이다. 호환성 값은 3단계로 구분되는데, 값이 1이면, 소스 파라미터에서 타겟(target) 파라미터로 할당(assign)될 때 타입의 변환 없이 그대로 할당(assign) 가능한 경우이고, 값이 0.5이면 값이 할당은 가능하나 값이 저장될 메모리 크기 또는 값의 표현 방식에 따라 타입 변환 작업이 필요한 경우를 의미한다. 값이 0인 경우에는 타입 변환이 불가능하여 호환가능(compatible)하지 않은 경우이다. 일 례로, 매트릭스 8열의 타임(time) 타입은 17행의 anyURI 타입과 호환성 있지 않으므로, 값이 0이다. 마찬가지로 17열의 anyURI 타입과 8행의 time 타입도 호환도(compatibility)도 0이다. 그러나, 이 매트릭스는 대칭적(symmetric)이지 않다. 그 이유는 소스에서 타겟으로 할당 되어야 하는 방향성을 가지기 때문이다. 예를 들어, A의 타입이 int이고, B의 short인 경우, B를 A에 할당하는 것은 조건 없이 가능하지만(compatibility=1), A를 B에 할당하는 것은 A 변수의 메모리 앞부분을 소실하는 문제가 생기므로, 타입 변환 처리 시 다른 조치가 필요하다(compatibility=0.5). 도 22의 typeCompatibility 매트릭스는 XML schema에 국한되지 않고, 행과 열에 임의의 데이터 타입(예, 멀티미디어 데이터, 시맨틱 데이터 등)을 추가하여 확장할 수 있다.
도 23은 CompareParam알고리즘(2100)을 적용한 일 실시예로 소스 서비스와 타겟 서비스간의 호환도(Compatibility)를 계산한 결과를 나타내는 테이블이다.
모든 매트릭스에 제1열은 타겟 서비스의 파라미터고, 제 1행은 소스 서비스의 파라미터고, 각 셀의 값은 compareParam에서 기술한 Stype[i,j](2320)과 Sname[i,j](2321)의 계산 결과이다. Sname[i,j]에서는 Keyword ontology(300)를 wordSimilarity(1651)를 계산하고, Stype[i,j]에서는 도 22의 매트릭스로 타입 간 호환도(compatibility)를 계산하여 두 매트릭스의 합인 Sresult[i,j](2107, 2322)를 생성한다. 최종적으로 Sresult[i,j]의 총합 9.2(2108)을 내어 (source 파라미터 개수(4)* target 파래메터 개수(4) * 2(matrix)=32)로 나눈 값 9.2/32 (2109)을 결과로 반환한다.
도 24는 데이터 특징(Data Feature)간의 연관성 계산 결과에 따라 매칭 정도를 높이기 위한 충돌 발견 (conflict detection) 및 해소 (Conflict resolution) 절차를 도시한 흐름도이다.
시멘틱 서비스 매칭(semantic service matching)의 충돌(conflict)를 찾아 해소 방안을 찾는 것은 오직 데이터 특징(Data Feature) (1605, 1606)에 국한된다. 기능 특징(Functional Feature)(1603, 1608)와 비 기능 특징(Non-functional Feature) (1604, 1607)간 매칭 시 충돌을 발견했다 하더라고 해소할 수 없거나 할 필요가 없기 때문이다. 예를 들어, 두 서비스 간의 호환도(compatibility) 매칭 결과 기능 특징(Functional Feature)인 디스크립션(description) 이나 목표(goal)은 잘 매치되나 서비스 명칭(service name)이나 카테고리(category)가 서로 불일치한다 하더라도 두 서비스의 호환도(compatibility)를 높이기 위해 서비스 명칭(service name)이나 카테고리(category)의 불일치를 해소할 필요가 없기 때문이다.
서비스 간 연관성을 높이기 위한 방법으로서 연관성 한계치보다 낮은 연관성을 보일 때(S1475-Y), 연결되는 파라미터 타입의 호환도(compatibility)를 계산하고(도22, S1480), 변환 함수가 제공된다면 충돌이 해소될 수 있는 파라미터의 조합을 찾아(S1485) 적절한 변환 함수를 추천하는 방법이다. 적절한 변환 함수는 도 25의 매트릭스에 저장되어 있다. 연관성이 한계치보다 높다면 충돌이 크지 않으므로 해소 방안을 찾지 않고 매칭 작업을 마친다 (S1490).
도 25는 도 22의 매트릭스를 기반으로 그 값이 0.5인 경우, 파라미터 타입간 호환 가능하도록 타입 변환 함수를 정의하여 제공하는 테이블을 도시한 도면이다.
이 매트릭스를 통해 충돌이 발견된 타입간에 충돌을 해결할 수 있는 함수를 제공함으로써, 서비스 간 호환도 나 상호 운용성을 높일 수 있는 방법을 제안할 수 있다. 추천된 함수는 라이브러리로 함께 제공된다. 예를 들어, 매트릭스의 20행의 integer 타입(2500)과 16열의 base64Binary 타입(2501)의 유형 호환도(type Compatibility)는 0.5였으며, 유형 충돌 해소 매트릭스(Type Conflict Resolution Matrix)를 참조하면 이들의 값을 변환하는 라이브러리인 Binary2Integer()(2502)를 얻는다. 두 서비스의 연관성의 한계치를 넘지 못하는 서비스 쌍의 모든 파라미터에 대해 유형 충돌 해소 매트릭스(Type Conflict Resolution Matrix)를 적용하여 충돌 해소 라이브러리를 찾아 결과로 반환한다. 초기 연관성 계산 값과 충돌 해소 결과로서 데이터 변환 라이브러리는 서비스 매칭 뷰(Service Matching View)에 출력된다. 개발자는 매칭(matching) 결과와 충돌 해소 함수를 함께 제공받아 손쉽게 서비스를 대체하거나 연결할 수 있게 된다. 일부 ‘-’로 표시된 칸은 생략된 것이다.
도 26은 본 발명의 일 실시 예에 따른 충돌 해소 (Conflict resolution) 방법을 나타내는 도면이다.
소스 서비스가 Weather2이고, 타겟 서비스가 GlobalWeather인 경우, Weather2의 output중 short 타입을 GlobalWeather의 input 파라미터로 할당(assign)할 때, 타입 변환을 가능하게 하는 라이브러리를 추가하여 두 서비스를 충돌을 해소할 수 있음을 제안한다. 비단 short2Int() 뿐 아니라, 도 25에 정의한 해소 방법들이 검색되어 표시될 수 있다. 도 25의 의한 유형 충돌 해소 매트릭스는 XML schema에 국한되지 않고, 임의의 데이터 타입(예, 멀티미디어 데이터, 시맨틱 데이터 등)에 대해 데이터 변환 라이브러리를 추가하여 확장할 수 있다. 충돌 해소 라이브러리와 충돌 해소 메뉴도 본 실시 예에서와는 달리 시각화될 수 있다.
[G] 가십 기반 외부 서비스 매쉬업 정보 수집 방법 (S160):
본 기술에서는 서비스 제공자와 소비자간의 매쉬업 응용을 매개로 한 에코시스템을 구축하기 위하여 서비스 제공자가 근사도가 높은 서비스들의 관계를 가십 기반으로 애드혹 하게 연결하는 방법을 제시함으로써 매쉬업 정보를 중앙집중관리하는 비용을 절감하고, 매쉬업 정보의 최신성과 유효성을 보장하는 서비스 네트워크를 구성하여 이 정보를 다른 매쉬업 생성에 추천하려는 데 그 목적이 있다.
도 27은 본 발명이 적용된 매쉬업 등록/발행/구독 인터페이스와 가십 정보를 저장하는 서비스 제공자의 도면이다.
서비스 제공자(2700)은 한 개 이상의 서비스(2702)를 호스팅하며 서비스 정보를 등록/발행/구독(2703) 인터페이스를 가진다. 이 인터페이스는 서비스들을 사용하는 매쉬업, 서비스의 정보를 구독하는 매쉬업 포탈, 매쉬업 개발자 등에 의해 사용된다. 매쉬업되는 다른 서비스는 동일한 서비스 제공자 혹은 다른 서비스 제공자에 의해 호스팅 되며, 가십 정보 저장소(2701)에는 해당 서비스와 연관된 매쉬업 정보만을 포함한다. 나중에 다른 서비스 제공자와 발행/구독 네트워크를 구성하면 가십 정보를 주고 받을 것이다.
도 28는 본 발명이 적용된 서비스 제공자의 매쉬업 등록/발행/구독 메시지 형식을 도시한 도면이다.
매쉬업 등록 메시지(2804)는 매쉬업 서비스의 정보와 더불어 매쉬업에 포함된 개개의 서비스의 정보를 나타낸다. 매쉬업 등록 메시지(2804)들로부터 서비스 간의 매쉬업 네트워크를 분석한 내용을 바탕으로, 매쉬업 발행 메시지(2805)는 서비스의 매쉬업 횟수, 주소, 요청/응답 형식 등을 포함하는 메타 정보(Meta Information)와 해당 서비스와 매쉬업 된 다른 서비스의 정보를 포함한다. 매쉬업 구독 메시지(2806)은 특정 기준에 따라 매쉬업 정보를 구별하여 받을 수 있는데, 파레토 법칙(Pareto’s Law)에 따라 매쉬업 빈도수가 높은 서비스를 구독하거나 롱테일 전략(Long Tail Strategy)에 따라 빈도수는 낮지만 종류가 다양한 서비스를 구독하도록 돕는다.
도 29는 다양한 서비스 제공자들과 이들이 호스팅하는 서비스로 매쉬업을 구성한 예를 도시한 도면이다.
서비스 A(2900), 서비스 B(2901), 서비스 C(2902)는 서로 다른 서비스 제공자에 의해 호스팅 된다고 가정한다. A(2903)는 서비스A(2900)을 호출하는 클라이언트이고, B(2904)는 서비스 B(2901)를 호출하는 클라이언트이며, C(2905)는 서비스 C(2902)를 호출하는 클라이언트이다. A, B, C 세 개의 클라이언트가 모여 하나의 매쉬업 서비스를 구성한다.
도 30은 매쉬업 정보가 전파되는 일 실시 예를 도시한 도면이다.
서비스 제공자는 서비스(2700)와 가십 정보 저장소(2701)로 구성된다. 서비스 제공자 A와 B는 서로에게 매쉬업 정보를 발행하고 구독하는 관계이다. 본 일 실시는 서비스 A와 B로 매쉬업을 만든 경우로서, 매쉬업 정보의 공유는 해당 서비스의 제공자끼리만 이루어진다. 서비스 A가 포함된 매쉬업 정보(3000)를 수신한 서비스 제공자는 가십 정보 저장소에 다른 서비스의 정보(3001)를 업데이트한다. 이 정보를 다른 서비스 제공자에게 발행(3002)한다. 이 때, 다른 서비스 제공자가 호스팅하는 서비스 정보는 제외한다. 서비스 B가 포함된 매쉬업 정보(3003)를 수신한 서비스 제공자는 가십 정보 저장소에 다른 서비스의 정보(3004)를 업데이트한다. 이 정보를 다른 서비스 제공자에게 발행(3005)한다. 각 가십 저장소에는 다른 서비스들과의 closeness가 누적되고, 다른 서비스 제공자에게 전파된다. 새로운 매쉬업 서비스를 개발할 때, 어느 서비스 제공자에게 접속을 해도 가십 정보를 기반으로 가장 연관성이 있는 서비스와 연관성은 상대적으로 적지만 다양한 서비스들의 정보를 얻을 수 있다.
도 31은 시간에 따라 진화하는 매쉬업 네트워크의 일 실시 예를 도시한 도면이다.
t1에서 독립적으로 존재하는 서비스(3100)들이 있다고 가정한다. t2에서 두 개의 서비스(회색)로 매쉬업을 구성한다. 이 때, 각 서비스를 호스팅 하는 서비스 제공자들 사이에는 발행/구독 네트워크(3101)가 형성하고 가십 정보를 공유한다. t3에서 새로운 매쉬업이 구성되면서 두 개의 서비스(회색) 사이에 발행/구독 네트워크(3102)가 형성되고 가십 정보를 공유한다. t4은 발행/구독 네트워크 상에 있는 서비스 제공자들 간에 가십 정보(3103)가 유통된 모습이다. t5에서 새로운 매쉬업이 구성되면서 세 개의 서비스(회색) 사이에 발행/구독 네트워크가 구성되고, 재계산된 가십 정보도 업데이트한다. t6에서 새로운 서비스(3104)가 매쉬업하려 할 때, 기존의 네트워크의 어느 서비스 제공자에게 접속하더라도 closeness가 가장 높은 서비스에 대한 가십 정보(3103)를 쉽게 얻을 수 있다. 또한, 그 서비스와 연결된 다른 서비스의 정보도 얻음으로써 매쉬업에 참고할 수 있다.
상기와 같은 본 발명의 다양한 실시 예에 따르면, 본 발명은 아래와 같은 효과를 갖는다.
1) 의도 그래프를 이용한 프로그램 개발자 의도 탐지 기법
세밀한 의도 파악이 필요한 매쉬업 서비스 개발 환경을 위해 제안되었지만, 기타 프로그램 개발자 의도 모델링과 피드백을 수용하면서 진화하는 기타의 여러 지능형 시스템에의 적용도 가능하다. 파악하려는 프로그램 개발자의 의도 범주와 검색의 대상이 되는 서비스 혹은 제품의 목록을 대체하면서 확장 활용이 가능하다.
자동/반자동으로 태깅된 각 서비스의 사용 의도 (혹은 목적)는 잠재적 오류를 내포하고 있는데, 이 오류들을 프로그램 개발자의 피드백을 통해 보정할 수 있다.
동사구 수준의 의도 시각화와 관련 서비스의 추천에 대한 프로그램 개발자 피드백은 보다 직관적인 피드백을 통해 프로그램 개발자 의도를 저장/관리/활용할 수 있다. (기존 웹 검색 (혹은 기타 특정 목적의 검색)에서는 프로그램 개발자 질의에 대응되는 웹페이지 (혹은 사용한 서비스, 책)을 이들의 클릭 빈도에 의한 클릭 그래프 (click graph)를 구성할 수 있었으나, 이것은 프로그램 개발자의 명시적 피드백을 수용하기에는 부족하다.)
기존 개발자가 구체화 하지 못하고 있던 잠재적 의도에 매핑되는 서비스들 (예, 웹서비스 혹은 API)을 제시 후, 프로그램 개발자의 피드백을 통해 의도 파악을 수행함으로써, 애매성이 높은 프로그램 개발자 질의에 대해 서비스 검색/추천의 효율성을 향상 시킬 수 있다.
2) 상호연결 서비스간 연관도를 높이는 시맨틱 서비스 매칭 기법:
데이터 타입간의 호환성을 알고리즘에 의해 자동으로 계산할 수 있기 때문에, 실행 중에 동적으로 연결 서비스를 찾아 실행할 수 있다. 즉, 사람이 개입하지 않아도 적절한 서비스를 찾고, 대체하고, 연결하는 작업을 컴퓨터가 수행할 수 있으므로 런타임 자동 서비스 매쉬업을 가능케 할 수 있다.
웹서비스를 조합하여 응용을 개발하고자 하는 분야라면 TV앱이든, 모바일 앱이든, 데스크탑 앱이든 어느 개발 환경에도 적용할 수 있고, 나아가 일반 프로그램 개발자가 디바이스에서 직접 동적으로 서비스를 조합하여 새로운 앱을 만들 수 있는 기반 기술로 활용할 수 있다.
3) 온톨로지 갱신과 온톨로지 내 키워드 유사도 검사
이용자가 입력한 검색 키워드와 선택한 서비스에 대한 목록 정보를 feedback 받아, 온톨로지 키워드를 자동으로 업데이트하거나 추가함으로써 온톨로지를 자체적으로 진화시킬 수 있는 기능은, 실시간 변화하는 이용자의 서비스 검색 및 이용 패턴을 기반으로 서비스 키워드간 유사도를 계산함으로써 서비스 검색 및 매칭의 의미적 처리를 지원할 수 있다.
4) 가십 기반의 발행/구독 네트워크로 매쉬업 정보를 유통하여 매쉬업 히스토리 구축 방법
서비스의 매쉬업 횟수와 함께 조합된 다른 서비스와의 관계를 계량한 데이터를 활용하여 새로운 매쉬업 개발하는데 활용할 수 있다. 매쉬업 포탈에서 모든 서비스의 정보를 관리하는 매쉬업에 포함된 서비스의 제공자끼리만 정보를 유통하고 다른 서비스 제공자에게 이를 전파하지 않음으로써 전송비용을 절감할 수 있다. 본 기술의 매쉬업 정보는 근사도가 높은 서비스들의 관계를 나타냄으로써 매쉬업 정보의 효용성을 높일 수 있다. 본 발명은 발행/구독 모델에 따라 서비스 제공자가 서비스 정보와 매쉬업 네트워크를 발행하여 매쉬업 포탈과 매쉬업 개발자가 최신 정보를 쉽고 신속하게 업데이트 할 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100 : 의도 그래프 200 : 서비스 레지스트리
300 : 서비스 온톨로지 400 : 매쉬업 히스토리

Claims (20)

  1. 프로그램 제공 방법에 있어서,
    사용자의 질의를 수신하는 단계;
    상기 사용자의 질의를 시맨틱 분석하는 단계;
    의도 그래프를 이용하여 상기 사용자의 의도를 판단하는 단계;
    상기 판단된 의도에 기초하여 적어도 하나의 서비스를 추천하는 단계;
    상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스를 매쉬업하는 단계; 및
    상기 매쉬업 결과로 생성된 프로그램을 제공하는 단계;를 포함하는 프로그램 제공 방법.
  2. 제1항에 있어서,
    상기 사용자의 질의를 시맨틱 분석하는 단계는,
    상기 사용자의 질의에 하나의 단어만이 포함된 경우, 웹 리소스의 어휘 통계를 이용하여 상기 하나의 단어와 함께 사용되는 추가적인 단어를 추천하는 단계를 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  3. 제1항에 있어서,
    상기 사용자의 질의를 시맨틱 분석하는 단계는,
    상기 사용자의 질의에 하나의 개체 명칭을 나타내는 단어가 포함되어 있는 경우, 패턴 기반의 휴리스틱 및 통계적 수치를 이용하여 상기 개체 명칭을 인식하는 단계를 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  4. 제1항에 있어서,
    상기 의도 그래프는,
    상기 사용자 질의에 포함되어 있는 단어에 대한 서비스의 선택 확률로 나타내는 것을 특징으로 하는 프로그램 제공 방법.
  5. 제1항에 있어서,
    상기 사용자의 의도를 판단하는 단계는,
    상기 사용자 질의에 포함되어 있는 단어에 매칭되는 서비스 중 대응되는 단어에대한 서비스의 선택 확률이 높은 순서로 랭킹을 설정하는 단계;를 포함하고,
    상기 판단된 의도에 기초하여 상기 적어도 하나의 서비스를 추천하는 단계는,
    상기 설정된 랭킹 순서에 따라 상기 적어도 하나의 서비스를 추천하는 것을 특징으로 하는 프로그램 제공 방법.
  6. 제5항에 있어서,
    상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우,
    상기 선택된 적어도 하나의 서비스를 고려하여 상기 랭킹을 변경함으로써 상기 의도 그래프를 갱신하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  7. 제1항에 있어서,
    상기 사용자의 의도를 판단하는 단계는,
    상기 사용자에 개별화된 의도 그래프를 이용하여 상기 사용자의 의도를 판단하는 것을 특징으로 하는 프로그램 제공 방법.
  8. 제1항에 있어서,
    상기 의도 그래프를 이용하여 판단된 의도를 표시하는 단계;를 더 포함하고,
    상기 추천된 서비스 중 적어도 하나에 대한 선택 입력이 있고, 상기 표시된 의도 중 적어도 하나에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스 및 상기 선택된 적어도 하나의 의도를 고려하여 상기 의도 그래프를 갱신하는 것을 특징으로 하는 프로그램 제공 방법.
  9. 제1항에 있어서,
    상기 서비스를 추천하는 단계는,
    상기 적어도 하나의 서비스를 추천하여 아이콘으로 표시하는 단계를 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  10. 제1항에 있어서,
    상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우,
    상기 선택된 적어도 하나의 서비스 및 상기 사용자 질의에 포함되어 있는 단어를 이용하여 서비스 온톨로지를 검색하고 상기 서비스 온톨로지를 갱신하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  11. 제10항에 있어서,
    상기 온톨로지의 검색 및 갱신 단계는,
    상기 선택된 적어도 하나의 서비스 및 상기 사용자 질의에 포함되어 있는 단어의 연관어를 더 고려하여 상기 서비스 온톨로지를 검색하고 상기 서비스 온톨로지를 갱신하는 것을 특징으로 하는 프로그램 제공 방법.
  12. 제10항에 있어서,
    상기 온톨로지의 검색 및 갱신 단계는,
    상기 사용자의 서비스 선택 정보 및 상기 사용자 질의에 따른 복수의 키워드와 상기 온톨로지의 키워드 집합이 전체적으로 매칭되면, 상기 복수의 키워드 및 상기 온톨로지의 키워드 집합에 대한 관계 값(relation value)을 수정하고,
    상기 사용자의 서비스 선택 정보 및 상기 사용자 질의에 따른 복수의 키워드와 상기 온톨로지의 키워드 집합이 일부만 매칭되면, 상기 복수의 키워드 중 상기 온톨로지의 키워드 집합에 매칭되지 않는 키워드에 대한 클래스를 생성하여 상기 온톨로지에 추가하는 단계를 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  13. 제1항에 있어서,
    상기 선택된 적어도 하나의 서비스를 매쉬업하는 단계는,
    상기 추천된 적어도 하나의 서비스 중에서 적어도 하나의 서비스에 대한 선택 입력이 있는 경우, 상기 선택된 적어도 하나의 서비스를 레지스트리에서 독출하여 매칭하는 단계를 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  14. 제13항에 있어서,
    상기 매칭하는 단계는,
    상기 선택된 적어도 하나의 서비스 및 상기 사용자 질의에 포함되어 있는 단어를 이용하여 서비스 온톨로지를 검색하고, 상기 서비스 온톨로지에서 검색된 키워드들의 유사성을 계산하여 상기 매칭에 활용하는 것을 특징으로 하는 프로그램 제공 방법.
  15. 제13항에 있어서,
    상기 레지스트리는,
    복수의 서비스들에 대한 기능적인 특성 정보, 비 기능적인 특성 정보, 및 데이터 특성 정보를 기초로 통일된 형태로 상기 복수의 서비스들을 저장하는 것을 특징으로 하는 프로그램 제공 방법.
  16. 제15항에 있어서,
    상기 기능적인 특성 정보는 서비스 이름, 서비스 카테고리, 서비스 제공자, 서비스 명세, 및 서비스 목표 중 적어도 하나이고,
    상기 비 기능적인 특성 정보는 전달 프로토콜, 인증방법, 및 사용자 평가 중 적어도 하나이며,
    상기 데이터 특성 정보는 입력 매개변수 및 출력 매개 변수 중 적어도 하나인 것을 특징으로 하는 프로그램 제공 방법.
  17. 제1항에 있어서,
    상기 선택된 적어도 하나의 서비스를 매쉬업하는 단계는,
    상기 추천된 적어도 하나의 서비스 중에서 복수의 서비스들에 대한 선택 입력이 있는 경우, 상기 선택된 복수의 서비스들 사이의 연관성을 계산하는 단계;및
    상기 계산된 연관성에 따라 상기 선택된 복수의 서비스들 사이에 충돌이 발생한 것으로 판단되는 경우, 상기 발생된 충돌을 해소하는 단계;를 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  18. 제17항에 있어서,
    상기 서비스를 매쉬업하는 단계는,
    상기 선택된 복수의 서비스들 중 어느 서비스를 호환성 있는 다른 서비스로 대체하기 위한 사용자 입력이 있는 경우, 상기 호환성 있는 다른 서비스의 대체 가능성을 계산하는 단계를 포함하는 것을 특징으로 하는 프로그램 제공 방법.
  19. 제18항에 있어서,
    상기 호환성 있는 다른 서비스의 대체 가능성은 호환도 매트릭스에 따라 계산하는 것을 특징으로 하는 프로그램 제공 방법.
  20. 제1항에 있어서,
    상기 매쉬업 결과로 생성된 프로그램을 제공되는 경우, 사용자의 수정 입력이 있으면, 사용자 입력에 따라 상기 제공된 프로그램을 수정하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램 제공 방법.
KR1020140053545A 2013-05-13 2014-05-02 시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법 KR20140135100A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/276,451 US20140337372A1 (en) 2013-05-13 2014-05-13 Method of providing program using semantic mashup technology

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361822491P 2013-05-13 2013-05-13
US61/822,491 2013-05-13

Publications (1)

Publication Number Publication Date
KR20140135100A true KR20140135100A (ko) 2014-11-25

Family

ID=52455919

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140053545A KR20140135100A (ko) 2013-05-13 2014-05-02 시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법

Country Status (1)

Country Link
KR (1) KR20140135100A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101595314B1 (ko) 2015-06-18 2016-02-19 (주)청암아이티 원클릭 콘텐츠 서비스 기반의 스마트 수업 시스템
KR102011220B1 (ko) * 2018-09-20 2019-08-14 건국대학교 산학협력단 심층 신경망 관리 방법 및 장치
CN111837116A (zh) * 2017-12-18 2020-10-27 财富智慧股份有限公司 用于自动构建或更新对话式ai代理系统的分层对话流管理模型的方法、计算机装置及计算机可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101595314B1 (ko) 2015-06-18 2016-02-19 (주)청암아이티 원클릭 콘텐츠 서비스 기반의 스마트 수업 시스템
CN111837116A (zh) * 2017-12-18 2020-10-27 财富智慧股份有限公司 用于自动构建或更新对话式ai代理系统的分层对话流管理模型的方法、计算机装置及计算机可读存储介质
CN111837116B (zh) * 2017-12-18 2024-04-09 株式会社明芒科技 自动构建或更新对话式ai系统的对话流管理模型的方法
KR102011220B1 (ko) * 2018-09-20 2019-08-14 건국대학교 산학협력단 심층 신경망 관리 방법 및 장치

Similar Documents

Publication Publication Date Title
Karthikeyan et al. Fuzzy service conceptual ontology system for cloud service recommendation
US20140337372A1 (en) Method of providing program using semantic mashup technology
KR101793222B1 (ko) 어플리케이션 검색들을 가능하게 하기 위해 사용되는 검색 인덱스의 업데이트
US8352396B2 (en) Systems and methods for improving web site user experience
US10423881B2 (en) Systems and methods for semantic inference and reasoning
Martella et al. Practical graph analytics with apache giraph
US20150095303A1 (en) Knowledge Graph Generator Enabled by Diagonal Search
CA2897886C (en) Methods and apparatus for identifying concepts corresponding to input information
US20110060717A1 (en) Systems and methods for improving web site user experience
US9288285B2 (en) Recommending content in a client-server environment
US20130138586A1 (en) Service goal interpreting apparatus and method for goal-driven semantic service discovery
AU2011350049A1 (en) System and method for performing a semantic operation on a digital social network
US20140201203A1 (en) System, method and device for providing an automated electronic researcher
Kwapong et al. A knowledge graph based framework for web API recommendation
JP2023545945A (ja) コンテンツ管理システムにおけるコンテンツのスマートなカテゴリ化のためのシステムおよび方法
Krzywicki et al. Data mining for building knowledge bases: techniques, architectures and applications
Balke Introduction to information extraction: Basic notions and current trends
Quarteroni et al. A bottom-up, knowledge-aware approach to integrating and querying web data services
KR20140135100A (ko) 시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법
Senthil Kumar et al. An effective bootstrapping framework for web services discovery using trigram approach
US11106662B2 (en) Session-aware related search generation
Kalaï et al. User's Social Profile--Based Web Services Discovery
Nawi et al. Issues and challenges in the extraction and mapping of linked open data resources with recommender systems datasets
CN116569164A (zh) 在内容管理系统中对内容进行智能归类的系统和方法
Costa‐Montenegro et al. In‐memory distributed software solution to improve the performance of recommender systems

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination