- From: David Booth <david@dbooth.org>
- Date: Mon, 30 Oct 2023 14:21:10 -0400
- To: semantic-web@w3.org
Note that N3 provides a convenient syntax for reversing the direction of
a predicate, so you don't have to define its inverse. From the N3
documentation:
https://www.w3.org/TeamSubmission/n3/#shorthand
[[
Paths
These are just shorthand. x!p means [ is p of x ] in the above anonymous
node notation. You can read it as "x's p". This is a little reminiscent
of the "." in object oriented programming "object.slot" syntax.
The reverse traversal, x^p means [ p x ] . For either forward or
backward traversal, p is a property, and x can be a whole path with both
! and ^ in it.
Example:
:joe!fam:mother!loc:office!loc:zip Joe's mother's office's zipcode
:joe!fam:mother^fam:mother Anyone whose mother is Joe's mother.
]]
Thanks,
David Booth
On 10/30/23 12: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/>
>
Received on Monday, 30 October 2023 18:21:16 UTC