2011-11-27 6 views
3

내가 이름 충돌을 방지하기 위해 유형에 따라 속성을/추론 전달 될 수있는 방법을 찾기 위해 노력하고있어 :RDF - rdf : type을 기반으로 전 이적 속성 이동을 수행하려면 어떻게해야합니까?

:

위의 트리플을 바탕으로
:AOrder :Store :AStore ; 
     a :OrderType ; 
     :user :AUser . 

:AStore :name "Store Name"; 
     a :StoreType 

:AUser :name "Some User"; 
     a :UserType 

, 나는 여러 가지 다른 트리플을 추론하고 싶습니다

:AOrder :storeName "Store Name" . 
:AOrder :userName "Some User" . 

어떻게하면됩니까? 참고로 현재 Bigdata와 Sesame을 사용하고 있습니다.

한 가지 방법은 SPIN을 사용하는 것이지만 Bigdata + Sesame에는없는 것처럼 보입니다. 예나가 비교할 수있는 유일한 것으로 보인다.

답변

1

당신이 사용 SPARQL 업데이트 작업을 표현할 수있다 :

INSERT { 
    ?x :storeName ?store_name ; 
    :userName ?user_name . 
} 
WHERE { 
    ?x a :OrderType; 
    :Store [ :name ?store_name ] ; 
    :user [ :name ?user_name ] . 
} 

상점이 (로컬에서 작업하는 경우 변경 이벤트를 차단하기 위해 RepositoryListener을 사용할 수 있습니다) 업데이트 될 때마다이 작업을하고 트리플을 실행 want가 삽입됩니다.

또는 세서미에서 사용할 수있는 맞춤 추론 도구를 살펴보십시오. Bigdata가 사용자 정의 추론 도구를 지원하는지 확신 할 수 없지만 다소 오래되었지만 this custom rule-based reasoner extension을 볼 수 있습니다. 또는 OWL 추론 기능이있는 참깨 백엔드 인 OWLIM을 살펴보면 사용자 지정 규칙도 지원합니다.

+0

답장을 보내 주셔서 감사합니다. Jena + Jena 규칙이 끝났습니다. 하지만 어쨌든, 당신이 속박/합리적인 트리플을 다루는 맞춤 추론자를 어떻게 알 수 있습니까? 기존 스토어에 모든 것을 추가하기 만하면 유추 내용과 기본 데이터를 구분할 수 없게됩니까? –

+0

아니요, 처음 세서미는 API 수준에서 명시 적 또는 유추 된 트리플을 구분할 수 있으므로 항상 어떤 것이 있는지 알려줄 수 있습니다. 또한 사용자 정의 추론 기는 유추 된 세 쌍에 대해 별도의 컨텍스트를 사용합니다. –