Hi again,

I forgot to mention that the model is retrieved from a TDB. ¿Should I
always create the OntModel from the TDB?

I don't really know how I should do that to work.

Regards
Jorge

On 10/03/2017 10:51, George News wrote:
> Hi,
> 
> I have the following properties defined in my ontology:
> 
> <owl:ObjectProperty rdf:about="http://mydomain.com#by";>
>   <rdfs:domain rdf:resource="http://mydomain.com#data"/>
>   <owl:inverseOf rdf:resource="http://mydomain.com#made"/>
>   <rdfs:range rdf:resource="http://mydomain.com#node"/>
> </owl:ObjectProperty>
> 
> <owl:ObjectProperty rdf:about="http://mydomain.com#made";>
>   <owl:inverseOf rdf:resource="http://mydomain.com#by"/>
>   <rdfs:domain rdf:resource="http://mydomain.com#node"/>
>   <rdfs:range rdf:resource="http://mydomain.com#data"/>
> </owl:ObjectProperty>
> 
> And I have registered multiple entity data and nodes using a JSON-LD document 
> similar to the one below:
> {
>   "@context": {
>     "my": "http://mydomain.com#";
>   },
> 
>   "@graph": [
>     {
>       "@id": "_:b81",
>       "@type": "my:data",
>       "my:by": {
>         "@id": "Node1"
>       },
>     },
>     {
>       "@id": "Node1",
>       "@type": "my:node",
>     }
>   ]
> }
> 
> I'm using:
> OntModel ontModel = 
> ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF);
> 
> And this is the model I'm injecting to the QueryExecution, etc.
> 
> Then I try to run SPARQL sentences on the TDB, but I'm facing issues with the 
> inference. If I run 
> 
> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> PREFIX my: <http://mydomain.com#>
> 
> SELECT  ?d ?n
> WHERE {
>   ?n rdf:type/rdfs:subClassOf my:node .
>   ?d my:by ?n .
> } 
> 
> I'm getting results, but if I run
> 
> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> PREFIX my: <http://mydomain.com#>
> 
> SELECT  ?d ?n
> WHERE {
>   ?n rdf:type/rdfs:subClassOf my:node .
>   ?n my:made ?d .
> } 
> 
> I don't get any. The inference model should be infering that made is the 
> inverse of and I should be getting the same results, shouldn't I? Or should I 
> create a InfModel base on the desired reasoner and then inject it to the 
> QueryExecution? From my understanding the first option should be working.
> 
> Thanks for your help.
> Jorge
> 

Reply via email to