@prefix xs: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix : <http://org1.example.com/ontologies/PurchaseOrder#> .

  <http://org1.example.com/ontologies/PurchaseOrder#> rdf:type owl:Ontology .

  :OrderRequest rdf:type owl:Class .
  :hasLineItems rdf:type owl:ObjectProperty ;
      rdfs:domain :OrderRequest ;
      rdfs:range :LineItem .
  :LineItem rdf:type owl:Class .
  :hasPart rdf:type owl:ObjectProperty , owl:FunctionalProperty ;
      rdfs:domain :LineItem ;
      rdfs:range :Part .
  :Part rdf:type owl:Class .
  :hasPartCode rdf:type owl:ObjectProperty ;
      rdfs:domain :Part ;
      rdfs:range :PartNum .
  :PartNum rdf:type owl:Class .
  :hasLexicalRespresentation rdf:type  owl:DatatypeProperty , owl:FunctionalProperty ;
      rdfs:domain
              [ rdf:type owl:Class ;
                owl:unionOf (:Name :PartNum :Date)
              ] ;
      rdfs:range xs:string .
  :hasDueDate rdf:type owl:ObjectProperty ;
      rdfs:domain :LineItem ;
      rdfs:range :Date .
  :Date rdf:type owl:Class .
  :hasQuantity rdf:type owl:DatatypeProperty ;
      rdfs:domain :LineItem ;
      rdfs:range xs:float .
  :hasBillingInfo rdf:type owl:DatatypeProperty ;
      rdfs:domain :LineItem ;
      rdfs:range xs:billingInfo .
  :hasCustomer rdf:type owl:ObjectProperty , owl:FunctionalProperty ;
      rdfs:domain :OrderRequest ;
      rdfs:range :Customer .
  :Customer rdf:type owl:Class .
  :hasCustomerName  rdf:type owl:ObjectProperty ;
      rdfs:domain :Customer ;
      rdfs:range :Name .
  :Name rdf:type owl:Class .
