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.