- From: Niklas Lindström <lindstream@gmail.com>
- Date: Fri, 19 Dec 2014 11:03:30 +0100
- To: Kingsley Idehen <kidehen@openlinksw.com>
- Cc: "public-vocabs@w3.org" <public-vocabs@w3.org>
- Message-ID: <CADjV5jeym_npCNK5VFvKbyyLDJ4PDPMhDswLJq7zVFD4=v+aWg@mail.gmail.com>
How is this different from using owl:Restriction? Something like: schema:MedicalEntity a rdfs:Class ; rdfs:subClassOf schema:Thing ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty schema:code ; owl:allValuesFrom schema:MedicalCode ; rdfs:label "code" ; rdfs:comment "A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc." ; ] ; ... Cheers, Niklas On Fri, Dec 19, 2014 at 2:32 AM, Kingsley Idehen <kidehen@openlinksw.com> wrote: > > On 12/18/14 8:16 PM, Kingsley Idehen wrote: > >> On 12/18/14 6:34 PM, Holger Knublauch wrote: >> >>> >>> On 12/19/14, 12:33 AM, Kingsley Idehen wrote: >>> >>>> On 12/17/14 10:06 PM, Holger Knublauch wrote: >>>> >>>>> On 12/18/2014 12:15, Young,Jeff (OR) wrote: >>>>> >>>>>> I'll give it a shot. >>>>>> >>>>>> Humans are great at intuition, but suck at probabilities. Conversely >>>>>> computers are great at probabilities, but suck at intuition. >>>>>> >>>>>> Schema.org is currently targeted at the middle. If I (as a human) use >>>>>> the term http://schema.org/publisher, the "inference" (by a machine) >>>>>> is that the object is a schema:Organization, but only probabilistically. >>>>>> Some creative works are "published" by people. It's a trivial example, but >>>>>> it help illustrate why schema:rangeIncludes is more useful and interesting >>>>>> than rdfs:range. It provides a open-world mechanism for the data consumer >>>>>> (aided by computers but summarily judged by humans) to learn about other >>>>>> possibilities. >>>>>> >>>>> >>>>> I think we are talking about different things here. I am not comparing >>>>> schema:rangeIncludes with rdfs:range, but with the class-centric definition >>>>> that I suggested below. The class-centric approach is more flexible (for >>>>> machines) than rangeIncludes, and can easily also be used to produce things >>>>> like UML diagrams that are intuitive to understand by humans. >>>>> >>>>> Holger >>>>> >>>> >>>> Will the following syntax: >>>> >>>> schema:MedicalEntity >>>> a rdfs:Class ; >>>> rdfs:subClassOf schema:Thing ; >>>> :property [ >>>> :predicate schema:code ; >>>> :valueType schema:MedicalCode ; >>>> rdfs:label "code" ; >>>> rdfs:comment "A medical code for the entity, taken from a >>>> controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, >>>> SNOMED-CT, RxNorm, etc." ; >>>> ] ; ... >>>> >>> >>> Let me try to rephrase what this means in prose: The property >>> schema:code is potentially relevant for all instances of >>> schema:MedicalEntity (and its subclasses). When used for such instances, >>> all values of the property schema:code are expected to have type >>> schema:MedicalCode (or a subclass of it). User interfaces displaying >>> instances of MedicalEntity should use the provided label and comment when >>> talking about schema:code. The comment also doubles as a description for >>> API documentation etc. The constraint does not narrow down the expected >>> number of values (cardinality) - that would be done via :minCount and >>> :maxCount. Instances of the class may have many other properties, and there >>> is no limit on using other properties that are not explicitly enumerated >>> via :property. >>> >>> >>>> Equate to the following, semantically (represented using "is of" syntax >>>> sugar)? >>>> >>>> schema:MedicalEntity >>>> a rdfs:Class ; >>>> rdfs:subClassOf schema:Thing ; >>>> is schema:domainincludes of >>>> schema:code, >>>> schema:MedicalCode, >>>> rdfs:label "code", >>>> rdfs:comment . >>>> >>> >>> Something feels missing above (did some characters disappear?), but yes >>> :property is comparable to the inverse of schema:domainIncludes, only that >>> it uses a (blank) node to collect various characteristics of the property >>> and thus carries more information than domainIncludes. In fact it also >>> includes rangeIncludes and many other things. >>> >>> >>>> I am hoping the shapes related syntax sugar is distinct from actual >>>> underlying semantics. >>>> >>>> The proposed syntax above has formal semantics, backed by SPARQL >>> queries (e.g. using COUNT for the cardinality checks). (In terms of SPIN, >>> :property is just a sub-property of spin:constraint, and the bnode is a >>> SPIN template call.) >>> >>> HTH >>> Holger >>> >> >> Holger, >> >> Sorry! I should have taken it as RDF rather than thinking (for whatever >> reasons) it was syntax sugar :) >> >> Anyway, how about, this little tweak: >> >> @prefix spin <http://spinrdf.org/spin#> . >> >> <#property> >> rdfs:label "Property"; >> rdfs:comment "An Attribute of a Class, where each Attribute is a >> Name=Value pairing."; >> rdfs:subPropertyOf spin:constraint . >> >> schema:MedicalEntity >> a rdfs:Class ; >> rdfs:subClassOf schema:Thing ; >> <#property> [ >> <#predicate> schema:code ; >> <#valueType> schema:MedicalCode ; >> rdfs:label "code" ; >> rdfs:comment "A medical code for the entity, >> taken from a controlled vocabulary or ontology >> such as ICD-9, DiseasesDB, >> MeSH, SNOMED-CT, RxNorm, etc." >> ] . >> > > Minor aesthetic tweak: > > @prefix spin: <http://spinrdf.org/spin#> . > @prefix schema: <http://schema.org/> . > > <#property> > rdfs:subPropertyOf spin:constraint ; > # rdfs:label "Property"; > rdfs:label "property"; > rdfs:comment "An Attribute of a Class. An Attribute being a Name=Value > pairing."; > > rdfs:subPropertyOf spin:constraint . > > schema:MedicalEntity > a rdfs:Class ; > rdfs:subClassOf schema:Thing ; > <#property> [ > <#predicate> schema:code ; > <#valueType> schema:MedicalCode ; > rdfs:label "code" ; > rdfs:comment """A medical code for the entity, > taken from a controlled vocabulary or ontology > such as ICD-9, DiseasesDB, MeSH, > SNOMED-CT, RxNorm, etc.""" > ] . > > > > -- > Regards, > > Kingsley Idehen > Founder & CEO > OpenLink Software > Company Web: http://www.openlinksw.com > Personal Weblog 1: http://kidehen.blogspot.com > Personal Weblog 2: http://www.openlinksw.com/blog/~kidehen > Twitter Profile: https://twitter.com/kidehen > Google+ Profile: https://plus.google.com/+KingsleyIdehen/about > LinkedIn Profile: http://www.linkedin.com/in/kidehen > Personal WebID: http://kingsley.idehen.net/dataspace/person/kidehen#this > > >
Received on Friday, 19 December 2014 10:04:33 UTC