Hi,
I've found that the inference inverseOf only seems to occur when the
predicate that is the inverse is explicitly stated within the query. Eg

This works -
define input:inference "wsf_inference_rule"
prefix output: <http://xxx/schemas/output/>
select *
where { <http://xxx/wsf/datasets/89/Valuations_Mar09>
output:valuation_set_of_eay ?eay_uri .}

While this doesn't return any valuation_set_of_eay triples.
define input:inference "wsf_inference_rule"
prefix output: <http://xxx/schemas/output/>
select *
where { <http://xxx/wsf/datasets/89/Valuations_Mar09> ?p ?eay_uri .}

So I planned on explicitly materialising the triples so the second query
would return the needed triples. However the sparql insert doesn't seem to
support inference rules.
When running the below statement

SPARQL define input:inference "wsf_inference_rule"
prefix output: <http://xxx/schemas/output/>
INSERT IN GRAPH <hxxx/wsf/datasets/89/>
{<http://xxx/wsf/datasets/89/Valuations_Mar09> output:valuation_set_of_eay
?eay_uri }
where { <xxx/wsf/datasets/89/Valuations_Mar09> output:valuation_set_of_eay
?eay_uri .}

I get the error -

SQLState: 37000 Message: SQ074: Line 5: SP031: SPARQL compiler:
Internal error: Internal SPARQL compiler error: unsupported
subexpression type

Removing the inference ruleset from the query causes it to run
successfully but as expected there are no triples to insert. What
would be the easiest work around for this?

Cheers

Mark

Reply via email to