#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-noninstance/people+pets-noninstanceA.owl # Notation3 generation by # notation3.py,v 1.153 2004/03/21 04:24:35 timbl Exp @prefix : . @prefix ns0: . @prefix rdfs: . @prefix xsd: . a :Ontology . ns0:adult a :Class; rdfs:comment "Things that are adult."; rdfs:label "adult"; :disjointWith ns0:young . ns0:animal a :Class; rdfs:comment ""; rdfs:label "animal"; rdfs:subClassOf [ a :Restriction; :onProperty ns0:eats; :someValuesFrom :Thing ] . ns0:animal_lover a :Class; rdfs:comment "Someone who really likes animals "; rdfs:label "animal lover"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :minCardinality "3"^^xsd:nonNegativeInteger; :onProperty ns0:has_pet ] ) ] . ns0:bicycle a :Class; rdfs:comment "A human propelled vehicle, with two wheels "; rdfs:label "bicycle"; rdfs:subClassOf ns0:vehicle . ns0:bone a :Class; rdfs:comment ""; rdfs:label "bone" . ns0:brain a :Class; rdfs:comment ""; rdfs:label "brain" . ns0:broadsheet a :Class; rdfs:comment """A newspaper. Broadsheets are usually considered to be more "high-brow" than tabloids."""; rdfs:label "broadsheet"; rdfs:subClassOf ns0:newspaper; :disjointWith ns0:tabloid . ns0:bus a :Class; rdfs:comment ""; rdfs:label "bus"; rdfs:subClassOf ns0:vehicle . ns0:bus_company a :Class; rdfs:comment ""; rdfs:label "bus company"; rdfs:subClassOf ns0:company . ns0:bus_driver a :Class; rdfs:comment "Someone who drives a bus."; rdfs:label "bus driver"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:drives; :someValuesFrom ns0:bus ] ) ] . ns0:car a :Class; rdfs:comment ""; rdfs:label "car"; rdfs:subClassOf ns0:vehicle . ns0:cat a :Class; rdfs:comment ""; rdfs:label "cat"; rdfs:subClassOf ns0:animal . ns0:cat_liker a :Class; rdfs:comment ""; rdfs:label "cat liker"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:likes; :someValuesFrom ns0:cat ] ) ] . ns0:cat_owner a :Class; rdfs:comment ""; rdfs:label "cat owner"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:has_pet; :someValuesFrom ns0:cat ] ) ] . ns0:company a :Class; rdfs:comment ""; rdfs:label "company" . ns0:cow a :Class; rdfs:comment "Cows are naturally vegetarians."; rdfs:label "cow"; rdfs:subClassOf ns0:vegetarian . ns0:dog a :Class; rdfs:comment ""; rdfs:label "dog"; rdfs:subClassOf [ a :Restriction; :onProperty ns0:eats; :someValuesFrom ns0:bone ]; :disjointWith ns0:cat . ns0:dog_liker a :Class; rdfs:comment ""; rdfs:label "dog liker"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:likes; :someValuesFrom ns0:dog ] ) ] . ns0:dog_owner a :Class; rdfs:comment ""; rdfs:label "dog owner"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:has_pet; :someValuesFrom ns0:dog ] ) ] . ns0:driver a :Class; rdfs:comment ""; rdfs:label "driver"; rdfs:subClassOf ns0:adult; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:drives; :someValuesFrom ns0:vehicle ] ) ] . ns0:drives a :ObjectProperty; rdfs:comment ""; rdfs:label "drives" . ns0:duck a :Class; rdfs:comment ""; rdfs:label "duck"; rdfs:subClassOf ns0:animal . ns0:eaten_by a :ObjectProperty; rdfs:comment ""; rdfs:label "eaten_by" . ns0:eats a :ObjectProperty; rdfs:comment ""; rdfs:domain ns0:animal; rdfs:label "eats"; :inverseOf ns0:eaten_by . ns0:elderly a :Class; rdfs:comment ""; rdfs:label "elderly"; rdfs:subClassOf ns0:adult . ns0:female a :Class; rdfs:comment ""; rdfs:label "female" . ns0:giraffe a :Class; rdfs:comment ""; rdfs:label "giraffe"; rdfs:subClassOf ns0:animal, [ a :Restriction; :allValuesFrom ns0:leaf; :onProperty ns0:eats ] . ns0:grass a :Class; rdfs:comment ""; rdfs:label "grass"; rdfs:subClassOf ns0:plant . ns0:grownup a :Class; rdfs:comment ""; rdfs:label "grownup"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person ns0:adult ) ] . ns0:has_child a :ObjectProperty; rdfs:comment ""; rdfs:label "has_child" . ns0:has_father a :ObjectProperty; rdfs:comment ""; rdfs:label "has_father"; rdfs:range ns0:man; rdfs:subPropertyOf ns0:has_parent . ns0:has_mother a :ObjectProperty; rdfs:comment ""; rdfs:label "has_mother"; rdfs:range ns0:woman; rdfs:subPropertyOf ns0:has_parent . ns0:has_parent a :ObjectProperty; rdfs:comment ""; rdfs:label "has_parent" . ns0:has_part a :ObjectProperty; rdfs:comment ""; rdfs:label "has_part"; :inverseOf ns0:part_of . ns0:has_pet a :ObjectProperty; rdfs:comment "Anyone that has a pet must like that pet. "; rdfs:domain ns0:person; rdfs:label "has_pet"; rdfs:range ns0:animal; rdfs:subPropertyOf ns0:likes . ns0:haulage_company a :Class; rdfs:comment ""; rdfs:label "haulage company"; rdfs:subClassOf ns0:company . ns0:haulage_truck_driver a :Class; rdfs:comment ""; rdfs:label "haulage truck driver"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:drives; :someValuesFrom ns0:truck ] [ a :Restriction; :onProperty ns0:works_for; :someValuesFrom [ a :Restriction; :onProperty ns0:part_of; :someValuesFrom ns0:haulage_company ] ] ) ] . ns0:haulage_worker a :Class; rdfs:comment ""; rdfs:label "haulage worker"; :equivalentClass [ a :Restriction; :onProperty ns0:works_for; :someValuesFrom [ a :Class; :unionOf ( ns0:haulage_company [ a :Restriction; :onProperty ns0:part_of; :someValuesFrom ns0:haulage_company ] ) ] ] . ns0:is_pet_of a :ObjectProperty; rdfs:comment ""; rdfs:label "is_pet_of"; :inverseOf ns0:has_pet . ns0:kid a :Class; rdfs:comment ""; rdfs:label "kid"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person ns0:young ) ] . ns0:leaf a :Class; rdfs:comment ""; rdfs:label "leaf"; rdfs:subClassOf [ a :Restriction; :onProperty ns0:part_of; :someValuesFrom ns0:tree ] . ns0:likes a :ObjectProperty; rdfs:comment ""; rdfs:label "likes" . ns0:lorry a :Class; rdfs:comment ""; rdfs:label "lorry"; rdfs:subClassOf ns0:vehicle . ns0:lorry_driver a :Class; rdfs:comment ""; rdfs:label "lorry driver"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:drives; :someValuesFrom ns0:lorry ] ) ] . ns0:mad_cow a :Class; rdfs:comment "A mad cow is a cow that has been eating the brains of sheep."; rdfs:label "mad cow"; :equivalentClass [ a :Class; :intersectionOf ( ns0:cow [ a :Restriction; :onProperty ns0:eats; :someValuesFrom [ a :Class; :intersectionOf ( ns0:brain [ a :Restriction; :onProperty ns0:part_of; :someValuesFrom ns0:sheep ] ) ] ] ) ] . ns0:magazine a :Class; rdfs:comment ""; rdfs:label "magazine"; rdfs:subClassOf ns0:publication . ns0:male a :Class; rdfs:comment "The class of all male things."; rdfs:label "male" . ns0:man a :Class; rdfs:comment ""; rdfs:label "man"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person ns0:male ns0:adult ) ] . ns0:newspaper a :Class; rdfs:comment "All newspapers are either broadsheets or tabloids."; rdfs:label "newspaper"; rdfs:subClassOf ns0:publication, [ a :Class; :unionOf ( ns0:broadsheet ns0:tabloid ) ] . ns0:old_lady a :Class; rdfs:comment ""; rdfs:label "old lady"; rdfs:subClassOf [ a :Class; :intersectionOf ( [ a :Restriction; :allValuesFrom ns0:cat; :onProperty ns0:has_pet ] [ a :Restriction; :onProperty ns0:has_pet; :someValuesFrom ns0:animal ] ) ]; :equivalentClass [ a :Class; :intersectionOf ( ns0:person ns0:female ns0:elderly ) ] . ns0:part_of a :ObjectProperty; rdfs:comment ""; rdfs:label "part_of" . ns0:person a :Class; rdfs:comment ""; rdfs:label "person"; rdfs:subClassOf ns0:animal . ns0:pet a :Class; rdfs:comment ""; rdfs:label "pet"; :equivalentClass [ a :Restriction; :onProperty ns0:is_pet_of; :someValuesFrom :Thing ] . ns0:pet_owner a :Class; rdfs:comment ""; rdfs:label "pet owner"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:has_pet; :someValuesFrom ns0:animal ] ) ] . ns0:plant a :Class; rdfs:comment ""; rdfs:label "plant" . ns0:publication a :Class; rdfs:comment ""; rdfs:label "publication" . ns0:quality_broadsheet a :Class; rdfs:comment ""; rdfs:label "quality broadsheet"; rdfs:subClassOf ns0:broadsheet . ns0:reads a :ObjectProperty; rdfs:comment ""; rdfs:label "reads"; rdfs:range ns0:publication . ns0:red_top a :Class; rdfs:comment ""; rdfs:label "red top"; rdfs:subClassOf ns0:tabloid . ns0:service_number a :DatatypeProperty; rdfs:comment ""; rdfs:label "service_number"; rdfs:range xsd:integer . ns0:sheep a :Class; rdfs:comment ""; rdfs:label "sheep"; rdfs:subClassOf ns0:animal, [ a :Restriction; :allValuesFrom ns0:grass; :onProperty ns0:eats ] . ns0:tabloid a :Class; rdfs:comment """A newspaper. Tabloids are usually thought of as more "down-market" than broadsheets."""; rdfs:label "tabloid"; rdfs:subClassOf ns0:newspaper . ns0:tiger a :Class; rdfs:comment ""; rdfs:label "tiger"; rdfs:subClassOf ns0:animal . ns0:tree a :Class; rdfs:comment ""; rdfs:label "tree"; rdfs:subClassOf ns0:plant . ns0:truck a :Class; rdfs:comment ""; rdfs:label "truck"; rdfs:subClassOf ns0:vehicle . ns0:van a :Class; rdfs:comment ""; rdfs:label "van"; rdfs:subClassOf ns0:vehicle . ns0:van_driver a :Class; rdfs:comment ""; rdfs:label "van driver"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person [ a :Restriction; :onProperty ns0:drives; :someValuesFrom ns0:van ] ) ] . ns0:vegetarian a :Class; rdfs:comment "A vegetarian is defined as an animal that eats no other animals, or parts of animals."; rdfs:label "vegetarian"; :equivalentClass [ a :Class; :intersectionOf ( ns0:animal [ a :Restriction; :allValuesFrom [ a :Class; :complementOf ns0:animal ]; :onProperty ns0:eats ] [ a :Restriction; :allValuesFrom [ a :Class; :complementOf [ a :Restriction; :onProperty ns0:part_of; :someValuesFrom ns0:animal ] ]; :onProperty ns0:eats ] ) ] . ns0:vehicle a :Class; rdfs:comment ""; rdfs:label "vehicle" . ns0:white_thing a :Class; rdfs:comment ""; rdfs:label "white thing" . ns0:white_van_man a :Class; rdfs:comment "A white van man is a man who drives a white van."; rdfs:label "white van man"; rdfs:subClassOf [ a :Restriction; :allValuesFrom ns0:tabloid; :onProperty ns0:reads ]; :equivalentClass [ a :Class; :intersectionOf ( ns0:man [ a :Restriction; :onProperty ns0:drives; :someValuesFrom [ a :Class; :intersectionOf ( ns0:white_thing ns0:van ) ] ] ) ] . ns0:woman a :Class; rdfs:comment ""; rdfs:label "woman"; :equivalentClass [ a :Class; :intersectionOf ( ns0:person ns0:female ns0:adult ) ] . ns0:works_for a :ObjectProperty; rdfs:comment ""; rdfs:label "works_for" . ns0:young a :Class; rdfs:comment ""; rdfs:label "young" . :Thing a :Class . [ a :Class; :disjointWith [ a :Class; :unionOf ( ns0:plant [ a :Restriction; :onProperty ns0:part_of; :someValuesFrom ns0:plant ] ) ]; :unionOf ( ns0:animal [ a :Restriction; :onProperty ns0:part_of; :someValuesFrom ns0:animal ] ) ]. #ENDS