W3C home > Mailing lists > Public > semantic-web@w3.org > September 2014

Re: Property or class?

From: Diogo FC Patrao <djogopatrao@gmail.com>
Date: Mon, 1 Sep 2014 12:36:17 -0300
Message-ID: <CAFRj_Ac+n_qQGEccnHynfhme20cWK7K2tNY8uJ3iqpFQewPxuQ@mail.gmail.com>
To: Pavel Klinov <pavel.klinov@uni-ulm.de>
Cc: "Eric Prud'hommeaux" <eric@w3.org>, Victor Porton <porton@narod.ru>, Hm Hrm <unixprog@googlemail.com>, "semantic-web@w3.org" <semantic-web@w3.org>
Hi Pavel

Hm, but what's wrong with modeling X as an instance of (:hasDiagnosis
>  some P), i.e. an instance of a complex class with an existential
> restriction on :hasDiagnosis? Then you'd still model P as a class, you
> will fit into the polynomial OWL EL profile (if you care about
> reasoning performance), and you won't need to create an explicit
> instance of P for every X.
>

Yes, I remember considering that back then. We decided to use "X a P" and
define the meaning of P as "instances are patients with the disease P". We
have almost 1M instances with around 10 classes each, so we selected the
simpler approach, considering that it would be faster  (extraction of ABox
currently takes 2 hours to complete using Jena).

It is fast enough, but now we're facing querying problems so this approach
(subclassof :hasDiagnosis some P) sounds like a good idea.


cheers,


If there are many Xs with a P-diagnosis, you could create a class
> PDiagPatient SubClassOf (:hasDiagnosis some P) and then just say X a
> PDiagPatient.
>
> Cheers,
> Pavel
>
> PS. I'm using the Manchester syntax for (:hasDiagnosis some P), hope
> the semantics is clear.
>
> >
> > Years ago, I was modelling a similar case (precedence of data sources),
> and
> > found easier to work with comparative properties, such as:
> >
> > db1 :isMoreTrustableThan db2
> >
> > defining :isMoreTrustableThan as transitive, you can compare any
> instances
> > (given there's a path db1 :isMoreTrustableThan ...  :isMoreTrustableThan
> > dbn), however I couldn't get it to find the most trustable of all without
> > resorting to SPARQL.
> >
> > Cheers,
> >
> >
> >
> >
> >
> >
> > --
> > diogo patrĂ£o
> >
> >
> >
> >
> > On Mon, Sep 1, 2014 at 10:05 AM, Eric Prud'hommeaux <eric@w3.org> wrote:
> >>
> >> * Victor Porton <porton@narod.ru> [2014-09-01 15:28+0300]
> >> > 01.09.2014, 10:07, "Hm Hrm" <unixprog@googlemail.com>:
> >> > > On 08/31/2014 06:43 PM, Victor Porton wrote:
> >> > >>  Suppose P is a precedence of operation X. Should I write "X a P ."
> >> > >> or
> >> > >>  "X :precedence P ." (in Turtle format)?
> >> > >>
> >> > >>  What are (dis)advantages of both variants?
> >> > >
> >> > > Assuming that the property should link instance P to instance X,
> both
> >> > > of
> >> > > class :Operation, then you should use "X :precedence P".
> >> > >
> >> > > "X a P", a shortcut for "X rdf:type P", would imply that P is an
> >> > > rdf:Class and X an instance of said class P. Extending the semantics
> >> > > of
> >> > > 'rdf:type' and using an instance as a class seems a bad idea.
> >> >
> >> > P is a class (because I want rdf:subClassOf for properties.
> >> >
> >> > But I yet doubt whether an operation should be an instance of
> >> > precedence.
> >>
> >> I wouldn't advise it, but you could always say that Addition is an
> >> instance of a thing with precedence 2 and Multiplication ... 6 (from
> >>
> >> <
> http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Arithmetic_operators
> >).
> >> My guess is that instead you want to model more like this:
> >>
> >>   :precedenceIncludes a owl:ObjectProperty .
> >>   :PrecedenceAtLeast1 a owl:Class .
> >>   :PrecedenceAtLeast2 rdfs:subClassOf a :PrecedenceAtLeast1 .
> >>   :PrecedenceAtLeast3 rdfs:subClassOf a :PrecedenceAtLeast2 .
> >>   # ...
> >>   :Operation a owl:Class;
> >>     rdfs:subClassOf [
> >>       owl:onProperty :precedenceIncludes ;
> >>       owl:someValuesFrom :PrecedenceAtLeast1
> >>     ] .
> >>   :Addition rdfs:subClassOf
> >>       :Operation ,
> >>       [ owl:onProperty :precedenceIncludes ;
> >>         owl:someValuesFrom :PrecedenceAtLeast2 ]
> >>   :Multiplication rdfs:subClassOf
> >>       :Operation ,
> >>       [ owl:onProperty :precedenceIncludes ;
> >>         owl:someValuesFrom :PrecedenceAtLeast6 ]
> >>
> >> That way you can apply the T-box to an A-box (e.g. a parse graph over
> >> which you are doing static analysis) and leverage inferences from the
> >> ontology.
> >>
> >> > --
> >> > Victor Porton - http://portonvictor.org
> >> >
> >>
> >> --
> >> -ericP
> >>
> >> office: +1.617.599.3509
> >> mobile: +33.6.80.80.35.59
> >>
> >> (eric@w3.org)
> >> Feel free to forward this message to any list for any purpose other than
> >> email address distribution.
> >>
> >> There are subtle nuances encoded in font variation and clever layout
> >> which can only be seen by printing this message on high-clay paper.
> >>
> >
>
Received on Monday, 1 September 2014 15:37:05 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:53 UTC