#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+petsA.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" . :Flossie a :cow; rdfs:comment ""; rdfs:label "Flossie" . :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 :elderly, :female; :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 :bus; :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 :young . :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 . :bus a owl:Class; rdfs:comment ""; rdfs:label "bus"; rdfs:subClassOf :vehicle . :bus_company a owl:Class; rdfs:comment ""; rdfs:label "bus company"; rdfs:subClassOf :company . :bus_driver a owl:Class; rdfs:comment "Someone who drives a bus."; rdfs:label "bus driver"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom :bus ] ) ] . :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_liker a owl:Class; rdfs:comment ""; rdfs:label "cat liker"; 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 ] ) ] . :company a owl:Class; rdfs:comment ""; rdfs:label "company" . :cow a owl:Class; rdfs:comment "Cows are naturally vegetarians."; rdfs:label "cow"; rdfs:subClassOf :vegetarian . :dog a owl:Class; rdfs:comment ""; rdfs:label "dog"; rdfs:subClassOf [ a owl:Restriction; owl:onProperty :eats; owl:someValuesFrom :bone ]; owl:disjointWith :cat . :dog_liker a owl:Class; rdfs:comment ""; rdfs:label "dog liker"; 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 . :elderly a owl:Class; rdfs:comment ""; rdfs:label "elderly"; rdfs:subClassOf :adult . :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 . :kid a owl:Class; rdfs:comment ""; rdfs:label "kid"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person :young ) ] . :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" . :lorry a owl:Class; rdfs:comment ""; rdfs:label "lorry"; rdfs:subClassOf :vehicle . :lorry_driver a owl:Class; rdfs:comment ""; rdfs:label "lorry driver"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :person [ a owl:Restriction; owl:onProperty :drives; owl:someValuesFrom :lorry ] ) ] . :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 :elderly ) ] . :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 . :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 . :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 ] ) ] . :vegetarian a owl:Class; rdfs:comment "A vegetarian is defined as an animal that eats no other animals, or parts of animals."; rdfs:label "vegetarian"; owl:equivalentClass [ a owl:Class; owl:intersectionOf ( :animal [ a owl:Restriction; owl:allValuesFrom [ a owl:Class; owl:complementOf :animal ]; owl:onProperty :eats ] [ a owl:Restriction; owl:allValuesFrom [ a owl:Class; owl:complementOf [ a owl:Restriction; owl:onProperty :part_of; owl:someValuesFrom :animal ] ]; owl:onProperty :eats ] ) ] . :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" . :young a owl:Class; rdfs:comment ""; rdfs:label "young" . 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