- 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