Thank you for your answers. I think I am in the case you described by "There is also the possibility to use simple SPARQL to determine whether a graph meets some conditions of interest and then take action in application code accordingly." I would like to retrieve the rdfs:range of a property and take actions accordingly. This is the reason why I would like to make a distinction between ranges that could be rdfs:Literal (or a subclass of Literal) and ranges that are "URIs or BlankNodes".
What is the meaning of owl:Thing exactly ? What is the meaning of owl:ObjectProperty vs. owl:DatatypeProperty ? On Tue, Sep 6, 2016 at 2:02 PM, A. Soroka <[email protected]> wrote: > This is a very common misunderstanding, and we can correct it even more > generally: _nothing_ in RDFS _or_ OWL can be used to restrict the triples > in a graph, ever, under their specified semantics [1]. They can only be > used to create new triples, not to disallow triples. SPIN (or > implementations of the forthcoming SHACL specification) are indeed a more > reasonable approach. There is also the possibility to use simple SPARQL to > determine whether a graph meets some conditions of interest and then take > action in application code accordingly. > > --- > A. Soroka > The University of Virginia Library > > [1] There is an alternative closed-world semantics for OWL called ICV, but > I am not sure how easy it would be to use with Jena. It is implemented in > Pellet, but this documentation for Pellet (https://github.com/ > Complexible/pellet/wiki/FAQ#jena-interface) refers to DIG, so it seems > rather out of date. > > > On Sep 6, 2016, at 5:41 AM, Nikolaos Beredimas <[email protected]> > wrote: > > > > I think you are misunderstanding the meaning of rdfs:range (a very common > > mistake) > > Per definition, > > rdfs:range is an instance of rdf:Property > > <https://www.w3.org/TR/rdf-schema/#ch_property> that is used to state > that > > the values of a property are instances of one or more classes. > > > > So, rdfs:range is not supposed to be used to restrict the "kind" of an > > object, but to infer it. > > > > If you want restrictions, try something like SPIN. > > > > Regards, > > Nikos > > > > On Tue, Sep 6, 2016 at 12:34 PM, Jérémy Coulon < > [email protected] > >> wrote: > > > >> Hello, > >> > >> I would like to write my own ontology. > >> For some properties I would like to restrict their range to URIs or > >> BlankNodes but to forbid literals. > >> For example: > >> myprop a rdf:Property ; > >> rdfs:range ***URIs or BlankNodes*** . > >> > >> I have difficulties to understand some semantics of RDFS and OWL. > >> I don't see a way to do what I want with pure RDFS. > >> I have read about owl:Thing but I don't understand what it is supposed > to > >> mean. > >> Is owl:Thing the range I am looking for ? > >> Is it possible to do what I need after all ? > >> > >> Thanks for your help. > >> > >> Jeremy > >> > >
