#Processed by Id: cwm.py,v 1.148 2004/03/21 04:24:32 timbl Exp # using base file:/proj/ontrapro/html/ontologies/zip/people+pets/people+petsB.owl # Notation3 generation by # notation3.py,v 1.153 2004/03/21 04:24:35 timbl Exp @prefix : . @prefix owl: . @prefix rdfs: . @prefix xsd: . a owl:Ontology . :Daily_Mirror a owl:Thing; rdfs:comment "The paper read by Mick (a white van man). "; rdfs:label "Daily Mirror" . :Dewey a :duck; rdfs:comment ""; rdfs:label "Dewey" . :Fido a :dog; rdfs:comment ""; rdfs:label "Fido" . :Fluffy a :tiger; rdfs:comment ""; rdfs:label "Fluffy" . :Fred a :person; :has_pet :Tibbs; rdfs:comment ""; rdfs:label "Fred" . :Huey a :duck; rdfs:comment ""; rdfs:label "Huey" . :Joe a :person, [ a owl:Restriction; owl:maxCardinality "1"^^xsd:nonNegativeInteger; owl:onProperty :has_pet ]; :has_pet :Fido; rdfs:comment ""; rdfs:label "Joe" . :Kevin a :person; rdfs:comment ""; rdfs:label "Kevin" . :Louie a :duck; rdfs:comment ""; rdfs:label "Louie" . :Mick a :male; :drives :Q123_ABC; :reads :Daily_Mirror; rdfs:comment "Mick is male and drives a white van. Due to the axiom concerning drivers, we know that Mick must be a man, and is therefore a white van man. The axiom about the reading material of a white van man then allows us to infer things about the Daily Mirror. "; rdfs:label "Mick" . :Minnie a :female, :senior_citizen; :has_pet :Tom; rdfs:comment ""; rdfs:label "Minnie" . :Q123_ABC a :van, :white_thing; rdfs:comment "A white van"; rdfs:label "Q123 ABC" . :Rex a :dog; :is_pet_of :Mick; rdfs:comment ""; rdfs:label "Rex" . :The42 a :coach; :service_number 42; rdfs:comment ""; rdfs:label "The42" . :The_Guardian a :broadsheet; rdfs:comment ""; rdfs:label "The Guardian" . :The_Sun a :tabloid; rdfs:comment ""; rdfs:label "The Sun" . :The_Times a :broadsheet; rdfs:comment ""; rdfs:label "The Times" . :Tibbs a :cat; rdfs:comment ""; rdfs:label "Tibbs" . :Tom a owl:Thing; rdfs:comment ""; rdfs:label "Tom" . :Walt a :person; :has_pet :Dewey, :Huey, :Louie; rdfs:comment ""; rdfs:label "Walt" . :adult a owl:Class; rdfs:comment "Things that are adult."; rdfs:label "adult"; owl:disjointWith :juvenile . :animal a owl:Class; rdfs:comment ""; rdfs:label "animal"; rdfs:subClassOf [ a owl:Restriction; owl:onProperty :eats; owl:someValuesFrom owl:Thing ] . :animal_lover a owl:Class; rdfs:comment "Someone who really likes animals "; rdfs:label "animal lover"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:minCardinality "3"^^xsd:nonNegativeInteger; owl:onProperty :has_pet ] ) ] . :bicycle a owl:Class; rdfs:comment "A human propelled vehicle, with two wheels "; rdfs:label "bicycle"; rdfs:subClassOf :vehicle . :bone a owl:Class; rdfs:comment ""; rdfs:label "bone" . :brain a owl:Class; rdfs:comment ""; rdfs:label "brain" . :broadsheet a owl:Class; rdfs:comment """A newspaper. Broadsheets are usually considered to be more "high-brow" than tabloids."""; rdfs:label "broadsheet"; rdfs:subClassOf :newspaper; owl:disjointWith :tabloid . :car a owl:Class; rdfs:comment ""; rdfs:label "car"; rdfs:subClassOf :vehicle . :cat a owl:Class; rdfs:comment ""; rdfs:label "cat"; rdfs:subClassOf :animal . :cat_lover a owl:Class; rdfs:comment ""; rdfs:label "cat lover"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :likes; owl:someValuesFrom :cat ] ) ] . :cat_owner a owl:Class; rdfs:comment ""; rdfs:label "cat owner"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :has_pet; owl:someValuesFrom :cat ] ) ] . :coach a owl:Class; rdfs:comment ""; rdfs:label "coach"; rdfs:subClassOf :vehicle . :coach_company a owl:Class; rdfs:comment ""; rdfs:label "coach company"; rdfs:subClassOf :company . :coach_driver a owl:Class; rdfs:comment "Someone who drives a coach."; rdfs:label "coach driver"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom :coach ] ) ] . :company a owl:Class; rdfs:comment ""; rdfs:label "company" . :cow a owl:Class . :dog a owl:Class; rdfs:comment ""; rdfs:label "dog"; rdfs:subClassOf [ a owl:Restriction; owl:onProperty :eats; owl:someValuesFrom :bone ]; owl:disjointWith :cat . :dog_lover a owl:Class; rdfs:comment ""; rdfs:label "dog lover"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :likes; owl:someValuesFrom :dog ] ) ] . :dog_owner a owl:Class; rdfs:comment ""; rdfs:label "dog owner"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :has_pet; owl:someValuesFrom :dog ] ) ] . :driver a owl:Class; rdfs:comment ""; rdfs:label "driver"; rdfs:subClassOf :adult; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom :vehicle ] ) ] . :drives a owl:ObjectProperty; rdfs:comment ""; rdfs:label "drives" . :duck a owl:Class; rdfs:comment ""; rdfs:label "duck"; rdfs:subClassOf :animal . :eaten_by a owl:ObjectProperty; rdfs:comment ""; rdfs:label "eaten_by" . :eats a owl:ObjectProperty; rdfs:comment ""; rdfs:domain :animal; rdfs:label "eats"; owl:inverseOf :eaten_by . :female a owl:Class; rdfs:comment ""; rdfs:label "female" . :giraffe a owl:Class; rdfs:comment ""; rdfs:label "giraffe"; rdfs:subClassOf :animal, [ a owl:Restriction; owl:allValuesFrom :leaf; owl:onProperty :eats ] . :grass a owl:Class; rdfs:comment ""; rdfs:label "grass"; rdfs:subClassOf :plant . :grownup a owl:Class; rdfs:comment ""; rdfs:label "grownup"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person :adult ) ] . :has_child a owl:ObjectProperty; rdfs:comment ""; rdfs:label "has_child" . :has_father a owl:ObjectProperty; rdfs:comment ""; rdfs:label "has_father"; rdfs:range :man; rdfs:subPropertyOf :has_parent . :has_mother a owl:ObjectProperty; rdfs:comment ""; rdfs:label "has_mother"; rdfs:range :woman; rdfs:subPropertyOf :has_parent . :has_parent a owl:ObjectProperty; rdfs:comment ""; rdfs:label "has_parent" . :has_part a owl:ObjectProperty; rdfs:comment ""; rdfs:label "has_part"; owl:inverseOf :part_of . :has_pet a owl:ObjectProperty; rdfs:comment "Anyone that has a pet must like that pet. "; rdfs:domain :person; rdfs:label "has_pet"; rdfs:range :animal; rdfs:subPropertyOf :likes . :haulage_company a owl:Class; rdfs:comment ""; rdfs:label "haulage company"; rdfs:subClassOf :company . :haulage_truck_driver a owl:Class; rdfs:comment ""; rdfs:label "haulage truck driver"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom :truck ] [ a owl:Restriction; owl:onProperty :works_for; owl:someValuesFrom [ a owl:Restriction; owl:onProperty :part_of; owl:someValuesFrom :haulage_company ] ] ) ] . :haulage_worker a owl:Class; rdfs:comment ""; rdfs:label "haulage worker"; owl:equivalentClass [ a owl:Restriction; owl:onProperty :works_for; owl:someValuesFrom [ a owl:Class; owl:unionOf ( :haulage_company [ a owl:Restriction; owl:onProperty :part_of; owl:someValuesFrom :haulage_company ] ) ] ] . :is_pet_of a owl:ObjectProperty; rdfs:comment ""; rdfs:label "is_pet_of"; owl:inverseOf :has_pet . :juvenile a owl:Class; rdfs:comment ""; rdfs:label "juvenile" . :kid a owl:Class; rdfs:comment ""; rdfs:label "kid"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person :juvenile ) ] . :leaf a owl:Class; rdfs:comment ""; rdfs:label "leaf"; rdfs:subClassOf [ a owl:Restriction; owl:onProperty :part_of; owl:someValuesFrom :tree ] . :likes a owl:ObjectProperty; rdfs:comment ""; rdfs:label "likes" . :mad_cow a owl:Class; rdfs:comment "A mad cow is a cow that has been eating the brains of sheep."; rdfs:label "mad cow"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :cow [ a owl:Restriction; owl:onProperty :eats; owl:someValuesFrom [ a owl:Class; owl:intersectionOf ( :brain [ a owl:Restriction; owl:onProperty :part_of; owl:someValuesFrom :sheep ] ) ] ] ) ] . :magazine a owl:Class; rdfs:comment ""; rdfs:label "magazine"; rdfs:subClassOf :publication . :male a owl:Class; rdfs:comment "The class of all male things."; rdfs:label "male" . :man a owl:Class; rdfs:comment ""; rdfs:label "man"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person :male :adult ) ] . :newspaper a owl:Class; rdfs:comment "All newspapers are either broadsheets or tabloids."; rdfs:label "newspaper"; rdfs:subClassOf :publication, [ a owl:Class; owl:unionOf ( :broadsheet :tabloid ) ] . :old_lady a owl:Class; rdfs:comment ""; rdfs:label "old lady"; rdfs:subClassOf [ a owl:Class; owl:intersectionOf ( [ a owl:Restriction; owl:allValuesFrom :cat; owl:onProperty :has_pet ] [ a owl:Restriction; owl:onProperty :has_pet; owl:someValuesFrom :animal ] ) ]; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person :female :senior_citizen ) ] . :part_of a owl:ObjectProperty; rdfs:comment ""; rdfs:label "part_of" . :person a owl:Class; rdfs:comment ""; rdfs:label "person"; rdfs:subClassOf :animal . :pet a owl:Class; rdfs:comment ""; rdfs:label "pet"; owl:equivalentClass [ a owl:Restriction; owl:onProperty :is_pet_of; owl:someValuesFrom owl:Thing ] . :pet_owner a owl:Class; rdfs:comment ""; rdfs:label "pet owner"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :has_pet; owl:someValuesFrom :animal ] ) ] . :plant a owl:Class; rdfs:comment ""; rdfs:label "plant" . :publication a owl:Class; rdfs:comment ""; rdfs:label "publication" . :quality_broadsheet a owl:Class; rdfs:comment ""; rdfs:label "quality broadsheet"; rdfs:subClassOf :broadsheet . :reads a owl:ObjectProperty; rdfs:comment ""; rdfs:label "reads"; rdfs:range :publication . :red_top a owl:Class; rdfs:comment ""; rdfs:label "red top"; rdfs:subClassOf :tabloid . :senior_citizen a owl:Class; rdfs:comment ""; rdfs:label "senior_citizen"; rdfs:subClassOf :adult . :service_number a owl:DatatypeProperty; rdfs:comment ""; rdfs:label "service_number"; rdfs:range xsd:integer . :sheep a owl:Class; rdfs:comment ""; rdfs:label "sheep"; rdfs:subClassOf :animal, [ a owl:Restriction; owl:allValuesFrom :grass; owl:onProperty :eats ] . :tabloid a owl:Class; rdfs:comment """A newspaper. Tabloids are usually thought of as more "down-market" than broadsheets."""; rdfs:label "tabloid"; rdfs:subClassOf :newspaper . :tiger a owl:Class; rdfs:comment ""; rdfs:label "tiger"; rdfs:subClassOf :animal . :tree a owl:Class; rdfs:comment ""; rdfs:label "tree"; rdfs:subClassOf :plant . :truck a owl:Class; rdfs:comment ""; rdfs:label "truck"; rdfs:subClassOf :vehicle . :truck_driver a owl:Class; rdfs:comment ""; rdfs:label "truck driver"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom :truck ] ) ] . :van a owl:Class; rdfs:comment ""; rdfs:label "van"; rdfs:subClassOf :vehicle . :van_driver a owl:Class; rdfs:comment ""; rdfs:label "van driver"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom :van ] ) ] . :vehicle a owl:Class; rdfs:comment ""; rdfs:label "vehicle" . :white_thing a owl:Class; rdfs:comment ""; rdfs:label "white thing" . :white_van_man a owl:Class; rdfs:comment "A white van man is a man who drives a white van."; rdfs:label "white van man"; rdfs:subClassOf [ a owl:Restriction; owl:allValuesFrom :tabloid; owl:onProperty :reads ]; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :man [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom [ a owl:Class; owl:intersectionOf ( :white_thing :van ) ] ] ) ] . :woman a owl:Class; rdfs:comment ""; rdfs:label "woman"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person :female :adult ) ] . :works_for a owl:ObjectProperty; rdfs:comment ""; rdfs:label "works_for" . owl:Thing a owl:Class . [ a owl:Class; owl:disjointWith [ a owl:Class; owl:unionOf ( :plant [ a owl:Restriction; owl:onProperty :part_of; owl:someValuesFrom :plant ] ) ]; owl:unionOf ( :animal [ a owl:Restriction; owl:onProperty :part_of; owl:someValuesFrom :animal ] ) ]. #ENDS