Print

Print


On Wed, Nov 5, 2014 at 3:35 PM, Karen Coyle <[log in to unmask]> wrote:

>  Another caveat:
>
> If bf:workTitle is sub-class bf:Title, then this is inferencially
> consistent:
>
> :X a bf:Work
>       bf:workTitle[  a bf:Title  ;
>             bf:titleValue"Heart of Midlothian"  ]  .
>
> :Y a bf:Instance
>       bf:workTitle[  a bf:Title  ;
>             bf:titleValue"The heart of Midlothian"  ]  .
>
> I'm not quite sure what you're trying to say here, but I will try and make
some guesses.

I will assume:

   1. :X is a bf:Work.
   2. :X has a value of bf:workTitle something that is a bf:Title which has
   as a value of bf:titleValue the string "Heart of midlothian".
   3. :Y is a bf:Instance.
   4. :Y has a value of bf:workTitle something that is a bf:Title which has
    as a value of bf:titleValue the string "The heart of Midlothian".

Using named individuals for the titles and giving OWL property and class
definitions directly, we have (in turtle)

:Instance rdf:type owl:Class .
:Title rdf:type owl:Class .
:Work rdf:type owl:Class .

:workTitle a owl:ObjectProperty ;

rdfs:range :Title

rdfs:domain :Work .

:titleValue a owl:DatatypeProperty ;

rdfs:domain :Title ;

rdfs:range rdf:PlainLiteral .

:X rdf:type :Work ,

owl:NamedIndividual ;

:workTitle :t1 .

:t1 rdf:type :Title ,

owl:NamedIndividual ;

:titleValue "Heart of midlothian" .

:Y rdf:type :Instance ,

 owl:NamedIndividual ;

 :workTitle :t2 .

:t2 rdf:type :Title ,

owl:NamedIndividual ;

:titleValue "The heart of Midlothian" .

and bf:workTitle is never of class bf:Work (because class-ness only "flows"
> from property to subject, not vice versa).
>

bf:workTitle is not an instance of class bf:Work; it is an instance of
owl:ObjectProperty (and/or  of rdf:Property ).

I am not quite sure what you mean by class-ness flowing from property to
subject .

You can infer class from the range or domain of properties.  In the general
case, you cannot infer that a property entails a more specific sub-property
given just simple domain and range constraints.


> So a SPARQL query of "get me all the triples for class=bf:Work" will
>> retrieve
>>
>
> :X a bf:Work
>

under an rdfs entailment regime or greater, a query for :Work in the value
position will return :X and :Y .


> but never bf:workTitle, regardless of what graph it is found in. You
> *will* however be able to query for all bf:Title(s).
>

If the graph union includes the ontology, and the sparql query includes
 "?S ?P :Work" , you *will* get bf:workTitle rdfs:domain :Work  .

That doesn't seem to be what you were asking for though.

If you can clarify your question I may be able to give a more useful answer.