Tom wrote:
>
> Paul,
>
> A couple more questions ...
>
> 1. What forces StringDatatypeAttribute to use stringDatatypeValue
as
> it's values?
I think you meant "...as one of its
properties" (not "...as it's values").
If so, the stringDatatypeValue is an OWL
Property whose domain is defined as being StringDatatypeAttribute. This means
that we've globally restricted the use of this Property to only be used by this
one class. So it is the Property definition itself that "forces" this
restriction.
> 2. Should items with a range of StringDatatypeAttribute be using
> stringDatatypeValue instead?
I'm not sure I'm understanding you fully. I think not. When you say
"items" I think you mean a property that has been defined somewhere
whose range is StringDataAttribute. A Digital Subject, for example, would
usually be the domain of such an item/property.
I think I must be missing a piece of OWL
> knowledge that'll cause this to make sense to me.
> 3. Could we add a normalizedStringDatatypeValue which uses
> "&xsd;normalizedString" as it's XSD type?
Yes, we need to add this. I only bothered
to create the stringDatatypeValue property, to gather reactions, before I go
and create the full set of 20 or so property types (one for each of the xsd
types used by OWL).
>
> If I was defining the datatype property for the LDAP
"name" attribute,
> outside of Higgins, I'd do it something like:
>
> <owl:DataProperty rdf:about="#name">
> <rdfs:label
rdf:datatype="&xsd;string">name</rdfs:label>
> <rdfs:comment
rdf:datatype="&xsd;string">RFC2256:
> name</rdfs:comment>
> <owl:equivalentProperty
rdf:resource="urn:oid:2.5.4.41"/>
> <rdfs:range rdf:resource="&xsd;normalizedString"/>
> </owl:DataProperty>
>
> Within Higgins, I'm not sure how I'd do it. Maybe:
>
> <owl:DataProperty rdf:about="#name">
> <rdfs:label
rdf:datatype="&xsd;string">name</rdfs:label>
> <rdfs:comment
rdf:datatype="&xsd;string">RFC2256:
> name</rdfs:comment>
> <owl:equivalentProperty
rdf:resource="urn:oid:2.5.4.41"/>
> <rdfs:subPropertyOf
rdf:resource="@higgins;attribute"/>
> <rdfs:range
> rdf:resource="&higgins;NormalizedStringDatatypeAttribute"/>
> </owl:DataProperty>
>
> or, depending on #2 above, maybe:
>
> <owl:DataProperty rdf:about="#name">
> <rdfs:label
rdf:datatype="&xsd;string">name</rdfs:label>
> <rdfs:comment
rdf:datatype="&xsd;string">RFC2256:
> name</rdfs:comment>
> <owl:equivalentProperty
rdf:resource="urn:oid:2.5.4.41"/>
> <rdfs:subPropertyOf
rdf:resource="@higgins;attribute"/>
> <rdfs:range
> rdf:resource="&higgins;NormalizedStringDatatypeValue"/>
> </owl:DataProperty>
>
I think it should be this (per
higgins0.5.6):
<owl:ObjectProperty
rdf:about="#name">
<rdfs:label
rdf:datatype="&xsd;string">name</rdfs:label>
<rdfs:comment
rdf:datatype="&xsd;string">RFC2256:name</rdfs:comment>
<owl:equivalentProperty
rdf:resource="urn:oid:2.5.4.41"/>
<rdfs:subPropertyOf
rdf:resource="&higgins;attribute"/>
<rdfs:range
rdf:resource="&higgins;NormalizedStringDatatypeAttribute"/>
</owl:ObjectProperty>
It has to be an ObjectProperty (not a
DatatypeProperty) because its range is a non-literal (&Higgins;NormalizedStringDatatypeAttribute).
Of course NormalizedStringDatatypeAttribute hasn’t yet been created in Higgins.owl
(I have only created StringDatatypeAttribute so far).