Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] Modeling Problem

Thomas Russ tar at ISI.EDU
Thu Oct 9 10:32:31 PDT 2008

On Oct 9, 2008, at 4:58 AM, Michael Lodemann wrote:

> This one is a great hint. But I need sth like:
> curr_position(?sign, ?pos) ^ onRoadSection(?sign, ?road_sec) ^
> road_sec_start(?start_pos, ?road_sec) ^ road_sec_end(?end_pos, ? 
> road_sec) ^
> swrlb:greaterThanOrEqual(?pos, ?start_pos) ^
> swrlb:lessThanOrEqual(?pos, ?end_pos) -> CorrectlyPlacedSign(?sign)

I haven't really worked with SWRL, but this all seems like it should  
be a valid rule.

> Is this possible?
> And do "curr_position", "onRoadSection", "road_sec_start" and
> "road_sec_end" have to be (object)-properties in my ontology?
> And "CorrectlyPlacedSign" is a class as you described before, right?
> What about "?pos", "?star_pos" and "?end_pos"? In my ontology they
> currently are Datatype-properties of "Sign" and "RoadSection"
> respectively.
> Is it possible to handle it like this?

You can use a mix of object and datatype properties.  For the  
arithmetic and comparison built-ins, you would need to use datatype  
properties to get appropriate values for them to operate on.

> That brings me to the next problem - negotiation.
> I can't model in SWRL that all not CorrectlyPlaced-Signs are
> MisPlaced-Signs, can I?

Correct.  This is a consequence of open-world reasoning.  There is no  
"failure as negation" reasoning allowed.

> So do I have to create rules for every possible misplacement?

That is one possible method.  With your specific example, it shouldn't  
be too hard, since with the 1-dimensional model, you only have two  
possibilities for an incorrectly placed sign.  It is either before the  
road segment or after it.  Now, your full model may have other ways  
signs could be incorrectly placed, so this may not be completely  
practical.  But you do have to essentially come up with the negated  
rules yourself, especially since a number of the rule clauses really  
exist only to bind variables and are not directly part of the correct  
placement test.

The other option is to do something procedural, like using Java code  
to take the set-difference between all signs and all correctly-placed  
signs.  That allows you to introduce your own "closed world"  
assumption outside of the OWL+SWRL reasoning system.

More information about the protege-owl mailing list