Just a few issues that I've spotted since publication:-
1) Currently we have the following:-
earl:asserts
rdfs:domain earl:Assertor;
rdfs:range earl:Assertion .
This is a bit harsh because it means that you can't reuse earl:asserts
in other schemata (which I tried!), whereas you probably should be
able to - it's a very vague term. Therfore, we could replace it with
the following:-
earl:Assertor rdfs:subClassOf
[ a daml:Restriction;
daml:onProperty earl:asserts;
daml:toClass earl:Assertion ] .
Meaning that earl:Assertor is a sub class of some (anonymous) class
that is a daml:Restriction, where the particular restriction is on
earl:asserts to the class earl:Assertion. This is like saying that if
something that is an earl:Assertor has the property earl:asserts used
upon it, then the range of earl:asserts is earl:Assertion. Compare and
contrast that with the current method which simply states that
whenever earl:asserts is used, its subject must be an instance of
earl:Assertor, and its object(s) must be an instance of
earl:Assertion.
2) The next problem is that:-
earl:date rdfs:domain earl:TestResult; rdfs:range earl:Date;
= dc:date .
But this is incorrect because (once again) of the restrictive
semantics, and the fact that these ranges and domains don't apply to
dc:date. It would probably be O.K. to say that:-
earl:date rdfs:subPropertyOf dc:date .
Or alternatively:-
earl:TestResult rdfs:subClassOf
[ a daml:Restriction;
daml:onProperty earl:date;
daml:toClass earl:Date ] .
And then one could state that it is equivalent to dc:date, which would
give dc:date the same semantics (why not just use dc:date?). Also, we
could use daml:samePropertyAs, but the cyclic properties get in the
way (a noted issue, which I expect to be resolved in the
recommendation for RDF Schema, and future versions of DAML).
Anyhow, I think changing it to subPropertyOf would be the best thing
to do in this situation.
3) We already have:-
earl:Evaluation rdfs:subClassOf rdf:Statement .
But we forgot to also state that:-
earl:Assertion rdfs:subClassOf rdf:Statement .
Which would make the overall reified architecture of EARL something
like:-
[ a earl:Evaluation;
rdf:subject [ a earl:Assertor ];
rdf:predicate earl:asserts;
rdf:object [ a earl:Assertion;
rdf:subject [ a earl:TestSubject ];
rdf:predicate [ a earl:TestCase ];
rdf:object [ a earl:TestResult ] ] ] .
All minor issues, but just raising them so that they're archived
somewhere, and if pointed out again we can refer back.
--
Kindest Regards,
Sean B. Palmer
@prefix : <http://webns.net/roughterms/> .
:Sean :hasHomepage <http://purl.org/net/sbp/> .