@prefix : <#> . @prefix earl: . @prefix earldata: . @prefix rdf: . @prefix rdfs: . @prefix daml: . @prefix dc: . @prefix doc: . @prefix foaf: . @prefix n: . <> dc:title "EARL (Evaluation And Report Language) 0.975 RDF Schema"; doc:obsoletes ; doc:derivedFrom . earl:Assertion a rdfs:Class; rdfs:label "Assertion"; n:definition """An assertion consists of parts Assertor, TestSubject, ResultProperty, and TestCase.""" . earl:Assertor a rdfs:Class; rdfs:label "Assertor"; n:definition """The class of entities making an assertion in EARL (e.g. running the test).""" . earl:assertedBy a rdf:Property; rdfs:label "assertedBy"; n:definition """For earl:assertedBy(x,y), the assertion (x) is asserted by (y)."""; rdfs:domain earl:Assertion; rdfs:range earl:Assertor . earl:TestSubject a rdfs:Class; rdfs:label "TestSubject"; n:definition """The class of things which are being evaluated in an EARL evaluation - the things that are the subject of every assertion"""; n:note """This needs to be qualified with some type of information in order to make it unambiguous. You may use an unambiguous property, or unambiguous constellation of properties.""" . earl:regarding a rdf:Property; rdfs:label "regarding"; rdfs:domain earl:Assertion; rdfs:range earl:TestSubject . earl:ResultProperty a rdfs:Class; rdfs:label "ResultProperty"; n:definition """The set of result properties in EARL; they are the range of earl:result for all EARL Assertions.""" . earl:result a rdf:Property; rdfs:label "result"; n:definition """The property with range ResultProperty."""; rdfs:domain earl:Assertion; rdfs:range earl:ResultProperty . earl:TestCase a rdfs:Class; rdfs:label "TestCase"; n:definition """The class of all TestCases. Conceptually, a Test Case is some resource to which another resource can be validated against - something for which it can be demonstrated that it passes or fails against (or otherwise). This may in fact include many things - validation classes, code test cases, or more subjective guidelines such as WCAG.""" . earl:tested a rdf:Property; rdfs:label "tested"; n:definition """The property with range TestCase."""; rdfs:domain earl:Assertion; rdfs:range earl:ResultProperty . # earl:Assertor terms earl:operator a rdf:Property; rdfs:label "operator"; n:definition "for operator(x, y), y is the operator of x"; n:note "This is the operator of a machine (range undefined)"; rdfs:domain [ rdfs:subClassOf earl:Assertor ] . earl:contactInfo a rdf:Property; rdfs:label "contactInfo"; n:definition """for contactInfo(x, y), y is some some kind of generic contact information for y."""; n:note """This is a sub classable property. A strict domain is used rather than a restriction so that one may infer that the subject is an Assertor. Not that that information would actually help."""; rdfs:domain earl:Assertor; rdfs:range rdfs:Resource . earl:email a daml:UnambiguousProperty; rdfs:label "email"; rdfs:subPropertyOf earl:contactInfo; rdfs:seeAlso foaf:mbox; # a machine can have an earl:email, but not foaf:mbox rdfs:domain earl:Assertor; rdfs:range earl:Email; n:definiton "Generally, for earl:email(x, y) x has an email address of y."; n:note """The URI of the object will normally start with "mailto:", and will not be a literal. This is not a sub property of foaf:mbox! That property can only be applied to people.""" . earl:name a rdf:Property; rdfs:label "name"; n:definition "The common proper name for some earl:Assertor."; n:note "This is related to foaf:name."; rdfs:subPropertyOf foaf:name, rdfs:label; # Uh huh rdfs:domain earl:Assertor; rdfs:range rdfs:Literal . earl:platform a rdf:Property; rdfs:label "platform"; n:definition "For platform(x, y), y is the platform on which x ran/runs"; rdfs:domain earl:TestSubject; n:note """e.g. the platform on which the test(s) were run, or the general platform on which something runs""" . earl:os a rdf:Property; rdfs:label "os"; rdfs:comment """The Operating System on which an assertion was run, or of which an Assertor uses."""; rdfs:subPropertyOf earl:platform . earl:testMode a rdf:Property; rdfs:label "testMode"; rdfs:comment "The test mode of some EARL assertion"; rdfs:domain earl:Assertor; rdfs:range earl:TestMode . earl:Manual a earl:TestMode; rdfs:label "Manual" . earl:Auto a earl:TestMode; rdfs:label "Auto" . earl:Heuristic a earl:TestMode; rdfs:label "Heuristic" . # earl:TestSubject terms earl:WebContent a rdfs:Class; rdfs:label "WebContent"; rdfs:subClassOf earl:TestSubject; n:definition """WebContent is synonymous with "Document Source" in UAAG, and "Representation" in RFC 2616."""; n:note """Anything which is an instance of WebContent must have exactly one reprOf predicate hanging from it.""" . earl:Tool a rdfs:Class; rdfs:label "Tool"; rdfs:comment "This is a tool; a bit of software, perhaps with a desc."; rdfs:subClassOf earl:TestSubject . earl:UserAgent a rdfs:Class; rdfs:label "UserAgent"; rdfs:comment "A user agent"; rdfs:subClassOf earl:TestSubject . earl:date a rdf:Property, daml:DatatypeProperty; rdfs:label "date"; rdfs:domain earl:TestSubject; rdfs:comment "This whole earl:datatype thing seems odd. Why don't we specify a particular literal form and use that? YYYY-MM-DD (HH:MM:SS)" . earl:version a daml:UniqueProperty; rdfs:label "version"; rdfs:domain earl:TestSubject; rdfs:range rdfs:Literal; rdfs:comment "For earl:version(x, y), read: x is of version y" . earl:reprOf a rdf:Property; rdfs:label "reprOf"; rdfs:domain earl:WebContent; rdfs:range rdfs:Resource; rdfs:comment """For reprOf(x, y), read that x is a representation of y, possibly derived from an HTTP GET transaction."""; rdfs:note "a daml:UniqueProperty?" . earl:format a rdf:Property; rdfs:label "format"; rdfs:domain earl:WebContent; rdfs:range rdfs:Literal; rdfs:comment "The MIME type of the WebContent subject, as a literal." . earl:snapshot a rdf:Property; rdfs:label "snapshot"; rdfs:domain earl:TestSubject; rdfs:range rdfs:Resource; rdfs:comment """Points to a snapshot of a serialization of the resource when it was evaluated""" . # earl:ResultProperty terms earl:validity a rdf:Property; rdfs:label "validity"; rdfs:comment "The validity state for an EARL ResultProperty."; rdfs:domain earl:ResultProperty; rdfs:range earl:Validity . earl:Validity a rdfs:Class; rdfs:label "Validity"; rdfs:comment "The class of all EARL validity states.". earl:passes a earl:ResultProperty; rdfs:label "passes"; earl:validity earl:Pass; earl:confidence "1" . earl:fails a earl:ResultProperty; rdfs:label "fails"; earl:validity earl:Fail; earl:confidence "1" . earl:notApplicableTo a earl:ResultProperty; rdfs:label "notApplicableTo"; earl:validity earl:NotApplicable; earl:confidence "1" . earl:confidence a rdf:Property; rdfs:label "confidence"; n:definition "for confidence(x, y), x has the confidence y, where y is a number between 0 and 1 (or 0% and 100%, the idea is to have a range)."; rdfs:domain earl:ResultProperty; rdfs:range rdfs:Literal . earl:severity a rdf:Property; rdfs:label "severity"; n:definition "same idea as confidence, only this is a measure of the severity of the test failure."; rdfs:domain earl:ResultProperty; rdfs:range rdfs:Literal . # earl:TestCase terms earl:id a rdf:Property; rdfs:label "id"; rdfs:domain earl:TestCase; rdfs:range rdfs:Resource; rdfs:comment "Since we decided that earl shouldn't be a test point definition language, id is now the only property that we can have for a TestCase." ; n:definition "A single guideline, checkpoint, etc. - this should be the unique identifier for the TestCase" . earl:EARL rdfs:label "EARL (Evaluation And Report Language)"; earl:version "0.975" .