- From: Chris Mungall <cjmungall@lbl.gov>
- Date: Mon, 30 Oct 2023 14:25:14 -0700
- To: "Harshvardhan J. Pandit" <me@harshp.com>
- Cc: semantic-web@w3.org
- Message-ID: <CAN9AifuYRyf2p7_EXRJ6GZD4ezdawHy=DGfOwvLRp2km+Hn+ag@mail.gmail.com>
I'm afraid you can't have it both ways, both forms are semantically "about" odrl:Policy in the same way, regardless of whether or not you use an inverse property. (for "aboutness" I am going with the OWLAPI's definition, but YMMV) There is an interesting sociotechnical aspect to this, regarding the norms for making assertions about other people's resources. The fact I can assert whatever superclasses I like about schema:Person in my own graphs is a feature of RDF, but individual communities may have norms and guidelines about best practices for doing this in a way that avoids unhappiness and chaos. This has been a challenge for OBO, where originally it was the norm for anyone to say anything about anything, but we are slowly converging on a "no semantic injections" policy: https://github.com/OBOFoundry/OBOFoundry.github.io/issues/1443 Of course, syntactical or structural sleights of hand in flipping the asserted direction of axioms don't help if the entailment remains the same :-) On Mon, Oct 30, 2023 at 1:24 PM Harshvardhan J. Pandit <me@harshp.com> wrote: > Hi All. > (as always) Thank you for your thoughts and collective experience(s). > Perhaps I should explain my question and thinking better here which is > that superClassOf has its uses. > > My use-case is creating taxonomies where I want to express relations > with external vocabularies/ontologies. For example, I have dpv:Policy in > the DPV ontology and I want to express that odrl:Policy from the ODRL > ontology is a subclass of this. In the RDF serialisation with > rdfs:subClassOf the triples related to dpv:Policy are not in a single > place because the subjects are different. E.g. > > dpv:Policy skos:prefLabel "Policy"@en . > # 1000 lines later > odrl:Policy rdfs:subClassOf dpv:Policy . > > Instead, I find it nicer and semantically correct to have: > > dpv:Policy rdfs:superClassOf odrl:Policy. > > where no reasoning or querying is required, the information I *want* to > express is recorded exactly, and I am also not making statements about > IRIs not under my control. Regarding direction of properties, I like how > SKOS gives both broader/narrower even if they are inverse relations of > each other - because it allows us to make appropriate statements about > the 'subject' concept instead of just using broader and switching > subject and object. > > I understand if such use was not 'foreseen' in RDF/RDFS, and if it is > considered to be too niche or trivial. However, I find it immensely > helpful when working with the concepts and especially when I am > producing documentation as the RDF matches the through process, e.g. > description of a concept as all triples where it is the subject. > > --- further notes --- > > I am well aware that we can use SPARQL and other querying/reasoning to > derive parent/super classes using rdfs:subClassOf. However, because > there is no mechanism to *store* the results, I have to run this query > every single time I want a concept's sub-classes. e.g. given the graph: > > :A rdfs:subClassOf :X . > :B rdfs:subClassOf :X . > > I have to run this query every time: `SELECT ?c WHERE { ?c > rdfs:subClassOf X }` - which means I *must* have a query engine - > instead if there was a way to 'store' ?c (which is the superclass > relation) - then I only need a RDF parser. > > This also makes a difference when considering discrete sets of > information, e.g. in the earlier example, if A and B are in graph G1 and > X is in graph G2, then the only way for X to express A and B are its > subclasses is to include those triples from G1 in G2. Instead, having a > superclass relation with X as the subject here is better aesthetics and > semantics: > > G1 { # A and B are 'native' to this graph > :A rdfs:subClassOf :X . > :B rdfs:subClassOf :X . > } > > G2 { # X is 'native' to this graph > :A rdfs:subClassOf :X . # we have no 'control' over :A > :B rdfs:subClassOf :X . # we have no 'control' over :B > :X rdfs:superClassOf :A, :B . # we have 'control' over :X > } > > --- > > Regards, > Harsh > > On 30/10/2023 16:52, Miguel wrote: > > Hi Harshvardhan, > > just to further elaborate, with that argument you could support the > > explicit definition of the inverse of any object property (excluding > > symmetric properties). > > Some vocabularies do indeed adopt that convention. > > > > The problem with that is that at the syntactic level you have always two > > ways (for each pair of related resources) to represent the same meaning. > > Only if you explicitly state in OWL the relationship between the two > > properties with the inverseOf expression *and* perform inference, then > > the two versions are reconciled. > > > > Furthermore, the direction in which a property is defined does not (at > > least in theory) imply a specific favoured direction for traversing it, > > as shown in the SPARQL examples by Antoine Zimmermann. > > > > Best regards, > > Miguel > > > > On Mon, Oct 30, 2023 at 5:47 PM Antoine Zimmermann > > <antoine.zimmermann@emse.fr <mailto:antoine.zimmermann@emse.fr>> wrote: > > > > rdfs:superClassOf (respectively rdfs:superPropertyOf) does not exist > in > > any standard, nor any term equivalent to it. > > > > If it did, it would not add anything to reasoning or querying. If you > > want to list all subclasses of a class <C>, you can write: > > > > SELECT ?subclass WHERE { > > ?subclass rdfs:subClassOf <C> . > > } > > > > and if you want the list of superclasses of a class <C>, you write: > > > > SELECT ?superclass WHERE { > > <C> rdfs:subClassOf ?superclass . > > } > > > > > > What use cases would make it harder and more painful to write: > > > > :A rdfs:subClassOf :B > > > > than: > > > > :B rdfs:superClassOf :A > > > > ? > > > > > > --AZ > > > > Le 28/10/2023 à 14:21, Harshvardhan J. Pandit a écrit : > > > Hi. > > > We have rdfs:subClassOf defined in a standardised specification > > (RDFS). > > > RDFS several times mentions 'superclass', but AFAIK there is no > > property > > > or relation to make this explicit, i.e. > > > > > > ```turtle > > > :A rdfs:subClassOf :B . # exists > > > :B rdfs:superClassOf :A . # does this exist anywhere? > > > ``` > > > > > > I can intuit why subclass relations are the most common and > > preferred > > > methods of use - because anyone can extend the superclass from > > anywhere. > > > And that either assertion can be inferred from the other (sub to > > super, > > > vice-versa), but I also think having the superclass be 'aware' of > > > subclasses is a good practice in maintaining ontologies e.g. to > > get a > > > list of all subclasses which would normally require a query each > > time. > > > > > > (Likewise for rdfs:subPropertyOf and rdfs:superPropertyOf) > > > > > > Apologies in advance if this has already been answered somewhere > (I > > > would appreciate it if you point me to it). > > > > > > Regards, > > > > -- > > Antoine Zimmermann > > École des Mines de Saint-Étienne > > 158 cours Fauriel > > CS 62362 > > 42023 Saint-Étienne Cedex 2 > > France > > Tél:+33(0)4 77 49 97 02 > > http://www.emse.fr/~zimmermann/ <http://www.emse.fr/~zimmermann/> > > > > -- > --- > Harshvardhan J. Pandit, Ph.D > Assistant Professor > ADAPT Centre, Dublin City University > https://harshp.com/ > >
Received on Monday, 30 October 2023 21:25:33 UTC