owl - SWRL and Rolification cannot return what I want -


i have developed ontology , want add following swrl in protege:

divider_intersection(?node), is_extent_of(?node, ?s), builds(?s, ?l),segment(?s),lane(?l),detailed_partition(?d), builds(?l, ?d)-> is_divided_at(?d, ?node) 

with wish add object property, is_divided_at, between individual detailed_partition (?d) , node classified divider_intersection if extent of segment (?s) build lane (?l) build detailed?partition (?d). noted here, looking namedindividuals, hence presume swrl should job.

further research, found rolification (1, 2, 3) possible answer have never used before, made following chain:

r_divider_intersection o is_extent_of o r_segment o builds o r_lane o builds o r_detailed_partition 

still not answer. idea wrong?

your approach works, , without seeing ontology (your link requires permissions, , offsite links aren't helpful anyhow) can't see why particular construction of works. 1 thing jumps out question looks is_divided_at property has arguments (?d,?node) in opposite order property chain axiom produce. anyhow, here's working example.

screenshot in protege

@prefix :      <urn:ex:#> . @prefix ex:    <urn:ex:#> . @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix owl:   <http://www.w3.org/2002/07/owl#> . @prefix xsd:   <http://www.w3.org/2001/xmlschema#> . @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .  ex:isdividedat                owl:objectproperty ;         owl:propertychainaxiom  ( ex:_dividerintersection ex:isextentof ex:_segment ex:builds ex:_lane ex:builds ex:_detailedpartition ) .  ex:segment                 owl:class ;         owl:equivalentclass  [               owl:restriction ;                                owl:hasself     true ;                                owl:onproperty  ex:_segment                              ] .  ex:_detailedpartition               owl:objectproperty .  ex:dividerintersection                            owl:class ;         owl:equivalentclass  [               owl:restriction ;                                owl:hasself     true ;                                owl:onproperty  ex:_dividerintersection                              ] .  ex:_segment   owl:objectproperty .  ex:_lane      owl:objectproperty .  ex:builds     owl:objectproperty .  ex:dividerintersection0                      owl:namedindividual , ex:dividerintersection ;         ex:isextentof  ex:segment0 .  <urn:ex:>     owl:ontology .  ex:detailedpartition0               owl:namedindividual , ex:detailedpartition .  ex:_dividerintersection               owl:objectproperty .  ex:segment0      owl:namedindividual , ex:segment ;         ex:builds  ex:lane0 .  ex:detailedpartition       owl:class ;         owl:equivalentclass  [               owl:restriction ;                                owl:hasself     true ;                                owl:onproperty  ex:_detailedpartition                              ] .  ex:isextentof   owl:objectproperty .  ex:lane0         owl:namedindividual , ex:lane ;         ex:builds  ex:detailedpartition0 .  ex:lane                    owl:class ;         owl:equivalentclass  [               owl:restriction ;                                owl:hasself     true ;                                owl:onproperty  ex:_lane                              ] . 

Comments