Hey,
i’m experiencing some trouble with the Stardog Rules.
Assert I have this Rule:
IF {
?c a sick:Component ;
sosa:isFeatureOfInterestOf [
sosa:hasFeatureOfInterest ?c ;
a sosa:Observation ;
sosa:observedProperty aoi:x-shift ;
sosa:hasSimpleResult ?x
] , [
sosa:hasFeatureOfInterest ?c ;
a sosa:Observation ;
sosa:observedProperty aoi:y-shift ;
sosa:hasSimpleResult ?y
] .
aoi:thresholds sick:x-shift-threshold ?x_thres ;
sick:y-shift-threshold ?y_thres .
FILTER (?x > ?x_thres )
} THEN {
?c a aoi:BadComponent-X
}
With an Observation being:
<http://localhost/concept/observations/1> rdf:type owl:NamedIndividual ,
sosa:Observation ;
sosa:hasFeatureOfInterest <http://localhost/concept/material/component#c1-1> ;
sosa:madeBySensor <http://localhost/concept/equipment/AOI_SMD407> ;
sosa:observedProperty aoi:x-shift ;
sosa:hasSimpleResult 3 ;
sosa:resultTime "2016-05-18T12:55:27.954"^^xsd:dateTime .
And a component:
<http://localhost/concept/material/component#c1-1> rdf:type owl:NamedIndividual ,
sick:Component .
One can assume that
sosa:isFeatureOfInterestOf is the inverse of sosa:hasFeatureOfInterest
and this is inferred.
Still the rule execution triggers this
WARN 2017-10-24 18:02:31,086 [XNIO-1 task-3] com.clarkparsia.pellet.rules.FilterBindingHelper:rebind(53):
Function evaluation error
java.lang.ClassCastException: null
I don’t get it.
As target I want to increase the FILTER condition with additional statements, like y-shift > someThreshold. Still, that doesn’t work.
Thanks, I appreciate every help!