@prefix agg: <http://jena.apache.org/ARQ/function/aggregate#> .
@prefix : <http://ont.enapso.com/dotnetpro#> .
@prefix sail: <http://www.openrdf.org/config/sail#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix geof: <http://www.opengis.net/def/function/geosparql/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix fn: <http://www.w3.org/2005/xpath-functions> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix spif: <http://spinrdf.org/spif#> .
@prefix path: <http://www.ontotext.com/path#> .
@prefix array: <http://www.w3.org/2005/xpath-functions/array> .
@prefix apf: <http://jena.apache.org/ARQ/property#> .
@prefix rep: <http://www.openrdf.org/config/repository#> .
@prefix map: <http://www.w3.org/2005/xpath-functions/map> .
@prefix sr: <http://www.openrdf.org/config/repository/sail#> .
@prefix rdf4j: <http://rdf4j.org/schema/rdf4j#> .
@prefix wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix entest: <http://ont.enapso.com/test#> .
@prefix gn: <http://www.geonames.org/ontology#> .
@prefix afn: <http://jena.apache.org/ARQ/function#> .
@prefix list: <http://jena.apache.org/ARQ/list#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ofn: <http://www.ontotext.com/sparql/functions/> .
@prefix geoext: <http://rdf.useekm.com/ext#> .
@prefix graphdb: <http://www.ontotext.com/config/graphdb#> .
@prefix protons: <http://proton.semanticweb.org/protonsys#> .
@prefix sfn: <http://www.w3.org/ns/sparql#> .
@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
@prefix math: <http://www.w3.org/2005/xpath-functions/math> .
@prefix omgeo: <http://www.ontotext.com/owlim/geo#> .

<http://ont.enapso.com/dotnetpro> a owl:Ontology;
  rdfs:comment "Demo Ontologie für dotnetpro - Semantic Web - Protégé."@de, "Demo Ontology for dotnetpro - Semantic Web - Protégé."@en;
  owl:versionIRI <http://ont.enapso.com/dotnetpro/1.0.0> .

:hasAddress a owl:ObjectProperty;
  rdfs:range :Address;
  rdfs:label "Address"@en, "Adresse"@de .

:Address a owl:Class;
  rdfs:subClassOf _:node319, _:node320, _:node321;
  rdfs:label "Address"@en, "Anschrift"@de .

:hasCustomer a owl:ObjectProperty;
  rdfs:label "Customer"@en, "Kunde"@de .

:hasDeliveryAddress a owl:ObjectProperty;
  rdfs:subPropertyOf :hasAddress;
  rdfs:label "Delivery Address"@en, "Lieferanschrift"@de .

:hasDocumentItem a owl:ObjectProperty;
  rdfs:label "Item"@en, "Position"@de .

:hasInvoiceAddress a owl:ObjectProperty;
  rdfs:subPropertyOf :hasAddress;
  rdfs:label "Invoice Address"@en, "Rechnungsanschrift"@de .

:hasProduct a owl:ObjectProperty;
  rdfs:label "Product"@en, "Produkt"@de .

:CustomerId a owl:DatatypeProperty;
  rdfs:subPropertyOf :Id;
  rdfs:label "Customer Id"@en, "Kunden-Nr."@de .

:Id a owl:DatatypeProperty;
  rdfs:label "Identification Number"@en, "Identifikations-Nr."@de .

:Description a owl:DatatypeProperty;
  rdfs:label "Beschreibung"@de, "Description"@en .

:LongDescription a owl:DatatypeProperty;
  rdfs:subPropertyOf :Description;
  rdfs:label "Langbeschreibung"@de, "Long Description"@en .

:ShortDescription a owl:DatatypeProperty;
  rdfs:subPropertyOf :Description;
  rdfs:label "Kurzbeschreibung"@de, "Short Description"@en .

:SupplierId a owl:DatatypeProperty;
  rdfs:subPropertyOf :Id;
  rdfs:label "Lieferanten-Nr."@de, "Supplier Id"@en .

:amount a owl:DatatypeProperty;
  rdfs:label "Amount"@en, "Anzahl"@de .

:artno a owl:DatatypeProperty;
  rdfs:label "Artikel-Nr."@de, "Product-Code"@en .

:city a owl:DatatypeProperty;
  rdfs:label "City"@en, "Stadt"@de .

:companyName a owl:DatatypeProperty;
  rdfs:subPropertyOf :name;
  rdfs:label "Company Name"@en, "Firmenname"@de .

:name a owl:DatatypeProperty;
  rdfs:label "Name"@de, "Name"@en .

:email a owl:DatatypeProperty;
  rdfs:subPropertyOf owl:topDataProperty;
  rdfs:label "E-Mail"@de, "Email"@en .

:faxNumber a owl:DatatypeProperty;
  rdfs:subPropertyOf :phoneNumber;
  rdfs:label "Fax Number"@en, "Fax-Nummer"@de .

:phoneNumber a owl:DatatypeProperty;
  rdfs:label "Phone No."@en, "Telefon-Nr."@de .

:givenname a owl:DatatypeProperty;
  rdfs:subPropertyOf :name;
  rdfs:label "Givenname"@en, "Vorname"@de .

:mobilePhoneNumber a owl:DatatypeProperty;
  rdfs:subPropertyOf :phoneNumber;
  rdfs:label "Cell Phone"@en, "Mobil-Telefon"@de .

:price a owl:DatatypeProperty;
  rdfs:label "Preis"@de, "Price"@en .

:privateEmail a owl:DatatypeProperty;
  rdfs:subPropertyOf :email;
  rdfs:label "Private E-Mail"@de, "Private Email"@en .

:privatePhoneNumber a owl:DatatypeProperty;
  rdfs:subPropertyOf :phoneNumber;
  rdfs:label "Private Phone No."@en, "Private Telefon-Nr."@de .

:productUrl a owl:DatatypeProperty;
  rdfs:subPropertyOf :url;
  rdfs:domain :ImmaterialProduct .

:url a owl:DatatypeProperty;
  rdfs:label "Uniform Resource Locator"@de, "Uniform Resource Locator"@en .

:ImmaterialProduct a owl:Class;
  rdfs:subClassOf :Product;
  rdfs:label "Download Product"@en, "Download-Artikel"@de .

:purchasePrice a owl:DatatypeProperty;
  rdfs:subPropertyOf :price;
  rdfs:comment "Der netto Einkaufspreis eines Produktes, ohne Berücksichtigung von Steuern und Frachtkosten."@de,
    "The net purchase price of a product, excluding taxes and freight costs."@en;
  rdfs:label "Einkaufspreis"@de, "Purchase Price"@en .

:salesPrice a owl:DatatypeProperty;
  rdfs:subPropertyOf :price;
  rdfs:label "Sales Price"@en, "Verkaufspreis"@de .

:street a owl:DatatypeProperty;
  rdfs:label "Anschrift"@de, "Street"@en .

:surname a owl:DatatypeProperty;
  rdfs:subPropertyOf :name;
  rdfs:label "Nachname"@de, "Surname"@en .

:testDataProp a owl:DatatypeProperty .

:vatRate a owl:DatatypeProperty;
  rdfs:subPropertyOf owl:topDataProperty;
  rdfs:range _:node315;
  rdfs:label "Mehrwertsteuersatz"@de, "VAT Rate"@en .

:weight a owl:DatatypeProperty;
  rdfs:domain :MaterialProduct;
  rdfs:range xsd:float;
  rdfs:label "Gewicht in kg"@de, "Weight in kg"@en .

:MaterialProduct a owl:Class;
  rdfs:subClassOf :Product;
  rdfs:label "Shipped Product"@en, "Versand-Artikel"@de .

:workEmail a owl:DatatypeProperty;
  rdfs:subPropertyOf :email;
  rdfs:label "Business Email"@en, "Geschäftliche E-Mail"@de .

:workPhoneNumber a owl:DatatypeProperty;
  rdfs:subPropertyOf :phoneNumber;
  rdfs:label "Business Phone No."@en, "Geschäftliche Telefon-Nr."@de .

:zipcode a owl:DatatypeProperty;
  rdfs:label "Postleitzahl"@de, "Zipcode"@en .

:Architect a owl:Class;
  rdfs:subClassOf :Role;
  rdfs:label "Architect"@en, "Architekt"@de .

:Role a owl:Class;
  rdfs:comment "Die Verantwortlichkeit(en) oder Tätigkeit(en) einer Person im Unternehmen."@de,
    "The responsibilities or activities of a person in a company."@en;
  rdfs:label "Role"@en, "Rolle"@de .

:BusinessRelation a owl:Class;
  rdfs:label "Business Relation"@en, "Geschäfliche Beziehung"@de .

:Company a owl:Class;
  rdfs:subClassOf _:node322, _:node323;
  rdfs:label "Company"@en, "Firma"@de .

:ContactData a owl:Class;
  rdfs:subClassOf _:node324, _:node325, _:node326, _:node327, _:node328, _:node329;
  rdfs:label "Contact Data"@en, "Kontaktdaten"@de .

:Customer a owl:Class;
  rdfs:subClassOf :BusinessRelation, _:node330, _:node331;
  rdfs:label "Customer"@en, "Kunde"@de .

:Developer a owl:Class;
  rdfs:subClassOf :Role;
  rdfs:label "Developer"@en, "Entwickler"@de .

:Document a owl:Class;
  rdfs:label "Document"@en, "Dokument"@de .

:DocumentItem a owl:Class;
  rdfs:subClassOf _:node332, _:node333, _:node334, _:node335;
  rdfs:label "Position"@de, "Document Item"@en .

:Product a owl:Class;
  rdfs:subClassOf _:node339, _:node340, _:node341, _:node342, _:node343, _:node344,
    _:node345;
  rdfs:label "Product"@en, "Artikel"@de .

:Employee a owl:Class;
  rdfs:subClassOf :Staff;
  rdfs:label "Angestellter"@de, "Employee"@en .

:Staff a owl:Class;
  rdfs:label "Belegschaft"@de, "Staff"@en .

:Freelancer a owl:Class;
  rdfs:subClassOf :Staff;
  rdfs:label "Freelancer"@en, "Freiberufler"@de .

:Invoice a owl:Class;
  rdfs:subClassOf :Document, _:node336;
  rdfs:label "Invoice"@en, "Rechnung"@de .

:Manager a owl:Class;
  rdfs:subClassOf :Role .

:MediaPartner a owl:Class;
  rdfs:subClassOf :BusinessRelation;
  rdfs:label "Media Partner"@en, "Media-Partner"@de .

:Person a owl:Class;
  rdfs:subClassOf _:node337, _:node338;
  rdfs:label "Person"@de, "Person"@en .

:Sales a owl:Class;
  rdfs:subClassOf :Role;
  rdfs:label "Sales"@en, "Vertrieb"@de .

:ShoppingBasket a owl:Class;
  rdfs:subClassOf _:node346;
  rdfs:label "Einkaufskorb"@de, "Shopping Basket"@en .

:Supplier a owl:Class;
  rdfs:subClassOf :BusinessRelation;
  rdfs:label "Lieferant"@de, "Supplier"@en .

:TestClass a owl:Class;
  rdfs:subClassOf _:node347, _:node348, _:node349, _:node350, _:node351;
  rdfs:label "Test Class"@en, "Test-Klasse"@de .

:Tester a owl:Class;
  rdfs:subClassOf :Role;
  rdfs:label "Tester"@de, "Tester"@en .

:Address_1d09d629_2577_4cbd_8186_c57391e63429 a :Address, owl:NamedIndividual;
  rdfs:label "Innotrade GmbH Hauptsitz";
  :city "Herzogenrath";
  :street "An Vieslapp 29";
  :zipcode "52134" .

:Address_cee4a7b4_3a4c_4361_9d80_d6b72adbf2d0 a :Address, owl:NamedIndividual;
  rdfs:label "Ebner Mediagroup GmbH & Co. KG";
  :city "Ulm";
  :street "Karlstraße 3";
  :zipcode "89073" .

:Address_eabaf8ce_0935_4286_9d61_2d9b3f5e8154 a :Address, owl:NamedIndividual;
  rdfs:label "Innotrade GmbH TPH";
  :city "Herzogenrath";
  :street "Kaiserstraße 100";
  :zipcode "52134" .

:Company_6a7379f7_61ca_49c1_b37a_dabd64edd39d a :Company, owl:NamedIndividual;
  rdfs:label "Innotrade";
  :hasAddress :Address_1d09d629_2577_4cbd_8186_c57391e63429, :Address_eabaf8ce_0935_4286_9d61_2d9b3f5e8154;
  :companyName "Innotrade GmbH" .

:Company_de49dbf5_102d_4bb0_b022_f5bd0023713c a :Company, :MediaPartner, owl:NamedIndividual;
  rdfs:label "Ebner";
  :hasAddress :Address_cee4a7b4_3a4c_4361_9d80_d6b72adbf2d0;
  :companyName "Ebner Media Group GmbH & Co. KG" .

:Person_8e7980b9_bec9_4e39_af50_a8f3e6c0d349 a :Person, owl:NamedIndividual;
  rdfs:label "Max Mustermann";
  :givenname "Max";
  :surname "Mustermann" .

:Person_da0b7612_c956_45f9_a974_314d01849659 a :Architect, :Freelancer, :Manager,
    :Person, owl:NamedIndividual;
  rdfs:label "Susanne Musterfrau";
  :givenname "Susanne";
  :surname "Musterfrau" .

:Product_c2318c23_2db8_4c8b_9dbf_cd20970d7723 a :Product, owl:NamedIndividual;
  rdfs:comment "Blueray Player, HD, inklusive Kabel"@de;
  rdfs:label "Blueray Player, HD, including cables"@en;
  :artno "0001";
  :name "Blueray Player";
  :purchasePrice "145.0"^^xsd:float;
  :salesPrice "199.5"^^xsd:float;
  :vatRate "19.0"^^xsd:float;
  :weight "1.3"^^xsd:float .

:Product_c2aafc2e_b820_4eec_a792_ecf56fb4695e a :Product, owl:NamedIndividual;
  rdfs:label "Product Antivirus Suite";
  :artno "0003";
  :name "Antivirus Suite";
  :url "http://www.innotrade.com/downloads#avsuite";
  :purchasePrice "49.9"^^xsd:float;
  :salesPrice "129.5"^^xsd:float;
  :vatRate "19.0"^^xsd:float .

:Product_d256c837_ceb4_4182_bf48_8c27e92a33dc a :Product, owl:NamedIndividual;
  rdfs:label "Product Dictation Suite";
  :artno "0004";
  :name "Dictation Suite";
  :url "http://www.innotrade.com/downloads#opsystem";
  :purchasePrice "175.0"^^xsd:float;
  :salesPrice "249.99"^^xsd:float;
  :vatRate "19.0"^^xsd:float .

:Product_d8373cac_94b7_4bff_92cd_48ce93dcfbf1 a :Product, owl:NamedIndividual;
  rdfs:label "Product Smart TV";
  :artno "0002";
  :name "Smart TV";
  :purchasePrice "350.0"^^xsd:float;
  :salesPrice "499.0"^^xsd:float;
  :vatRate "19.0"^^xsd:float;
  :weight "2.5"^^xsd:float .

_:node315 a rdfs:Datatype;
  owl:oneOf _:node316 .

_:node316 a rdf:List;
  rdf:first "0.0"^^xsd:float;
  rdf:rest _:node317 .

_:node317 a rdf:List;
  rdf:first "19.0"^^xsd:float;
  rdf:rest _:node318 .

_:node318 a rdf:List;
  rdf:first "7.0"^^xsd:float;
  rdf:rest rdf:nil .

_:node319 a owl:Restriction;
  owl:onProperty :city;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node320 a owl:Restriction;
  owl:onProperty :street;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node321 a owl:Restriction;
  owl:onProperty :zipcode;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node322 a owl:Restriction;
  owl:onProperty :hasAddress;
  owl:someValuesFrom :Address .

_:node323 a owl:Restriction;
  owl:onProperty :companyName;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node324 a owl:Restriction;
  owl:onProperty :faxNumber;
  owl:allValuesFrom xsd:string .

_:node325 a owl:Restriction;
  owl:onProperty :mobilePhoneNumber;
  owl:allValuesFrom xsd:string .

_:node326 a owl:Restriction;
  owl:onProperty :privateEmail;
  owl:allValuesFrom xsd:string .

_:node327 a owl:Restriction;
  owl:onProperty :privatePhoneNumber;
  owl:allValuesFrom xsd:string .

_:node328 a owl:Restriction;
  owl:onProperty :workEmail;
  owl:allValuesFrom xsd:string .

_:node329 a owl:Restriction;
  owl:onProperty :workPhoneNumber;
  owl:allValuesFrom xsd:string .

_:node330 a owl:Restriction;
  owl:onProperty :hasDeliveryAddress;
  owl:allValuesFrom :Address .

_:node331 a owl:Restriction;
  owl:onProperty :hasInvoiceAddress;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onClass :Address .

_:node332 a owl:Restriction;
  owl:onProperty :hasProduct;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onClass :Product .

_:node333 a owl:Restriction;
  owl:onProperty :Description;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:float .

_:node334 a owl:Restriction;
  owl:onProperty :amount;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:float .

_:node335 a owl:Restriction;
  owl:onProperty :price;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:float .

_:node336 a owl:Restriction;
  owl:onProperty :hasDocumentItem;
  owl:someValuesFrom :DocumentItem .

_:node337 a owl:Restriction;
  owl:onProperty :givenname;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node338 a owl:Restriction;
  owl:onProperty :surname;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node339 a owl:Restriction;
  owl:onProperty :LongDescription;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node340 a owl:Restriction;
  owl:onProperty :ShortDescription;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node341 a owl:Restriction;
  owl:onProperty :artno;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node342 a owl:Restriction;
  owl:onProperty :name;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node343 a owl:Restriction;
  owl:onProperty :purchasePrice;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:float .

_:node344 a owl:Restriction;
  owl:onProperty :salesPrice;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:float .

_:node345 a owl:Restriction;
  owl:onProperty :vatRate;
  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:float .

_:node346 a owl:Restriction;
  owl:onProperty :hasProduct;
  owl:allValuesFrom :Product .

_:node347 a owl:Restriction;
  owl:onProperty :testDataProp;
  owl:someValuesFrom xsd:string .

_:node348 a owl:Restriction;
  owl:onProperty :testDataProp;
  owl:allValuesFrom xsd:string .

_:node349 a owl:Restriction;
  owl:onProperty :testDataProp;
  owl:onDataRange xsd:string;
  owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger .

_:node350 a owl:Restriction;
  owl:onProperty :testDataProp;
  owl:qualifiedCardinality "3"^^xsd:nonNegativeInteger;
  owl:onDataRange xsd:string .

_:node351 a owl:Restriction;
  owl:onProperty :testDataProp;
  owl:onDataRange xsd:string;
  owl:maxQualifiedCardinality "2"^^xsd:nonNegativeInteger .

_:node352 a owl:Class;
  rdfs:subClassOf :ImmaterialProduct;
  owl:intersectionOf _:node353 .

_:node354 a owl:Restriction;
  owl:onProperty :url;
  owl:someValuesFrom xsd:string .

_:node356 a owl:Class;
  rdfs:subClassOf :MaterialProduct;
  owl:intersectionOf _:node357 .

_:node358 a owl:Restriction;
  owl:onProperty :weight;
  owl:someValuesFrom xsd:float .

_:node353 rdf:first :Product;
  rdf:rest _:node355 .

_:node355 rdf:first _:node354;
  rdf:rest rdf:nil .

_:node357 rdf:first :Product;
  rdf:rest _:node359 .

_:node359 rdf:first _:node358;
  rdf:rest rdf:nil .
