blob: 8a54c925fe10b9516a68fc011e27178f76d5f994 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE owl [
<!ENTITY vin "http://www.w3.org/2001/sw/WebOnt/guide-src/wine#" >
<!ENTITY food "http://www.w3.org/2001/sw/WebOnt/guide-src/food#" >
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
]>
<rdf:RDF
xmlns = "http://www.w3.org/2001/sw/WebOnt/guide-src/wine#"
xmlns:vin = "http://www.w3.org/2001/sw/WebOnt/guide-src/wine#"
xml:base = "http://www.w3.org/2001/sw/WebOnt/guide-src/wine#"
xmlns:food= "http://www.w3.org/2001/sw/WebOnt/guide-src/food#"
xmlns:owl = "http://www.w3.org/2002/07/owl#"
xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd = "http://www.w3.org/2001/XMLSchema#">
<owl:Ontology rdf:about="">
<rdfs:comment>An example OWL ontology</rdfs:comment>
<owl:priorVersion>
<owl:Ontology rdf:about="http://www.example.org/wine-020303"/>
</owl:priorVersion>
<owl:imports rdf:resource="http://www.w3.org/2001/sw/WebOnt/guide-src/food.owl"/>
<rdfs:comment>Derived from the DAML Wine ontology at
http://ontolingua.stanford.edu/doc/chimaera/ontologies/wines.daml
Substantially changed, in particular the Region based relations.
</rdfs:comment>
<rdfs:label>Wine Ontology</rdfs:label>
</owl:Ontology>
<owl:Class rdf:ID="Wine">
<rdfs:subClassOf rdf:resource="&food;PotableLiquid" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMaker" />
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMaker" />
<owl:allValuesFrom rdf:resource="#Winery" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn"/>
<owl:someValuesFrom rdf:resource="&vin;Region"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:label xml:lang="en">wine</rdfs:label>
<rdfs:label xml:lang="fr">vin</rdfs:label>
</owl:Class>
<owl:Class rdf:ID="Vintage">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasVintageYear"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="WineGrape">
<rdfs:subClassOf rdf:resource="&food;Grape" />
</owl:Class>
<owl:Class rdf:ID="WhiteWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="WhiteTableWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#TableWine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="WhiteNonSweetWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#WhiteWine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Dry" />
<owl:Thing rdf:about="#OffDry" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="WhiteLoire">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Loire" />
<owl:Class rdf:about="#WhiteWine" />
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:about="#WhiteLoire">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#CheninBlancGrape" />
<owl:Thing rdf:about="#PinotBlancGrape" />
<owl:Thing rdf:about="#SauvignonBlancGrape" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="WhiteBurgundy">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Burgundy" />
<owl:Class rdf:about="#WhiteWine" />
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:about="#WhiteBurgundy">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#ChardonnayGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="WhiteBordeaux">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Bordeaux" />
<owl:Class rdf:about="#WhiteWine" />
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:about="#WhiteBordeaux">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#SemillonGrape" />
<owl:Thing rdf:about="#SauvignonBlancGrape" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="Region" />
<owl:ObjectProperty rdf:ID="locatedIn">
<rdf:type rdf:resource="&owl;TransitiveProperty" />
<rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" />
<rdfs:range rdf:resource="#Region" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="adjacentRegion">
<rdf:type rdf:resource="&owl;SymmetricProperty" />
<rdfs:domain rdf:resource="#Region" />
<rdfs:range rdf:resource="#Region" />
</owl:ObjectProperty>
<owl:Class rdf:ID="VintageYear" />
<owl:DatatypeProperty rdf:ID="yearValue">
<rdfs:domain rdf:resource="#VintageYear" />
<rdfs:range rdf:resource="&xsd;positiveInteger" />
</owl:DatatypeProperty>
<VintageYear rdf:ID="Year1998">
<yearValue rdf:datatype="&xsd;positiveInteger">1998</yearValue>
</VintageYear>
<owl:ObjectProperty rdf:ID="hasVintageYear">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
<rdfs:domain rdf:resource="#Vintage" />
<rdfs:range rdf:resource="#VintageYear" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="madeFromGrape">
<rdfs:subPropertyOf rdf:resource="&food;madeFromFruit" />
<rdfs:domain rdf:resource="#Wine" />
<rdfs:range rdf:resource="#WineGrape" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="madeIntoWine">
<owl:inverseOf rdf:resource="#madeFromGrape" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="hasWineDescriptor">
<rdfs:domain rdf:resource="#Wine" />
<rdfs:range rdf:resource="#WineDescriptor" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="hasSugar">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
<rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
<rdfs:range rdf:resource="#WineSugar" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="hasBody">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
<rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
<rdfs:range rdf:resource="#WineBody" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="hasFlavor">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
<rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
<rdfs:range rdf:resource="#WineFlavor" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="hasColor">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
<rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
<rdfs:domain rdf:resource="#Wine" />
<rdfs:range rdf:resource="#WineColor" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="hasMaker">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="producesWine">
<owl:inverseOf rdf:resource="#hasMaker" />
</owl:ObjectProperty>
<owl:Class rdf:ID="Zinfandel">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#ZinfandelGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:about="#Zinfandel">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Full" />
<owl:Thing rdf:about="#Medium" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Strong" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="Winery" />
<owl:Class rdf:ID="WineDescriptor">
<rdfs:comment>Made WineDescriptor unionType of tastes and color</rdfs:comment>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#WineTaste" />
<owl:Class rdf:about="#WineColor" />
</owl:unionOf>
</owl:Class>
<owl:Class rdf:ID="WineTaste">
<rdfs:subClassOf rdf:resource="#WineDescriptor" />
</owl:Class>
<owl:Class rdf:ID="WineColor">
<rdfs:subClassOf rdf:resource="#WineDescriptor" />
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#White" />
<owl:Thing rdf:about="#Rose" />
<owl:Thing rdf:about="#Red" />
</owl:oneOf>
</owl:Class>
<owl:Class rdf:ID="WineSugar">
<rdfs:subClassOf rdf:resource="#WineTaste" />
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Sweet" />
<owl:Thing rdf:about="#OffDry" />
<owl:Thing rdf:about="#Dry" />
</owl:oneOf>
</owl:Class>
<owl:Class rdf:ID="WineFlavor">
<rdfs:subClassOf rdf:resource="#WineTaste" />
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Delicate" />
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Strong" />
</owl:oneOf>
</owl:Class>
<owl:Class rdf:ID="WineBody">
<rdfs:subClassOf rdf:resource="#WineTaste" />
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Light" />
<owl:Thing rdf:about="#Medium" />
<owl:Thing rdf:about="#Full" />
</owl:oneOf>
</owl:Class>
<Region rdf:ID="USRegion" />
<owl:Class rdf:ID="Tours">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Loire" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#ToursRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:about="#Tours">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#CheninBlancGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="TableWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="SweetWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Sweet" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="SweetRiesling">
<rdfs:subClassOf rdf:resource="#DessertWine" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Full" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Strong" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Riesling" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Sweet" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="StEmilion">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Strong" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#CabernetSauvignonGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Bordeaux" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#StEmilionRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="SemillonOrSauvignonBlanc">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Medium" />
<owl:Thing rdf:about="#Full" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#SemillonGrape" />
<owl:Thing rdf:about="#SauvignonBlancGrape" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Semillon">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#SemillonOrSauvignonBlanc" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#SemillonGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="SauvignonBlanc">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#SemillonOrSauvignonBlanc" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#SauvignonBlancGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Sauterne">
<rdfs:subClassOf rdf:resource="#LateHarvest" />
<rdfs:subClassOf rdf:resource="#Bordeaux" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#SauterneRegion" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Medium" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="Sancerre">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Medium" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#OffDry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Delicate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#SauvignonBlancGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Loire" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#SancerreRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="RoseWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Rose" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Riesling">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#RieslingGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="RedWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="RedTableWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#TableWine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="RedBurgundy">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#PinotNoirGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Burgundy" />
<owl:Class rdf:about="#RedWine" />
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="RedBordeaux">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#CabernetSauvignonGrape" />
<owl:Thing rdf:about="#MerlotGrape" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Bordeaux" />
<owl:Class rdf:about="#RedWine" />
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Port">
<rdfs:subClassOf rdf:resource="#RedWine" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#PortugalRegion" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Full" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Strong" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Sweet" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="PinotNoir">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#PinotNoirGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="PinotBlanc">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#PinotBlancGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="PetiteSyrah">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Strong" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Medium" />
<owl:Thing rdf:about="#Full" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#PetiteSyrahGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Pauillac">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Full" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Strong" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#CabernetSauvignonGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Medoc" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#PauillacRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Muscadet">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Light" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Delicate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#PinotBlancGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Loire" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#MuscadetRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Meursault">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Full" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#WhiteBurgundy" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#MeursaultRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Merlot">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Delicate" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Light" />
<owl:Thing rdf:about="#Medium" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#MerlotGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Meritage">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#CabernetSauvignonGrape" />
<owl:Thing rdf:about="#CabernetFrancGrape" />
<owl:Thing rdf:about="#MalbecGrape" />
<owl:Thing rdf:about="#PetiteVerdotGrape" />
<owl:Thing rdf:about="#MerlotGrape" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:minCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<Region rdf:ID="MedocRegion">
<locatedIn rdf:resource="#BordeauxRegion" />
</Region>
<owl:Class rdf:ID="Medoc">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Bordeaux" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#MedocRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Margaux">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Delicate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#MerlotGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Medoc" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#MargauxRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<Region rdf:ID="LoireRegion">
<locatedIn rdf:resource="#FrenchRegion" />
</Region>
<owl:Class rdf:ID="Loire">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#LoireRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="LateHarvest">
<rdfs:subClassOf rdf:resource="#Wine" />
<owl:disjointWith rdf:resource="#EarlyHarvest" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Sweet" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Strong" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="ItalianWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#ItalianRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<Region rdf:ID="ItalianRegion" />
<owl:Class rdf:ID="IceWine">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Medium" />
<owl:Thing rdf:about="#Full" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Strong" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#LateHarvest" />
<owl:Class rdf:about="#DessertWine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="GermanWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#GermanyRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Gamay">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#GamayGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="FullBodiedWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Full" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<Region rdf:ID="FrenchRegion" />
<owl:Class rdf:ID="FrenchWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#FrenchRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="EarlyHarvest">
<rdfs:subClassOf rdf:resource="#Wine" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Dry" />
<owl:Thing rdf:about="#OffDry" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="DryWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="DryWhiteWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#DryWine" />
<owl:Class rdf:about="#WhiteWine" />
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="DryRiesling">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Delicate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Light" />
<owl:Thing rdf:about="#Medium" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Riesling" />
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="DryRedWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#DryWine" />
<owl:Class rdf:about="#RedWine" />
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="DessertWine">
<rdfs:subClassOf rdf:resource="#Wine" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#OffDry" />
<owl:Thing rdf:about="#Sweet" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="CotesDOr">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Moderate" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#RedBurgundy" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#CotesDOrRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Chianti">
<rdfs:subClassOf rdf:resource="#ItalianWine" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#ChiantiRegion" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#SangioveseGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Moderate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Light" />
<owl:Thing rdf:about="#Medium" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:ID="CheninBlanc">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Moderate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Full" />
<owl:Thing rdf:about="#Medium" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Dry" />
<owl:Thing rdf:about="#OffDry" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#CheninBlancGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Chardonnay">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#White" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Full" />
<owl:Thing rdf:about="#Medium" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Strong" />
<owl:Thing rdf:about="#Moderate" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#ChardonnayGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<Region rdf:ID="CaliforniaRegion">
<locatedIn rdf:resource="#USRegion" />
</Region>
<Region rdf:ID="TexasRegion">
<locatedIn rdf:resource="#USRegion" />
</Region>
<owl:Class rdf:ID="CaliforniaWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#CaliforniaRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="TexasWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#TexasRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="CabernetSauvignon">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Moderate" />
<owl:Thing rdf:about="#Strong" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Medium" />
<owl:Thing rdf:about="#Full" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#CabernetSauvignonGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="CabernetFranc">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Moderate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Medium" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#CabernetFrancGrape" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Burgundy">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#BourgogneRegion" />
</owl:Restriction>
</owl:intersectionOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<Region rdf:ID="BourgogneRegion">
<locatedIn rdf:resource="#FrenchRegion" />
</Region>
<Region rdf:ID="BordeauxRegion">
<locatedIn rdf:resource="#FrenchRegion" />
</Region>
<owl:Class rdf:ID="Bordeaux">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#BordeauxRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="Beaujolais">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Red" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Light" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Delicate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:hasValue rdf:resource="#GamayGrape" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#madeFromGrape" />
<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#BeaujolaisRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<Region rdf:ID="AustralianRegion" />
<owl:Class rdf:ID="Anjou">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasColor" />
<owl:hasValue rdf:resource="#Rose" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasBody" />
<owl:hasValue rdf:resource="#Light" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasFlavor" />
<owl:hasValue rdf:resource="#Delicate" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#OffDry" />
</owl:Restriction>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Loire" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#AnjouRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="AmericanWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#USRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="AlsatianWine">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Wine" />
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:hasValue rdf:resource="#AlsaceRegion" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<WineBody rdf:ID="Full" />
<WineBody rdf:ID="Medium" />
<WineBody rdf:ID="Light" />
<WineColor rdf:ID="Red" />
<WineColor rdf:ID="Rose" />
<WineColor rdf:ID="White" />
<WineFlavor rdf:ID="Strong" />
<WineFlavor rdf:ID="Moderate" />
<WineFlavor rdf:ID="Delicate" />
<WineSugar rdf:ID="Dry" />
<WineSugar rdf:ID="OffDry">
<owl:differentFrom rdf:resource="#Dry"/>
<owl:differentFrom rdf:resource="#Sweet"/>
</WineSugar>
<WineSugar rdf:ID="Sweet">
<owl:differentFrom rdf:resource="#Dry"/>
</WineSugar>
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType="Collection">
<vin:WineColor rdf:about="#Red" />
<vin:WineColor rdf:about="#White" />
<vin:WineColor rdf:about="#Rose" />
</owl:distinctMembers>
</owl:AllDifferent>
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType="Collection">
<vin:WineBody rdf:about="#Light" />
<vin:WineBody rdf:about="#Medium" />
<vin:WineBody rdf:about="#Full" />
</owl:distinctMembers>
</owl:AllDifferent>
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType="Collection">
<vin:WineFlavor rdf:about="#Delicate" />
<vin:WineFlavor rdf:about="#Moderate" />
<vin:WineFlavor rdf:about="#Strong" />
</owl:distinctMembers>
</owl:AllDifferent>
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType="Collection">
<vin:WineSugar rdf:about="#Sweet" />
<vin:WineSugar rdf:about="#OffDry" />
<vin:WineSugar rdf:about="#Dry" />
</owl:distinctMembers>
</owl:AllDifferent>
<Region rdf:ID="AlsaceRegion">
<locatedIn rdf:resource="#FrenchRegion" />
</Region>
<Region rdf:ID="AnjouRegion">
<locatedIn rdf:resource="#LoireRegion" />
</Region>
<Region rdf:ID="ArroyoGrandeRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<Winery rdf:ID="Beringer" />
<Winery rdf:ID="Bancroft" />
<Chardonnay rdf:ID="BancroftChardonnay">
<locatedIn rdf:resource="#NapaRegion" />
<hasMaker rdf:resource="#Bancroft" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Chardonnay>
<Region rdf:ID="BeaujolaisRegion">
<locatedIn rdf:resource="#FrenchRegion" />
</Region>
<WineGrape rdf:ID="CabernetFrancGrape" />
<WineGrape rdf:ID="CabernetSauvignonGrape" />
<Region rdf:ID="CentralCoastRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<WineGrape rdf:ID="ChardonnayGrape" />
<Winery rdf:ID="ChateauChevalBlanc" />
<StEmilion rdf:ID="ChateauChevalBlancStEmilion">
<hasMaker rdf:resource="#ChateauChevalBlanc" />
</StEmilion>
<Winery rdf:ID="ChateauDYchem" />
<Sauterne rdf:ID="ChateauDYchemSauterne">
<madeFromGrape rdf:resource="#SauvignonBlancGrape" />
<madeFromGrape rdf:resource="#SemillonGrape" />
<hasFlavor rdf:resource="#Strong" />
<hasMaker rdf:resource="#ChateauDYchem" />
</Sauterne>
<Winery rdf:ID="ChateauDeMeursault" />
<Meursault rdf:ID="ChateauDeMeursaultMeursault">
<hasFlavor rdf:resource="#Moderate" />
<hasMaker rdf:resource="#ChateauDeMeursault" />
</Meursault>
<Winery rdf:ID="ChateauLafiteRothschild" />
<Pauillac rdf:ID="ChateauLafiteRothschildPauillac">
<hasMaker rdf:resource="#ChateauLafiteRothschild" />
</Pauillac>
<Margaux rdf:ID="ChateauMargaux">
<hasMaker rdf:resource="#ChateauMargauxWinery" />
</Margaux>
<Winery rdf:ID="ChateauMargauxWinery" />
<Winery rdf:ID="ChateauMorgon" />
<Beaujolais rdf:ID="ChateauMorgonBeaujolais">
<hasMaker rdf:resource="#ChateauMorgon" />
</Beaujolais>
<WineGrape rdf:ID="CheninBlancGrape" />
<WineGrape rdf:ID="ZinfandelGrape" />
<Chianti rdf:ID="ChiantiClassico">
<hasBody rdf:resource="#Medium" />
<hasMaker rdf:resource="#McGuinnesso" />
</Chianti>
<Region rdf:ID="ChiantiRegion">
<locatedIn rdf:resource="#ItalianRegion" />
</Region>
<Winery rdf:ID="ClosDeLaPoussie" />
<Sancerre rdf:ID="ClosDeLaPoussieSancerre">
<hasMaker rdf:resource="#ClosDeLaPoussie" />
</Sancerre>
<Winery rdf:ID="ClosDeVougeot" />
<CotesDOr rdf:ID="ClosDeVougeotCotesDOr">
<hasMaker rdf:resource="#ClosDeVougeot" />
</CotesDOr>
<Winery rdf:ID="CongressSprings" />
<Semillon rdf:ID="CongressSpringsSemillon">
<hasMaker rdf:resource="#CongressSprings" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Semillon>
<Winery rdf:ID="Corbans" />
<Riesling rdf:ID="CorbansDryWhiteRiesling">
<locatedIn rdf:resource="#NewZealandRegion" />
<hasMaker rdf:resource="#Corbans" />
<hasSugar rdf:resource="#OffDry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Riesling>
<SauvignonBlanc rdf:ID="CorbansPrivateBinSauvignonBlanc">
<locatedIn rdf:resource="#NewZealandRegion" />
<hasMaker rdf:resource="#Corbans" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</SauvignonBlanc>
<SauvignonBlanc rdf:ID="CorbansSauvignonBlanc">
<locatedIn rdf:resource="#NewZealandRegion" />
<hasMaker rdf:resource="#Corbans" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Medium" />
</SauvignonBlanc>
<Winery rdf:ID="CortonMontrachet" />
<WhiteBurgundy rdf:ID="CortonMontrachetWhiteBurgundy">
<hasMaker rdf:resource="#CortonMontrachet" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</WhiteBurgundy>
<Region rdf:ID="CotesDOrRegion">
<locatedIn rdf:resource="#BourgogneRegion" />
</Region>
<Winery rdf:ID="Cotturi" />
<Zinfandel rdf:ID="CotturiZinfandel">
<locatedIn rdf:resource="#SonomaRegion" />
<hasMaker rdf:resource="#Cotturi" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</Zinfandel>
<Winery rdf:ID="DAnjou" />
<Region rdf:ID="EdnaValleyRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<Winery rdf:ID="Elyse" />
<Zinfandel rdf:ID="ElyseZinfandel">
<locatedIn rdf:resource="#NapaRegion" />
<hasMaker rdf:resource="#Elyse" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Full" />
</Zinfandel>
<Winery rdf:ID="Forman" />
<CabernetSauvignon rdf:ID="FormanCabernetSauvignon">
<locatedIn rdf:resource="#NapaRegion" />
<hasMaker rdf:resource="#Forman" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Medium" />
</CabernetSauvignon>
<Chardonnay rdf:ID="FormanChardonnay">
<locatedIn rdf:resource="#NapaRegion" />
<hasMaker rdf:resource="#Forman" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Full" />
</Chardonnay>
<Winery rdf:ID="Foxen" />
<CheninBlanc rdf:ID="FoxenCheninBlanc">
<locatedIn rdf:resource="#SantaBarbaraRegion" />
<hasMaker rdf:resource="#Foxen" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Full" />
</CheninBlanc>
<WineGrape rdf:ID="GamayGrape" />
<Winery rdf:ID="GaryFarrell" />
<Merlot rdf:ID="GaryFarrellMerlot">
<locatedIn rdf:resource="#SonomaRegion" />
<hasMaker rdf:resource="#GaryFarrell" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Merlot>
<Region rdf:ID="GermanyRegion" />
<Winery rdf:ID="Handley" />
<Winery rdf:ID="KalinCellars" />
<Semillon rdf:ID="KalinCellarsSemillon">
<hasMaker rdf:resource="#KalinCellars" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</Semillon>
<Winery rdf:ID="KathrynKennedy" />
<Meritage rdf:ID="KathrynKennedyLateral">
<hasMaker rdf:resource="#KathrynKennedy" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Delicate" />
<hasBody rdf:resource="#Medium" />
</Meritage>
<Winery rdf:ID="LaneTanner" />
<PinotNoir rdf:ID="LaneTannerPinotNoir">
<locatedIn rdf:resource="#SantaBarbaraRegion" />
<hasMaker rdf:resource="#LaneTanner" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Delicate" />
<hasBody rdf:resource="#Light" />
</PinotNoir>
<Winery rdf:ID="Longridge" />
<Merlot rdf:ID="LongridgeMerlot">
<locatedIn rdf:resource="#NewZealandRegion" />
<hasMaker rdf:resource="#Longridge" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Light" />
</Merlot>
<WineGrape rdf:ID="MalbecGrape" />
<Region rdf:ID="MargauxRegion">
<locatedIn rdf:resource="#MedocRegion" />
</Region>
<Winery rdf:ID="Marietta" />
<CabernetSauvignon rdf:ID="MariettaCabernetSauvignon">
<locatedIn rdf:resource="#SonomaRegion" />
<hasMaker rdf:resource="#Marietta" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</CabernetSauvignon>
<RedTableWine rdf:ID="MariettaOldVinesRed">
<locatedIn rdf:resource="#SonomaRegion" />
<hasMaker rdf:resource="#Marietta" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</RedTableWine>
<PetiteSyrah rdf:ID="MariettaPetiteSyrah">
<locatedIn rdf:resource="#SonomaRegion" />
<hasMaker rdf:resource="#Marietta" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</PetiteSyrah>
<Zinfandel rdf:ID="MariettaZinfandel">
<locatedIn rdf:resource="#SonomaRegion" />
<hasMaker rdf:resource="#Marietta" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Zinfandel>
<Winery rdf:ID="McGuinnesso" />
<Region rdf:ID="MendocinoRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
<adjacentRegion rdf:resource="#SonomaRegion" />
</Region>
<WineGrape rdf:ID="MerlotGrape" />
<Region rdf:ID="MeursaultRegion">
<locatedIn rdf:resource="#BourgogneRegion" />
</Region>
<Winery rdf:ID="MountEdenVineyard" />
<Chardonnay rdf:ID="MountEdenVineyardEdnaValleyChardonnay">
<locatedIn rdf:resource="#EdnaValleyRegion" />
<hasMaker rdf:resource="#MountEdenVineyard" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Chardonnay>
<PinotNoir rdf:ID="MountEdenVineyardEstatePinotNoir">
<locatedIn rdf:resource="#EdnaValleyRegion" />
<hasMaker rdf:resource="#MountEdenVineyard" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</PinotNoir>
<Winery rdf:ID="Mountadam" />
<Chardonnay rdf:ID="MountadamChardonnay">
<locatedIn rdf:resource="#SouthAustraliaRegion" />
<hasMaker rdf:resource="#Mountadam" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</Chardonnay>
<PinotNoir rdf:ID="MountadamPinotNoir">
<locatedIn rdf:resource="#SouthAustraliaRegion" />
<hasMaker rdf:resource="#Mountadam" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</PinotNoir>
<DryRiesling rdf:ID="MountadamRiesling">
<locatedIn rdf:resource="#SouthAustraliaRegion" />
<hasMaker rdf:resource="#Mountadam" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Delicate" />
<hasBody rdf:resource="#Medium" />
</DryRiesling>
<Region rdf:ID="MuscadetRegion">
<locatedIn rdf:resource="#LoireRegion" />
</Region>
<Region rdf:ID="NapaRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<Region rdf:ID="NewZealandRegion" />
<Winery rdf:ID="PageMillWinery" />
<CabernetSauvignon rdf:ID="PageMillWineryCabernetSauvignon">
<locatedIn rdf:resource="#NapaRegion" />
<hasMaker rdf:resource="#PageMillWinery" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</CabernetSauvignon>
<Region rdf:ID="PauillacRegion">
<locatedIn rdf:resource="#MedocRegion" />
</Region>
<Winery rdf:ID="PeterMccoy" />
<Chardonnay rdf:ID="PeterMccoyChardonnay">
<locatedIn rdf:resource="#SonomaRegion" />
<hasMaker rdf:resource="#PeterMccoy" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Chardonnay>
<WineGrape rdf:ID="PetiteSyrahGrape" />
<WineGrape rdf:ID="PetiteVerdotGrape" />
<WineGrape rdf:ID="PinotBlancGrape" />
<WineGrape rdf:ID="PinotNoirGrape" />
<Region rdf:ID="PortugalRegion" />
<Winery rdf:ID="PulignyMontrachet" />
<WhiteBurgundy rdf:ID="PulignyMontrachetWhiteBurgundy">
<hasMaker rdf:resource="#PulignyMontrachet" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</WhiteBurgundy>
<WineGrape rdf:ID="RieslingGrape" />
<Anjou rdf:ID="RoseDAnjou">
<hasMaker rdf:resource="#DAnjou" />
</Anjou>
<Region rdf:ID="SancerreRegion">
<locatedIn rdf:resource="#LoireRegion" />
</Region>
<WineGrape rdf:ID="SangioveseGrape" />
<Region rdf:ID="SantaBarbaraRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<Winery rdf:ID="SantaCruzMountainVineyard" />
<CabernetSauvignon rdf:ID="SantaCruzMountainVineyardCabernetSauvignon">
<locatedIn rdf:resource="#SantaCruzMountainsRegion" />
<hasMaker rdf:resource="#SantaCruzMountainVineyard" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</CabernetSauvignon>
<Region rdf:ID="CentralTexasRegion">
<locatedIn rdf:resource="#TexasRegion" />
</Region>
<Winery rdf:ID="StGenevieve" />
<WhiteWine rdf:ID="StGenevieveTexasWhite">
<locatedIn rdf:resource="#CentralTexasRegion" />
<hasMaker rdf:resource="#StGenevieve" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
</WhiteWine>
<Region rdf:ID="SantaCruzMountainsRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<Winery rdf:ID="SaucelitoCanyon" />
<Zinfandel rdf:ID="SaucelitoCanyonZinfandel">
<locatedIn rdf:resource="#ArroyoGrandeRegion" />
<hasMaker rdf:resource="#SaucelitoCanyon" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Zinfandel>
<Zinfandel rdf:ID="SaucelitoCanyonZinfandel1998">
<locatedIn rdf:resource="#ArroyoGrandeRegion" />
<hasVintageYear rdf:resource="#Year1998" />
<hasMaker rdf:resource="#SaucelitoCanyon" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</Zinfandel>
<Region rdf:ID="SauterneRegion">
<locatedIn rdf:resource="#BordeauxRegion" />
</Region>
<WineGrape rdf:ID="SauvignonBlancGrape" />
<Winery rdf:ID="SchlossRothermel" />
<SweetRiesling rdf:ID="SchlossRothermelTrochenbierenausleseRiesling">
<locatedIn rdf:resource="#GermanyRegion" />
<hasMaker rdf:resource="#SchlossRothermel" />
<hasSugar rdf:resource="#Sweet" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</SweetRiesling>
<Winery rdf:ID="SchlossVolrad" />
<SweetRiesling rdf:ID="SchlossVolradTrochenbierenausleseRiesling">
<locatedIn rdf:resource ="#GermanyRegion" />
<hasMaker rdf:resource="#SchlossVolrad" />
<hasSugar rdf:resource="#Sweet" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Full" />
</SweetRiesling>
<Winery rdf:ID="SeanThackrey" />
<PetiteSyrah rdf:ID="SeanThackreySiriusPetiteSyrah">
<locatedIn rdf:resource="#NapaRegion" />
<hasMaker rdf:resource="#SeanThackrey" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Strong" />
<hasBody rdf:resource="#Full" />
</PetiteSyrah>
<Winery rdf:ID="Selaks" />
<IceWine rdf:ID="SelaksIceWine">
<locatedIn rdf:resource="#NewZealandRegion" />
<hasMaker rdf:resource="#Selaks" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
<hasColor rdf:resource="#White" />
</IceWine>
<SauvignonBlanc rdf:ID="SelaksSauvignonBlanc">
<locatedIn rdf:resource="#NewZealandRegion" />
<hasMaker rdf:resource="#Selaks" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</SauvignonBlanc>
<WineGrape rdf:ID="SemillonGrape" />
<Winery rdf:ID="SevreEtMaine" />
<Muscadet rdf:ID="SevreEtMaineMuscadet">
<hasMaker rdf:resource="#SevreEtMaine" />
</Muscadet>
<Region rdf:ID="SonomaRegion">
<locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<Region rdf:ID="SouthAustraliaRegion">
<locatedIn rdf:resource="#AustralianRegion" />
</Region>
<Region rdf:ID="StEmilionRegion">
<locatedIn rdf:resource="#BordeauxRegion" />
</Region>
<Winery rdf:ID="Stonleigh" />
<SauvignonBlanc rdf:ID="StonleighSauvignonBlanc">
<locatedIn rdf:resource="#NewZealandRegion" />
<hasMaker rdf:resource="#Stonleigh" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Delicate" />
<hasBody rdf:resource="#Medium" />
</SauvignonBlanc>
<Winery rdf:ID="Taylor" />
<Port rdf:ID="TaylorPort">
<hasMaker rdf:resource="#Taylor" />
</Port>
<Region rdf:ID="ToursRegion">
<locatedIn rdf:resource="#LoireRegion" />
</Region>
<Winery rdf:ID="Ventana" />
<CheninBlanc rdf:ID="VentanaCheninBlanc">
<locatedIn rdf:resource="#CentralCoastRegion" />
<hasMaker rdf:resource="#Ventana" />
<hasSugar rdf:resource="#OffDry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</CheninBlanc>
<Winery rdf:ID="WhitehallLane" />
<CabernetFranc rdf:ID="WhitehallLaneCabernetFranc">
<locatedIn rdf:resource="#NapaRegion" />
<hasMaker rdf:resource="#WhitehallLane" />
<hasSugar rdf:resource="#Dry" />
<hasFlavor rdf:resource="#Moderate" />
<hasBody rdf:resource="#Medium" />
</CabernetFranc>
<DessertWine rdf:ID="WhitehallLanePrimavera">
<locatedIn rdf:resource="#NapaRegion" />
<hasSugar rdf:resource="#Sweet" />
<hasFlavor rdf:resource="#Delicate" />
<hasBody rdf:resource="#Light" />
</DessertWine>
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType="Collection">
<vin:Winery rdf:about="#Bancroft" />
<vin:Winery rdf:about="#ChateauChevalBlanc" />
<vin:Winery rdf:about="#ChateauDYchem" />
<vin:Winery rdf:about="#ChateauDeMeursault" />
<vin:Winery rdf:about="#ChateauLafiteRothschild" />
<vin:Winery rdf:about="#ChateauMargauxWinery" />
<vin:Winery rdf:about="#ChateauMorgon" />
<vin:Winery rdf:about="#ClosDeLaPoussie" />
<vin:Winery rdf:about="#ClosDeVougeot" />
<vin:Winery rdf:about="#CongressSprings" />
<vin:Winery rdf:about="#Corbans" />
<vin:Winery rdf:about="#CortonMontrachet" />
<vin:Winery rdf:about="#Cotturi" />
<vin:Winery rdf:about="#DAnjou" />
<vin:Winery rdf:about="#Elyse" />
<vin:Winery rdf:about="#Forman" />
<vin:Winery rdf:about="#Foxen" />
<vin:Winery rdf:about="#GaryFarrell" />
<vin:Winery rdf:about="#KalinCellars" />
<vin:Winery rdf:about="#KathrynKennedy" />
<vin:Winery rdf:about="#LaneTanner" />
<vin:Winery rdf:about="#Longridge" />
<vin:Winery rdf:about="#Marietta" />
<vin:Winery rdf:about="#McGuinnesso" />
<vin:Winery rdf:about="#MountEdenVineyard" />
<vin:Winery rdf:about="#Mountadam" />
<vin:Winery rdf:about="#PageMillWinery" />
<vin:Winery rdf:about="#PeterMccoy" />
<vin:Winery rdf:about="#PulignyMontrachet" />
<vin:Winery rdf:about="#SantaCruzMountainVineyard" />
<vin:Winery rdf:about="#SaucelitoCanyon" />
<vin:Winery rdf:about="#SchlossRothermel" />
<vin:Winery rdf:about="#SchlossVolrad" />
<vin:Winery rdf:about="#SeanThackrey" />
<vin:Winery rdf:about="#Selaks" />
<vin:Winery rdf:about="#SevreEtMaine" />
<vin:Winery rdf:about="#StGenevieve" />
<vin:Winery rdf:about="#Stonleigh" />
<vin:Winery rdf:about="#Taylor" />
<vin:Winery rdf:about="#Ventana" />
<vin:Winery rdf:about="#WhitehallLane" />
</owl:distinctMembers>
</owl:AllDifferent>
</rdf:RDF>