Jena에서 Property 추출시 고려사항

StmtIterator iter = selIndi.listProperties();

선택된 Individual의 Property들을 보고 싶을 때 listProperties메소드를 사용한다.
문제는 selIndi의 Property들중에 Object값(value)이 Null인 경우에는 가져오질 못한다.

그래서, selIndi의 RDFType을 얻어온다음에 캐스팅하고,

Resource ontRes = (Resource) selIndi.getRDFType();
OntClass ontCls = (OntClass)ontRes.as(OntClass.class);
캐스팅된 ontCls의 listDeclaredProperties를 호출하면 말그대로 ontCls에서 선언한 property들만 가져오게 된다.
//direct는 sub컨셉에서 지정된 property를 상속받아 가져올지를 체크
Iterator iter = ontCls.listDeclaredProperties(boolean direct);
문제는 name이라는 property도메인을 Person클래스으로 지정하고 Food클래스로도 지정하면
name의 입장에서는 Person과 Food의 anonymous Union클래스를 도메인으로 가지게 되
name이라는 Property는 어디서도 찾을 수 없다.

댓글

  1. @funtheory - 2007/04/14 17:01
    답변을 늦게 봐서 포스팅이 늦었네요.



    http://bklab.snu.ac.kr/blog/kwangsub/38



    그리고, weight를 어떻게 사용하실지 궁금하긴 한데



    예를들어, Person이라는 클래스가 있고 그의 속성으로 hasFriends가 있다면 hasFriends 속성에 Weight를 주고 싶다는 말씀입니까?



    글쎄요, Property자체엔 없구요. 직접 정의해서 사용해야할것 같은데요.



    예를들어 Person에 속성으로 hasFriends와 weight 속성이 있다고 하고, Person01객체를 만들때 친구Person02를 만들고 거기에 weight값을 부여하는 식으로요.



    더 좋은 방법있으면 알려주세요.^^

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

Protopage.com

Android, MediaPlayer IllegalStateException 상황