> The alternative presentation, particularly the approach to equivalence
> and disjointness is, to me, less clear.
The earlier complexities have gone from the version:
http://sealpc09.cnuce.cnr.it/jeremy/owl-syntax/2003-21-Feb/dl-syntax.html
Peter had indicated that he saw semantic difficulties with my earlier
proposal, and I saw that he was right.
The difference on equivalent classes and disjointness is now simply how to
treat n>2 in such statements, which I don't think is unsuromountable.
==
A related difference was to do with owl:sameIndividualAs and
owl:differentFrom
In AS&S
http://www.w3.org/TR/owl-semantics/mapping.html#4.2
we read
[[
A node x in G is an individual if there is a triple of the form x rdf:type c
. where c is a description or class. The assertions about x in G are the
triples of G of the following forms, where c is a description or class, rd
is a datatype property, v is a typed or untyped literal, ro is an object
property, and i is an individual.
x rdf:type c .
x rd v .
x ro i .
x owl:sameIndividualAs i .
x owl:differentFrom i .
plus the definition triples of any description in these triples.
]]
which suggests allowing
_:b owl:sameIndividualAs <eg:a> .
and
_:b owl:differentFrom <eg:a> .
I was trying to get a syntax that supports this, and I don't see semantic
problems with either of those.
However, I think the semantics of
<eg:a> owl:differentFrom _:a .
is more tricky, which I currently allow syntactically.
In more detail:
S&AS has axioms like:
SameIndividual(ID1,ID2,...IDn)
and
DifferentIndividual(ID1,ID2,...IDn)
in contrast I am suggesting that sameness and differentness be defined with
the individual definition
e.g.
Individual(ID1,
sameAs(ID2),
sameAs(ID3),
differentFrom(ID4),
sameAs(Individual()))
The semantics can be provided by a simple addition to the EC extension table
http://www.w3.org/TR/owl-semantics/direct.html#description-interpretations
sameAs(X) => EC(X)
differentFrom(X) => R - EC(X)
and
Individual(annotation(.) . annotation(.)
type(c1) . type(cm)
comparison1 ... comparisonn
pv1 . pvn)
=>
EC(c1) n . n EC(cm) n EC(pv(pv1)) n EC(comparison1)
...n EC(comparisonn) n.n EC(pv(pvn))
Such differentFrom semantics relies on there only being one member of EC(X)
and hence does not work for unnamed individuals.
I am not going to die in a ditch for this one.
Jeremy