SPIN overview

 http://spinrdf.org/

SPIN – SPARQL Inferencing Notation

December 31, 2008

SPIN은 SPARQL을 이용해서 제한(constraints)과 추론 규칙을 정의하는 RDF로 된 vocab  이다. 이를 이용하여 SPARQL  function 과 query templates을 정의할 수 있다. SPIN을 이용하면 다음과 같은 것이 가능하다.

  • 어떤 프로퍼티에 의한 다른 프로퍼티의 값 계산 : 예를 들어, 생년월일에 따른 나이계산, firstname과 surname의 concatenation 등…
  • 제한사항(constraints) 체크 : 예를 들어, 어떤 입력 값에 대한 constraints 설정에 따른 불일치성(inconsistency) 자동 체크
  •  특정 조건하에서 실행되어져야 하는 규칙 집합을 고립 – 예를 들어 증분 추론(incremental reasoning)을 위해서 어떤 리소스가 처음 만들어질 때 특정 값을 초기화한다던지, 또는 interactive application 으로 유도

 SPIN은 다양한 애플리케이션 목적에 맞도록 SPARQL의 빠른 퍼포먼스와 풍부한 표현성을 향상시키기위한 프레임워크를 제공한다. SPIN은 SPARQL을 위한 RDF 스키마를 제공하는데 그 결과로  SPARQL 쿼리는 RDF  트리플로 RDF 도메인 모델과 함께 저장될 수 있다. 이를 통해 RDF 리소스를 관련된 SPARQL 쿼리와 함께 연결시킬 수 있을 뿐 아니라 SPARQL 쿼리의 공유와 재사용도 가능하다. SPARQL을 위한 RDF vocab은 SPIN 프레임워크의 첫번째 레이어이다.

SPARQL RDF 구문을 이용해  SPIN은 도메인 모델러들이 추론 규칙(SPARQL Construct 쿼리로서)을 덧붙이고 RDFS나  OWL  클래스 정의에 constraint chects/unit tests를 (Construct나 Ask 쿼리로서) 할 수 있도록 간단한 RDF 프로퍼티의 집합을 정의한다.

  • SPIN 추론 규칙은 따라서 클래스의 인스턴스에 존재하는  RDF 구문으로부터 새로운 RDF 구문을  도출하는데 사용될 수 있다.
  • 특별한 종류의 추론 규칙 – 생성 시에 기본값(default value)으로 리소스를 초기화하는데 사용될 수 있는 constructors 라고 불리는 – 이 있다.
  •  SPIN constraints는 클래스의 모든 멤버가 반드시 지켜야 하는 조건을 명시하는 데 사용될 수 있다.

클래스에 규칙과 제한(constraints)을 지정하기 위한 프로퍼티는 SPIN  Vocab에 의해 제공되며 이것이 SPIN 프레임워크의 두번째 레이어이다. 이를 통해 SPIN은 객체지향 모델링 패러다임을 지원하지만 완벽히 시맨틱웹 스페이스에 embed됨으로써  다양한 정보원으로부터 온 데이터들의 통합을 위해 웹 리소스들을 연결시킬 수 있다.

SPIN은 또한 기존의 SPARQL 표현식에 기반하여 새로운 SPARQL function을 정의할 수 있도록 하는 메타모델링 매카니즘을 제공한다. 이에 따라 cardinalities와 값의 범위를 제한하는 템플릿과 function을 가진 자주 사용되는 모델링 패턴의 라이브러리를 제공하는데 이 모듈 라이브러리가 SPIN 프레임워크의 세번째 레이어 이다.

 SPINLayer.bmp

TIP !!!

SPIN과 SWRL의 차이점?(http://stage.vambenepe.com/archives/496, 댓글 9번)

  • 이 둘다 온톨로지에 규칙을 내장하기 위한 RDF 구문을 가지고 있고 비슷한 표현성을 가짐.
  • Holger는 SWRL에 비해 가지는 SPIN의 우월성에 대하여 다음과 같이 말함.
    • SPIN은 SPARQL로 되어 있어서(즉, 더욱 풍부한 filter 표현과 named graph를 통한 쿼리의 일부로써 시맨틱웹을 진정으로 사용할 수 있음) 더욱 표현력이 뛰어남.
    •  SPARQL은 여러 툴을 가진 활동적인  W3C 표준이므로 지속적으로 발전하고 있고 이에 따라 SPIN도 이익을 받게 될 것.  SWRL은 RIF 매핑과 별도로는 지금 당장 어떤 활동적인 움직임이 없음.
    • SPIN은 확장성이 좋음(즉, 자신만의 function과 template을 만들 수 있음). SWRL은 hard-code로 된 엔진에 의해 제공되는 실행 라이브러리에 한정됨.
    • constraint checking을 명시적으로 지원
    • 객체 지향적이고 따라서 쉽게 유지보수가 가능. 

이 글은 스프링노트에서 작성되었습니다.


LinkedOpenData

 http://artofsystems.blogspot.com/2009/03/linked-data-end-user-applications.html

 

Linked Data: End-User Applications?

LinkedData는 웹에 데이터를 퍼블리쉬하는 데 있어 거시적 시맨틱웹(big-Semantic Web) 기술을 어떻게 사용할 것인지에 대한 합의된 규칙(common sense rules)이다.

 

  • RDF로 데이터를 퍼블리시
  • HTTP URI를 사용해서 RDF 데이터에 있는 리소스에 이름을 붙이기
  • URI를 역참조(dereferencable)할 수 있게 만들고
  • 표준 스키마 언어(OWL) 을 이용하는 것.

 

Linked Data는 최근  비로소 시맨틱웹의 실제적인 버전을 가진 한 종류로서 추진력을 받게 되었다. 상대적으로 적은 노력으로 퍼블리시 된 데이터의 양이 많아졌지만, 실험실 외부에 존재하는 그 데이터를 사용하는 애플리케이션은 그리 많지 않다.

 

반면에 기업에서 Linked Data를 사용한 예가 있는데, BBC에서 하고 있는 몇가지 작업들(http://blogs.talis.com/nodalities/2009/01/building-coherence-at-bbccouk.php)이 바로 그것이다.

 이 포스트는 Linked Data의 장점을 취하는 현실적인 End-user 애플리케이션에 대한 것이다. “real”이 의미하는 것은 이용자가 자신의 데스크탑이나, 또는 핸드폰, 웹 브라우저등에서 풍부한 유저 인터페이스를 통해 어떤 태스크를 할 수 있게되는 것을 의미한다.

몇번의 trial-and-error를 통해 다음과 같은 사항들을 정리해 보았다:

  • 애플리케이션이 고정된 데이터 셋 이외의 것을 다룰 수 있도록 만들어지는지?. 예를 들어 Marbles같은 브라우저는 모든 가능한 Linked Data를 네비게이트할 수 있는 반면, 다른 시스템은 내부의 데이터로 한정된다.
  • 링크가 이용자에게 보여질 수 있는지? 예를 들어, 일반적인 브라우저는 이용자가 링크를 보고 다른 곳으로 이동하기 위해 선택할 수 있다. 한편, 소셜 네트워크 브라우저는 자동적으로 FOAF 네트워크를 어떻게 확장할 것인지 선택할 수 있고 여러 정보원으로부터 온 데이터를 포함하는 요약 뷰를 보여 준다.
  • 추론이 중요한지?? 즉, raw data를 이용자에게 제시할 것인지 아니면 추론을 사용해서 새로운 트리플을 생성(또는 필터링)할 것인지?

 

 

  • 추론에 대해서 : 새로운 트리플을 융합할 것인지?{Yes, No}
  • 네비게이션? {user-visible links, invisible links}
  • 확장성? {Yes, Somewhat, NO} 다른 온톨로지 fragment와의 조합(온톨로지를 완전히 이해하지 못하더라도)

 

 “National Register Radar”라는 iPhone 애플리케이션 – 지리적 위치와 U.S. National Register of Historic Places Database의 Linked Data 버전을 이용하여 이용자가 자신 주변의 장소에 대한 역사에 “상황적 인식(situational awareness)”를 가지도록 도와주는 애플리케이션으로 특정 종류의  Linked Data인 hardcoded 지식을 사용하며 low-level 링크는 감추며 summary view를 제공하면서 추론은 하지 않고 발견한 데이터만 제시함.

저자는 초기 버전인 이러한 애플리케이션의 개발을 위해서는 하드코딩이 필요하며(특히, non-x86 프로세서와 non Java 기반의 모바일 기기에 대한 고려가 필요하다고) external library가 요구된다고 주장. 특히 휴대폰에 탑재된(on-phone) 트리플 스토어나 Sparql 쿼리는 필요하지 않으며 전통적인 애플리케이션 개발 기법이 적용된다고 함.

저자는 Linked Data가 End-User 레벨 보다는 기업내부의 인프라스트럭처가 될 것이라고 전망.

 

이 글은 스프링노트에서 작성되었습니다.


Hello world!

Welcome to ymchu.wordpress.com.

This is my blog that I will post about semantic web, ontology and linked data.

I would like to share my enthusiasm for the semantic web,  with you…!