On Sat, Dec 7, 2013 at 4:16 AM, Miguel Bento Alves
<[email protected]> wrote:
> Dear Joshua,
>
> The problem is that I don¹t want only to know if a given Student is
> diligent but I want to know if a given Student is diligent to a given
> Course. If you look to the data that I listed as example, Richard was
> diligent in Databases and Michael was diligent in Computer Programming
> (and Michael was not diligent in Databases and Richard was not diligent in
> Computer Programming). In the best of my knowledge, you cannot moddeled
> this in OWL2.


Ah, I did miss that subtlety in the original.  Even so, I think you
could model this if you associate the lessons with the courses.  E.g.,
you could have something like

    cs101 ^forCourse l0, l1, l2, l3, l4.
    cs102 ^forCourse l5, l6, l7, l8, l9.

   forCourse a owl:FunctionalProperty
   cs101 ≠ cs102

Then, the class of students that are diligent in a course C are

    failed max 3 ( forCourse value C )

The class of Courses for which a student S is diligent is

    ^forCourse max 3 ( ^failed value S )

You can make those queries if you've fixed C or S.  If you need a list
of all S/C pairs, though, then you're right, you'll need a SPARQL
query.
-- 
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/

Reply via email to