[OWL-S]Avoiding Lists

If OWL-S ontologies are to be OWL-DL, then we must eliminate all 
"extraneous" use of the RDF collection vocabulary. (That is, we must 
only use rdf:List and friends in certain syntactic situations and never 
as a user level modeling construct.) There are three places where we do 
or might use collections:

1) As the value of the components property, especially for indicating 
sequences or unordered sets of processes. Note that simply avoiding 
subclassing rdf:List isn't sufficient. The mere use of lists puts us in 
OWL Full.

2)  It seems somewhat natural to describe certain parameters as 
consuming or returning lists of objects.

3) DRS may make use of lists in describing formulas.

Disposing these in reverse order:

3) If DRSyly described preconditions and effect formulas are associated 
with a process by a datatype property whose values are XMLLiterals that 
contain the RDF/XML for the DRS formulas, then the parent KB will be in 
OWL DL even if the literals themselves are OWL Full. I think it would 
be better if it were DL all the way down, but hey. It's a compromise :)

2) Don't Do That.

1) Don't Do That.

Ok, but what can we do instead of 1 or 2. Some choices:

a) Define a shadow collection vocabulary, e.g., owls:List and friends. 
Use as one does the RDF collection vocabulary. If one wants 
compatibility with OWL Full tools, one can define an ontology which 
contains the requisite equivalences and simply import it when dealing 
with OWL Full tools. Conversely, it wouldn't be hard to write a 
lint-esque tool that too OWL Full kbs with modest use of the collection 
vocabulary that replaces those uses with the corresponding items from 
the shadow vocabulary. The big loss is that in OWL-DL compatible kbs, 
you couldn't use the parseType="Collection" short cut (note, you 
already can't do this for lists of datavalues). Well, boo hoo. We could 
publish an XSLT sheet that took care of this.

b) Use alternative modeling altogether. For example, for sequences, we 
can have a sequence object where each owls:item had a distinguishing 
property value that allowed us to recover the order. It could be a 
"line number", or a "tag" (as in the surface syntax), or what have you. 
There'd be some tedium in representing the fixed total number of items 
and the distinctness of the items, but nothing too bad.

c) Do something exceedingly clever with literals. Literals already 
*have* structure (both xml and the simpleType, list).

Any thoughts, preferences, screams of pain anyone would like to share?

Cheers,
Bijan Parsia.

Received on Tuesday, 3 February 2004 13:26:21 UTC