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.