简体   繁体   中英

protege v 3.4.8 does not recognize transitive property

I have created object property hasSibling where A hasSibling B, B hasSibling CI have made this property as transitive and symmetric, but in inferred instances it is not showing A hasSibling C.

This is showing correctly in protege v4.3 but I am using protege v3.4.8 in my project where i have to use transitive and symmetric object properties. I have tried Sparql query also but it is showing result for symmetric not for transitive.

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX uni:<http://www.owl-ontologies.com/aa.owl#>
select * where { 
  ?x uni:hasSibling  ?y .
}

this is giving result as: Where in inferred tab nothing came Kindly suggest how to overcome this problem.

Given the query:

  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX uni:<http://www.owl-ontologies.com/aa.owl#>
select * where { 
  ?x uni:hasSibling  ?y .
}

You need to have a reasoning that understands the semantics of the uni:hasSibling relation which is more than likely described in the ontology identified by the URI: http://www.owl-ontologies.com/aa.owl# .

If you were using Virtuoso, this would require the following:

  1. Derive and Inference Rule from http://www.owl-ontologies.com/aa.owl#
  2. Execute your query with a pragma for invoking the Inference Rule created in the first step plus another pragma for loading your data (collection of subject and objects connected by uni:hasSibling relationship type)

I provide a similar example in my post that demonstrates Reasoning & Inference using British Royal Family relationship types. Also note a recent follow-on post that shows how you can create your own Custom Inference Rules.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM