- From: Holger Knublauch <holger@topquadrant.com>
- Date: Sat, 20 Dec 2014 08:42:06 +1000
- To: public-vocabs@w3.org
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