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.

@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
Post a Comment