Re: Adding properties to classes

Keith;

Thank you for taking the time to read our early working draft of
RDF Schemas.

Your question is very relevant as it touches directly on one of
the issues that is most under debate in the working group.  In
fact there are several competing ideas at issue here.

To directly answer your first question, the intention is that
if an allowedPropertyType constraint is specified then property
types not listed there may not appear on the class.  The document
does not say what is intended if no allowedPropertyType
constraint is given.  This latter question has not explicitly been
raised in the working group but I feel quite confident in saying
that the absense of a particular constraint property is meant
to mean that there are no such constraints; not, for example,
that the set of allowed property types is empty.  A future
draft of the document should make this explicit.

With respect to your second question; it is certainly legitimate
to define properties of classes in separate declarations.  We
expect people to want to be able to add properties to classes
defined by other Schemas in exactly this way.  One of our other
open issues concerns a means to explicitly prevent this when
the class designer wishes; i.e. class sealing.  We have not
as yet decided if and how to accomplish this.

Preliminary versions of the schema design did indeed provide
domain constraints on PropertyTypes.  It was felt that this
design made classes overly cumbersome, thus the change.

One of the purposes for publishing early working drafts is
to get exactly this sort of feedback so that the group may
take it into account while refining the design.  Thank you
again.  I hope you will continue to review and comment on
this and future drafts of the schema document.

-Ralph R. Swick
 W3C/MIT
 Metadata Activity Leader

http://lists.w3.org/Archives/Public/www-rdf-comments/1998AprJun/0003
At 01:58 PM 5/6/98 -0400, Keith Vanderveen wrote:
>Question about current RDF Schemas working draft WD-rdf-schema-19980409.
>
>I am confused about whether properties of arbitrary type can be attached
>to resources.  In section 3, example 2 of WD-rdf-schema-19980409, it is
>stated that the allowedPropertyType constraint is used to express that
>resources of a given class may have properties of a given type.  This
>implies (to me, anyway) that if an allowedPropertyType statement
>allowing a certain property type doesn't appear somewhere in connection
>with a class, then resources belonging to that class may not have
>properties of that type.  Is this what is intended?  If so, I believe
>that this may prove somewhat cumbersome for certain classes of objects
>which could have many types of properties, e.g. Person.  It is clearly
>not practical to enumerate all of the types of properties a Person may
>have, and different sets of property types will be relevant to different
>organizations for different purposes.
>
>My second question is, if allowedPropertyType statements are needed to
>allow resources of a given class to have properties of a certain type,
>can property types be added to a class by making assertions in a
>different place than the class definition?  For example, suppose class
>Person is defined in a 
>schema called People_Schema at the W3, and I wished to extend it to have 
>another property, diastolic_blood_pressure:
>
><?xml:namespace ns='http://www.w3.org/TR/People_Schema/' prefix='PEOPLE'
>?>
>
><RDF:assertions PEOPLE:HREF="#Person">
>   <RDFS:comment>Adding a PropertyType to class Person</RDFS:comment>
>   <RDFS:allowedPropertyType>
>     <RDF:Description ID="diastolic_blood_pressure">
>       <RDFS:comment>The Person's diastolic blood pressure at most
>recent physical   
>          </RDFS:comment>
>       <RDFS:range
>RDF:HREF=http://www.w3.org/FictSchema/usefultypes#Integer"/>
>       <RDFS:necessity RDF:HREF="#ZeroOrMore"/>
>    </RDF:Description>
>   </RDFS:allowedPropertyType>
></RDF:assertions>
>
>
>Is this legal?  If so, it provides a way to extend classes without
>having to subclass them, but I think it is needlessly cumbersome.  If
>the purpose of requiring allowedPropertyType statements is to make it
>possible to constrain the domains of ProperyTypes, then I suggest that
>this is better done by adding a domain constraint to the PropertyType
>class, similar to the range constraint.  In my view, implementing domain
>constraints on PropertyTypes is more naturally done explicitly on the
>PropertyTypes themselves, rather than implicitly on the Classes.
>
>Please contact me if anything is unclear about my message.
>
>					Thanks, 
>					Keith
>
>-- 
>             Keith Vanderveen, Member of Technical Staff
>             Systems and Software Research Center, Bell Labs
>             +1-732-949-8592 (Phone), +1-732-949-0399 (Fax)
>	     vandervn@lucent.com

Received on Wednesday, 6 May 1998 16:34:22 UTC