- From: Karen Coyle <kcoyle@kcoyle.net>
- Date: Fri, 19 Dec 2014 08:55:16 -0800
- To: public-vocabs@w3.org
The difference would be open world (OWL) vs. closed world (SPIN) assumptions. kc On 12/19/14 4:12 AM, Kingsley Idehen wrote: > 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 > -- Karen Coyle kcoyle@kcoyle.net http://kcoyle.net m: 1-510-435-8234 skype: kcoylenet/+1-510-984-3600
Received on Friday, 19 December 2014 16:55:46 UTC