> Hello!
>
> I hope this is the right list for my question. I'm a newbie to
> Protégé, and in order to get a hang of it, I'm trying to write an
> ontology of items in my home, places where they are stored and which
> of them were lent to me by other people, by whom and when. I want
> to have record of "lending episodes" (I guess "events" is also okay)
> which begin when something is lent to someone and end when this
> thing is returned. So, my classes look something like this:
>
> Thing
> Furniture
> Item
> Episode
> LendingEpisode
> Person
>
> There are also object properties:
>
> contains :: Furniture -> Item
> (Inverse: is_in)
>
> hasBorrower :: LendingEpisode -> Person
> (Inverse: isBorrowerOf)
>
> hasLender :: LendingEpisode -> Person
> (Inverse: isLenderOf)
>
> hasLentItem :: LendingEpisode -> Item
> (Inverse: isLentItemOf)
>
> And then there are datatype properties, or range "date":
>
> hasBeginningBefore:: Episode->date
> hasEndBefore:: Episode->date
> hasBeginningAfter:: Episode->date
> hasEndAfter:: Episode->date
>
> I made hasEndBefore a subproperty of hasBeginningBefore because if
> something ends before a given date, it must have begun before that
> date as well. The same applies to hasEndAfter and hasBeginningAfter.
>
> Then I define two peple, an item and a lending episode:
>
> person_1
> person_2
> item_1
> lendingEp_1
>
> And some axioms:
>
> lendingEp_1 hasLender person_1
> lendingEp_1 hasBorrower person_2
> lendingEp_1 hasLentItem item_1
> lendingEp_1 hasBeginningAfter "2009-05-01"^^date
> lendingEp_1 hasBeginningBefore "2009-06-01"^^date
> lendingEp_1 hasEndAfter "2009-07-01"^^date
>
> That is, person_1 lent item_1 to person_2 ; the lending began some
> date between (excluding) "2009-05-01"^^date and "2009-06-01"^^date,
> and it is known that item_1 was not returned as of
> "2009-07-01"^^date. Nothing is stated about its hasEndBefore
> property. Those lending episodes which have a hasEndBefore property
> are known to have ended (let's assume no speculation about future
> ending dates is allowed, only description of known facts) Now I'd
> like to query this ontology to find out which lending episodes are
> NOT known to have ended as of today. The problem is that I think I'm
> bumping into the Open World Assumption. For instance, if I ask (in
> manchester-owl syntax, in the "DL Query" tab):
>
> not (has_end_before some date)
>
> No instances are returned. I guess that's because no axioms states
> or implies that "not (lendingEp_1 hasEndBefore some date)".
>
>
> My next idea was to introduce a new property assertion to
> lendingEp_1 so that:
>
> lendingEp_1 hasEndBefore only date [ >= "2009-07-02"^^date ]
>
> That is, that it can only end strictly before a date equal or
> greater than tomorrow, in other words, it the soonest it can end is
> today. Then I could enter the query:
>
> hasEndBefore only date [ >= "2009-07-01"^^date ]
>
> Here I'm asking for lending episodes which only end before dates
> which are greater or equal than today. Since any date which
> fullfills the condition [ >= "2009-07-02"^^date ] also fullfills
> [ >= "2009-07-01"^^date ], the query should return (at least)
> lendingEp_1.
>
> This seemed very promising, but alas, I see no way in Protege 4.0 to
> introduce the "lendingEp_1 hasEndBefore only date [ >=
> "2009-07-02"^^date ]" assertion. The data property assertion dialog
> only lets me write a value, like "2009-07-01" and pick its type
> (date).
>
> So I'm kind of stuck :/
>
> What I'm misssing? Should I be using Protege 3? Is the Manchester
> OWL syntax query not powerful enough? Should I be using the
> SWRLTemporalOntology instead of my little example?
> All kinds of tips and guidance are welcome. Thanks in advance.
>
> Regards,
>
> Martin OB
>
>
>
>
> _______________________________________________
> protege-owl mailing list
>
[hidden email]
>
https://mailman.stanford.edu/mailman/listinfo/protege-owl>
> Instructions for unsubscribing:
http://protege.stanford.edu/doc/faq.html#01a.03