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

On 12/20/14, 2:55 AM, Karen Coyle wrote:
> The difference would be open world (OWL) vs. closed world (SPIN) 
> assumptions.

Yes that's one difference. Basically, if you have

ex:MyPerson
     ex:father ex:Father1 ;
     ex:father ex:Father2 ;

and ex:father has been limited to owl:maxCardinality = 1

then OWL tells you that this is OK and ex:Father1 = ex:Father2. 
owl:allValuesFrom has similar semantics.

This is fundamentally different from the expectation of a closed-world 
(and Unique Name Assumption) point of view that most people will have. 
OWL was primarily designed for making inferences, not for describing 
constraints on data.

Holger


>
> 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
>>
>

Received on Friday, 19 December 2014 22:42:40 UTC