Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

user rule with filter clause - how to?

629738Mar 25 2011 — edited Mar 26 2011
hi,
I am trying to create user rulebase that merges "similar" nodes via owl:sameAs but I hit a problem which I cannot resolve by reading the documentation.
The IF clause of my rule:
(?cluster1 hasRoot ?root1) (?cluster1 hasRoot ?root2)
The THEN clause:
(?root1 owl:sameAs ?root2)

I have to filter out two things:
- creating link r1 owl:sameAs r2
- and processing roots which are already linked with sameAs

I tried to use the FILTER argument in the mdsys.SEMR_MERGE_CLUSTERS_RULEBASE table, but for whatever reason cannot make it work when I need negation - I cannot understand which syntax can be used there and which not to check for equality. If I use
(?root1 != ?root2)'
as filter clause in the FILTER column of the rule table I get

Error report:
ORA-29532: Java call terminated by uncaught Java exception: java.sql.SQLException: Missing IN or OUT parameter at index:: 1
ORA-06512: at "MDSYS.SDO_SEM_INF_INTERNAL", line 12469
ORA-06512: at "MDSYS.SDO_SEM_INFERENCE", line 108
ORA-06512: at "MDSYS.RDF_APIS", line 72
ORA-06512: at line 1
29532. 00000 - "Java call terminated by uncaught Java exception: %s"
*Cause: A Java exception or error was signaled and could not be
resolved by the Java code.
*Action: Modify Java code, if this behavior is not intended.

when creating the entailment. I am completely lost how to do some sort of negation here...

Cheers,
Georgi
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 23 2011
Added on Mar 25 2011
4 comments
235 views