PREFIX bench: PREFIX dcterms: PREFIX swrc: PREFIX rdfs: PREFIX foaf: PREFIX dc: PREFIX xsd: PREFIX rdf: PREFIX : CWA CLASSES { OWA CLASS rdf:Bag {} OWA CLASS foaf:Document {} CWA CLASS foaf:Person { KEY foaf:name : LITERAL(xsd:string); } CWA CLASS bench:Journal { TOTAL dc:title : LITERAL(xsd:string); TOTAL dcterms:issued : LITERAL(xsd:integer); TOTAL swrc:volume : LITERAL(xsd:integer); swrc:editor; swrc:number; } CWA CLASS bench:Proceedings{ TOTAL dc:title : LITERAL(xsd:string); TOTAL dcterms:issued : LITERAL(xsd:integer); swrc:editor; dc:publisher; bench:booktitle; swrc:isbn; swrc:series; swrc:volume; rdfs:seeAlso; foaf:homepage; swrc:number; swrc:note; swrc:address; } CWA CLASS bench:Inproceedings { TOTAL dc:title : LITERAL(xsd:string); TOTAL bench:booktitle : LITERAL(xsd:string); TOTAL dcterms:issued : LITERAL(xsd:integer); TOTAL foaf:homepage : LITERAL(xsd:string); MIN(1) dc:creator; // PATH does not hold as not all Inproceedings have a predicate 'dcterms:partOf' PATH(dcterms:partOf/dcterms:issued) dcterms:issued; // SUBPROPERTY does not hold as 'dc:title' and 'bench:booktitle' do not point to the same object SUBPROPERTY(bench:booktitle) dc:title; dcterms:partOf; bench:abstract; bench:cdrom; swrc:pages; rdfs:seeAlso; dcterms:references; swrc:number; } CWA CLASS bench:Article { TOTAL dc:title : LITERAL(xsd:string); TOTAL swrc:journal; MIN(1) dc:creator; bench:abstract; bench:booktitle; bench:cdrom; dc:publisher; swrc:month; swrc:note; swrc:pages; rdfs:seeAlso; foaf:homepage; dcterms:references; } CWA CLASS bench:Www { TOTAL dc:title : LITERAL(xsd:string); MIN(1) dc:creator; swrc:note; foaf:homepage; } CWA CLASS bench:MastersThesis SUBCLASS bench:PhDThesis { TOTAL dc:title : LITERAL(xsd:string); TOTAL dc:publisher : LITERAL(xsd:string); TOTAL dcterms:issued : LITERAL(xsd:integer); MIN(1) dc:creator; foaf:homepage; } CWA CLASS bench:PhDThesis { swrc:isbn; swrc:month; rdfs:seeAlso; swrc:number; swrc:series; swrc:volume; } CWA CLASS bench:Incollection { TOTAL dc:title : LITERAL(xsd:string); TOTAL dcterms:issued : LITERAL(xsd:integer); TOTAL bench:booktitle : LITERAL(xsd:string); MIN(1) dc:creator; dc:publisher; swrc:pages; rdfs:seeAlso; foaf:homepage; bench:cdrom; swrc:chapter; } CWA CLASS bench:Book { TOTAL dc:title : LITERAL(xsd:string); TOTAL dc:publisher : LITERAL(xsd:string); TOTAL dcterms:issued : LITERAL(xsd:integer); MIN(1) dc:creator; swrc:editor; swrc:isbn; foaf:homepage; swrc:series; swrc:volume; swrc:month; } } OWA PROPERTIES { MAX(6), RANGE(foaf:Person) swrc:editor; MAX(4), RANGE(foaf:Person) dc:creator; DOMAIN(bench:Proceedings) swrc:address : LITERAL(xsd:string); DOMAIN(bench:Incollection) swrc:chapter : LITERAL(xsd:string); DOMAIN(bench:Article), RANGE(bench:Journal) swrc:journal; // PATH does not hold as not all Inproceedings have a predicate 'dcterms:partOf' PATH(dcterms:partOf/dcterms:issued) dcterms:issued; // SUBPROPERTY does not hold as 'dc:title' and 'bench:booktitle' do not point to the same object SUBPROPERTY(bench:booktitle) dc:title; PARTIAL, RANGE(bench:Proceedings) dcterms:partOf; PARTIAL swrc:number : LITERAL(xsd:integer); PARTIAL foaf:homepage : LITERAL(xsd:string); PARTIAL dc:publisher : LITERAL(xsd:string); PARTIAL bench:booktitle : LITERAL(xsd:string); PARTIAL swrc:isbn : LITERAL(xsd:string); PARTIAL swrc:series : LITERAL(xsd:integer); PARTIAL swrc:volume : LITERAL(xsd:integer); PARTIAL rdfs:seeAlso : LITERAL(xsd:string); PARTIAL dcterms:references : BNODE; PARTIAL bench:abstract : LITERAL(xsd:string); PARTIAL bench:cdrom : LITERAL(xsd:string); PARTIAL swrc:pages : LITERAL(xsd:integer); PARTIAL swrc:month : LITERAL(xsd:integer); PARTIAL swrc:note : LITERAL(xsd:string); }