Documentations

Documents

Features

Performance

  • LUBM(0,1) Benchmark Results for 50,000 & 100,000 Triples (read)
Advertisements
  1. 유동희
    December 7, 2007 at 11:04 pm

    안녕하세요 ^^
    저는 Semantic Web에 관하여 공부하고 있는
    고려대학교 경영대학 MIS전공 박사과정 유동희 입니다.

    다름이 아니라 Bossam의 SWRL Built in에 관해서 질문이 있어서 이렇게 메일을 드립니다.

    Bosam API를 이용해서 SWRL과 SWRL Built in을 실험해 보았습니다.
    그런데, 아래와 같이 SWRL에 Built in (add 2번, divide, greaterThanOrEqual) 을 여러개 사용해 보니깐 에러가 발생했습니다.

    Game(?a) ∧
    hasScoreA(?a, ?b) ∧
    hasScoreB(?a, ?c) ∧
    hasScoreC(?a, ?d) ∧
    swrlb:add(?temp, ?b, ?c) ∧
    swrlb:add(?sum, ?temp, ?d) ∧
    swrlb:divide(?average, ?sum, 3) ∧
    swrlb:greaterThanOrEqual(?average, 8)
    → BestGame(?a)

    이클립스에서 위의 swrl이 있는 test.swrl을 실행 후 ————–

    IReasonerFactory reasonerFactory = ReasonerFactory.getInstance();
    IReasoner r = reasonerFactory.createSwrlReasoner();
    r.setSerializationMode(IReasoner.RDFXML);
    r.load(IReasoner.SWRLRDF, “file:/C:/somewhere/test.swrl”);
    String result = r.run();

    다음과 같은 에러화면이 나왔습니다—————-

    Cannot obtain the value for a variable term ?
    http://somewhere/test.swrl#average in java://bossam.app.s/BuiltIn#greaterthanorequal(?_swrlb_,?http://somewhere/test.swrl#average,8,true)
    java.lang.NoSuchMethodException: bossam.app.s.BuiltIn.greaterthanorequal()
    at java.lang.Class.getMethod(Unknown Source)
    at a.a.b.b.a(Unknown Source)
    at a.a.a.m.a(Unknown Source)
    at a.a.a.m.a(Unknown Source)
    at a.a.a.m.a(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.r.a(Unknown Source)
    at a.a.a.t.a(Unknown Source)
    at a.a.a.t.a(Unknown Source)
    at a.a.a.t.s(Unknown Source)
    at a.a.a.t.b(Unknown Source)
    at bossam.app.a.run(Unknown Source)
    at jena_bossam.HEGReasoner.goHEGReasoner(HEGReasoner.java:50)
    at jena_bossam.ExecutionHEGReasoner.main(ExecutionHEGReasoner.java:15)
    java.lang.NullPointerException
    at a.a.a.m.a(Unknown Source)
    at a.a.a.m.a(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.q.e(Unknown Source)
    at a.a.a.r.a(Unknown Source)
    at a.a.a.t.a(Unknown Source)
    at a.a.a.t.a(Unknown Source)
    at a.a.a.t.s(Unknown Source)
    at a.a.a.t.b(Unknown Source)
    at bossam.app.a.run(Unknown Source)
    at jena_bossam.HEGReasoner.goHEGReasoner(HEGReasoner.java:50)
    at jena_bossam.ExecutionHEGReasoner.main(ExecutionHEGReasoner.java:15)

    질문1)
    위의 에러를 삺펴보니깐,
    변수 ?average에 대한 값을 얻을 수 없어서 그런것 같은데,
    여러개의 built in (위의경우:add 2번, divide, greaterThanOrEqual)을 사용하면 bossam에서는 추론이 지원되지 않나요?
    아님 다은 이유가 있는지 알려주세요

    질문2)
    데이터형과 관련해서 생기는 오류라면…
    위의 원인을 찾기 위해 여러가지 try를 해 보았습니다.
    built in의 divide의 경우
    integer를 integer로 divide 할 경우 decimal 로 반환한다고 정의 되어 있는데,
    (참고 http://www.w3.org/TR/xpath-functions/#func-numeric-divide)

    그럴경우 반환되는 값(예, ?average)이 decimal이기 때문에 8을 decimal type으로 정의 해야 하나요?
    swrlb:greaterThanOrEqual(?average, 8)

    두서없이 많은 질문을 했네요,
    이것저것 많이 시도해 보다가, 해결책을 얻고자 이렇게 메일을 보냅니다.
    도와주세요~

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: