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을 명시적으로 지원
    • 객체 지향적이고 따라서 쉽게 유지보수가 가능. 

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

Advertisements


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중