- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Fri, 19 Dec 2014 07:12:01 -0500
- To: public-vocabs@w3.org
- Message-ID: <54941611.7000007@openlinksw.com>
On 12/19/14 5:03 AM, Niklas Lindström wrote: > 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 From my vantage point, no difference :) Could be seen (somewhat verbosely) as: @prefix spin: <http://spinrdf.org/spin#> . @prefix schema: <http://schema.org/> . <#property> rdfs:label "property"; rdfs:comment "An Attribute of a Class. An Attribute being a Name=Value pairing."; rdfs:subPropertyOf spin:constraint . <#PropertyConstraint> a owl:Class ; rdfs:subClassOf owl:Restriction ; rdfs:label "PropertyConstraint" ; rdfs:comment """A constraint on a property of a class """ ; is rdfs:range of <#property> . schema:MedicalEntity a rdfs:Class ; rdfs:subClassOf schema:Thing ; <#property> [ a <#PropertyConstraint> ; <#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.""" ] . Kingsley > > > On Fri, Dec 19, 2014 at 2:32 AM, Kingsley Idehen > <kidehen@openlinksw.com <mailto: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 > <http://www.openlinksw.com/blog/%7Ekidehen> > 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 > > -- 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
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Friday, 19 December 2014 12:12:26 UTC