Search Mailing List Archives
[protege-owl] Modeling Problem
milo at informatik.uni-kiel.de
Thu Oct 9 04:58:04 PDT 2008
> Well first you need to figure out the features of the sign which
> determine its correct placement (with reference to the :Road
> or :RoadSection). I'm not sure how you do that with "Beware of
> Kangaroos", unless you have other information about where a sign
> should go.
It's because it doesn't matter what is written on that sign. It might be a
"No Parking"- or a "Beware of Kangaroos"-sign or whatever. I just want to
make sure, that a sign belonging to a road-section is placed correctly
somewhere on the road-section. Like: Sign.Pos >= RoadSection.Start-Pos AND
Sign.Pos <= RoadSection.End-Pos
> With the distance to all the data you need to do the math
> to determine whether the current placement of the sign (or the
> position attribute of the sign) is correct.
> You want to get to here (untested and illustrative):
> curr_position(?sign, ?pos) ^ correct_position(?sign, ?correct) ^
> swrlb:equal(?pos, ?correct) -> CorrectlyPlacedSign(?sign)
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)
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"
Is it possible to handle it like this?
That brings me to the next problem - negotiation.
I can't model in SWRL that all not CorrectlyPlaced-Signs are
MisPlaced-Signs, can I?
So do I have to create rules for every possible misplacement?
> which requires a way of calculating the correct_position for
> each :Sign. For some that might be possible using the swrl math
> transforms to generate a new statement (ie a SWRL result of ->
> correct_position(?sign, ?calculated) )
Sorry, I don't really get the need for the "correct_position"-Term.
> You might find that calculating the correct_position is best done
> procedurally, accessing the knowledge base (ontology) via Jena or
> similar. That said by the time you are working procedurally you could
> do the generation of the CorrectlyPlacedSign and MisPlacedSign
> statements procedurally too, taking SWRL out of the equation.
Hmm, I like SWRL, because you can store it together with the ontology in
one owl-file. What is the advantage of using sth. like Jena? Why not
declarative programming? Just because of its complexity?
thx for all help,
More information about the protege-owl