Re: design decision regarding integer predicates

Frank,

Frank Manola wrote:
>
> This is pretty much off the top of my head, but I'd be uncomfortable 
> with a design that simply uses a number as a predicate, because then 
> the predicate seems to have little or no meaning by itself.  Instead, 
> it has to borrow much of its meaning (that it represents a position in 
> an array) from the fact that it's being applied to an array.  If I 
> just had the number by itself, I'd know practically nothing about the 
> meaning of the predicate.  Using a number like this makes more sense 
> in an OO-like model, where properties are associated with particular 
> object classes (and so the class is part of the semantics of the 
> property) than in a more relational model like RDF.  However, it could 
> certainly be made to work.  If it were me, though, I'd at least try to 
> distinguish the ordinal characteristics of the predicate (i.e., that 
> the predicate represents a position in some structure).

Yeah, those were the sort of bad feelings I had originally and which 
made me raise this question.

Let's say (again in the abstract, outside of any particular framework) 
that we have two types: MyIntegerType and MyOrdinalType, where for each 
MyIntegerType instance (e.g. 5) you have a corresponding MyOrdinalType 
instance (e.g. 5th).

1. Would you have less semantic qualms about using instances of 
MyOrdinalType as a predicate of an array class?

2. Would it be appropriate for MyOrdinalType to be a subclass of 
MyIntegerType?

This also has some interesting ramifications---MyOrdinalType would also 
be a subclass of some sort of PropertyType, but MyIntegerType would not!

3. Lastly, let's say that we have some predicate called "order", 
specifying the order of the object in the subject resource. Would the 
object of this "order" predicate be of type MyIntegerType or MyOrdinalType?

My opinion is that the object of an "order" predicate would be 
MyIntegerType. This is because if 
A->contains->B->order->(MyIntegerType), this could imply that 
A->(MyOrdinalType)->B. In other words, again, MyOrdinalType is always a 
property, and MyIntegerType is never a property. It seems to work. What 
do you think?

Best,

Garret

>
>
> On Sep 26, 2007, at 2:55 PM, Garret Wilson wrote:
>
>>
>> In case no one understood my question (hence no replied), let me 
>> rephrase it.
>>
>> In most instances I think of the integer 5 as being a cardinal 
>> number. If I use the integer 5 as a predicate to an array resource to 
>> indicate the fifth element, I'm using the integer 5, not as a 
>> cardinal number, but as an ordinal number. Is this a semantic 
>> discrepancy I should be worried about?
>>
>> Garret
>

Received on Thursday, 27 September 2007 15:35:59 UTC