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] Please help: complement of a class?

Scott L Holmes scottlholmes at
Wed Jan 9 03:06:22 PST 2008

> I only looked at this briefly, but why doesn't this work:
>    lastItem <=> List and some hasNext EmptyList

To be honest, I didn't think of that! Now that I look at it, that, of course
would be the obvious thing to do, so I tried it out in my knowledge base.
In my knowledge base, Pellet tells me:
Inconsistent ontology. Reason: Individual TheEnd has more than 0 values for
property hasContents violating the cardinality restriction.
I'll need to investigate the logic underlying hasNext that some more to
figure out why an EmptyList all of a sudden hasContents.

I was able to achieve
lastItem <=> List and some isFollowedBy EmptyList

The use of the super property gets around some logical subtlety that escapes
me at the moment.

Get back to the subject matter. It occurred to me that I could easily
construct a class that answers the query "what items are followed by
something" and then use the complement of that class to infer the end of the
list. I was surprised when I realized that because of OWA, just because I
didn't state that that my list item wasn't followed by something didn't me
it could have been.

So now, I'm trying to decide whether in my particular problem domain if it
is acceptable to assert that an item is the end of the list. Also, in my
domain, I've not yet decided if there really is an end of the list - maybe
it is OK that there possibly could be more to the list than what I have


On Jan 8, 2008 5:03 PM, Thomas Russ <tar at> wrote:

> On Jan 8, 2008, at 1:27 PM, Scott L Holmes wrote:
> > Pardon the interruption but Thomas, you are very close to explaining
> > why I had so much difficulty with individuals when I attempt to
> > implement a sequence pattern as described in [1].
> >
> > After creating my sequence of individuals, I was unable to construct
> > a class that answers the query "What is the last item in my list?".
> > Creating an individual of class EmptyList as described in [1] makes
> > no sense to me and leads pretty quickly to inconsistencies. Also I
> > see no way in OWL to infer some thing that doesn't have some thing
> > related to it. So I'm at a loss at how to infer the last item in the
> > list if you are only able to describe it as that list item not
> > followed by anything.
> >
> > Scott
> >
> > [1] Putting OWL in Order: Patterns for Sequences in OWL, Nick
> > Drummond, et. al.
> I only looked at this briefly, but why doesn't this work:
>    lastItem <=> List and some hasNext EmptyList
> since hasNext is functional, if there is an emptylist there, you must
> be the last item.
> _______________________________________________
> protege-owl mailing list
> protege-owl at
> Instructions for unsubscribing:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the protege-owl mailing list