New Draft API Document 1e - and discussion of PropertyName and a couple of other things

Rotan pointed out to me a number of typos relating to PropertyName which
I have corrected in this draft. Sorry about the earlier lapse, "festina
lente".

http://www.w3.org/2005/MWI/DDWG/drafts/api/080223

Rotan also points out to me that removal of the PropertyName class was
not what he expected in this draft. I don't have any strong objection to
putting PropertyName back in - equally I'd prefer to leave it out on the
basis that it serves a rather limited use case that can be addressed in
a different way, and introduces a number of complications:

I am unclear about the relationship between PropertyName and
SimplePropertyRef and whether and how they sub-class each other. I can't
figure out a model that makes this consistent with our agreement on list
that both property names and aspect names live in the same namespace. I
believe that I might be missing the point here, so if we are to include
it I need some help on text for this.

I am also unsure how this changes the method signatures of
SimpleProperty and I don't know how this would affect the constructors
for SimplePropertyRef.

With suitable clarification of these points I will try to crank out a
new draft.

Since I am writing, I'd also like to bring your attention to the
following method of SimpleService,

	public SimplePropertyValues getPropertyValues(Evidence evidence,
			String aspectIRI, String aspectName) throws
NameException,
			SystemException;

Which allows you to list known property values from an aspect in a non
default namespace. It seemed to me at the time I put this in to be
logically necessary, but I am not sure now.

I'd also like you to ponder the following:

	public static String ANY_ASPECT = "__ANY";
	public static String ANY_PROPERTY = "__ANY";
	public static String DEFAULT_VOCABULARY =
"__DEFAULT_VOCABULARY";
	public static String DEFAULT_ASPECT = "__DEFAULT_ASPECT";
	public static final String NULL_ASPECT = "__NULL";
	public static final String NULL_NAMESPACE = "__NULL";

Ignoring the fact, for a moment, that they should all be final, do we
think these should be there? I feel strongly that NULL is needed for
both aspect and namespace - to accommodate vocabularies that are "aspect
unaware" and which haven't defined a namespace.

I am less sure that ANY is needed, though it might be handy and, for
example, would allow you to refer to a property independently of its
aspect. I think this is a bit of a kludge, even more so the DEFAULT
VOCABULARY bit, less so the DEFAULT_ASPECT.

On the subject of DEFAULT_ASPECT my expectation had been that it is
something the Vocabulary defines. I have a sneaking feeling that
SimpleService should have methods to reveal the default vocabulary and
the default aspect for a vocabulary e.g.

String getDefaultNamespace();
String getDefaultAspect(String namespace);

In which case the DEFAULT consts are definitely not needed.

I stop there for now.

Jo

Received on Saturday, 23 February 2008 10:51:47 UTC