W3C home > Mailing lists > Public > public-vocabs@w3.org > December 2014

Re: Property Names, was Re: Automotive, EXIF, Property-Values

From: Niklas Lindström <lindstream@gmail.com>
Date: Fri, 19 Dec 2014 11:03:30 +0100
Message-ID: <CADjV5jeym_npCNK5VFvKbyyLDJ4PDPMhDswLJq7zVFD4=v+aWg@mail.gmail.com>
To: Kingsley Idehen <kidehen@openlinksw.com>
Cc: "public-vocabs@w3.org" <public-vocabs@w3.org>
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

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:29:46 UTC