- 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