%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Towards Ontology-based OLAP: Datalog-based Reasoning % % over Multidimensional Ontologies % % (Datalog Prototype) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Author(s): Bernd Neumayr*, Stefan Anderlik*, and Michael Schrefl* % % % % *) Department of Business Informatics - Data & Knowledge Engineering % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Abstract : This file contains an EXTENDED version of the sample % % multidimensional ontology (MDO) discussed in our paper 'Towards % % Ontology-based OLAP: Datalog-based Reasoning over % % Multidimensional Ontologies' submitted to DOLAP'12. It's % % Datalog representation, together with the Datalog % % implementation of the MDO metamodel can be found at % % 'http://www.dke.jku.at/research/projects/semcockpit/dolap12/ % % dolap12.dlv'. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Note: We use 's' for sets of MDO objects without descriptions or for % % sets of references to MDO objects. For example we write % % % % ENTITYs lowerAustria, upperAustria % % % % instead of % % % % ENTITY lowerAustria % % ENTITY upperAustria % % % % to be meaningful and concise. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MDO:FLAT % Information about datatypes not presented in the paper for space % limitations. DATATYPE int VALUEs: 17, 18, 21, 23, 30, 40, 48, 52, 65, 68, 70, 85, 86, 90, 96, 100, 22900, 38000, 40000, 83900, 100000, 191000, 5000000, 8440000 DATARANGE below40000 == (to:40000) DATARANGE between17and30 == (from:17,to:30) DATARANGE between18and23 == (from:18,to:23) DATARANGE between40and100 == (from:40,to:100) DATARANGE above65 == (from:65) DATARANGE above100000 == (from:100000) DATARANGE above5000000 == (from:5000000) ENTITYTYPE country ATTRIBUTE inhabitants -> int ATTRIBUTE area -> int ENTITY austria (inhabitants => 8440000, area => 83900) ENTITYCONCEPT big == (inhabitants => above5000000) ENTITYTYPE city ATTRIBUTE inhabitants -> int ATTRIBUTE area -> int ENTITY linz (inhabitants => 191000, area => 96) ENTITY steyr (inhabitants => 38000) ENTITY amstetten (inhabitants => 22900, area => 52) ENTITYCONCEPT small == (inhabitants => below40000) ENTITYCONCEPT big == (inhabitants => above100000, area => between40and100) ENTITYTYPE doctor ATTRIBUTE age -> int ENTITY drHuber (age => 68) ENTITY drMaier (age => 48) ENTITY drRobert (age => 66) ENTITYCONCEPT old == (age => above65) ENTITYTYPE atc4 ATTRIBUTE code -> int ENTITY A10BA (code => 17) ENTITY A10BB (code => 21) ENTITYCONCEPT oadGroup == (code => between17and30) ENTITYCONCEPT dm2Group == (code => between18and23) ENTITYTYPE drug ENTITYs metformin, phenoformin, tolbutamid ENTITYTYPE district ENTITYs lowerAustria, upperAustria ENTITYTYPE insurant ATTRIBUTE age -> int ENTITY frMair (age => 86) ENTITY hrHubert (age => 90) ENTITYCONCEPT old == (age => above65) ENTITYCONCEPT veryOld == (age => above85) % MDO:HIERARCHICAL HIERARCHY doctor LEVEL countryOfPractice -> country NODE austria LEVEL cityOfPractice -> city PARENT countryOfPractice NODE linz ANCESTOR countryOfPractice:austria NODE steyr ANCESTOR countryOfPractice:austria NODE amstetten ANCESTOR countryOfPractice:austria LEVEL doctor -> doctor PARENT cityOfPractice NODE drHuber ANCESTOR cityOfPractice:steyr NODE drMaier ANCESTOR cityOfPractice:linz NODE drRobert ANCESTOR cityOfPractice:linz HCONCEPT inSmallCity == (cityOfPractice => small) HCONCEPT inSmallCityInAustria ROOT countryOfPractice:austria == (cityOfPractice => small) HCONCEPT inBigCountryAndSmallCity == (countryOfPractice => big, cityOfPractice => small) HCONCEPT atOldAgeAndInSmallCity == (doctor => old, cityOfPractice => small) HIERARCHY drug LEVEL atc4 -> atc4 NODE A10BA NODE A10BB LEVEL drug -> drug PARENT atc4 NODE metformin ANCESTOR atc4:A10BA NODE phenoformin ANCESTOR atc4:A10BA NODE tolbutamid ANCESTOR atc4:A10BB HCONCEPT inDm2Group == (atc4 => dm2Group) HCONCEPT inOadGroup == (atc4 => oadGroup) HIERARCHY insurant LEVEL district -> district NODE lowerAustria NODE upperAustria LEVEL city -> city PARENT district NODE linz ANCESTOR district:upperAustria NODE steyr ANCESTOR district:upperAustria NODE amstetten ANCESTOR district:lowerAustria LEVEL insurant -> insurant PARENT city NODE frMair ANCESTOR city:linz NODE hrHubert ANCESTOR city:amstetten HCONCEPT atOldAge == (insurant => old) HCONCEPT atVeryOldAgeAndInBigCity == (insurant => veryOld, city => big) % MDO:MULTIDIMENSIONAL DIMENSION prescribingDoctor -> doctor DIMENSION treatingDoctor -> doctor DIMENSION drug -> drug DIMENSION patient -> insurant MDSPACE medication -> prescribingDoctor -> treatingDoctor -> drug -> patient GRANULARITY doctor_doctor_drug_patient (prescribingDoctor => doctor, treatingDoctor => doctor, drug => drug, patient => insurant) POINT p1 (prescribingDoctor => drHuber, treatingDoctor => drHuber, drug => tolbuatmid, patient => frMair) POINT p2 (prescribingDoctor => drHuber, treatingDoctor => drMaier, drug => metformin, patient => hrHubert) POINT p6 (prescribingDoctor => drRobert, treatingDoctor => drRobert, drug => tolbutamid, patient => hrHubert) GRANULARITY city_city_atc4_district (prescribingDoctor => cityOfPractice, treatingDoctor => cityOfPractice, drug => atc4, patient => district) POINT p3 (prescribingDoctor => linz, treatingDoctor => steyr, drug => A10BA, patient => upperAustria) POINT p4 (prescribingDoctor => linz, treatingDoctor => linz, drug => A10BB, patient => lowerAustria) POINT p5 (prescribingDoctor => steyr, treatingDoctor => steyr, drug => A10BB, patient => upperAustria) MDBASE drugPrescription GRANULARITY medication:doctor_doctor_drug_patient POINTs p1, p2 MDCONCEPT dm2PrescriptionsForOldPatients == (drug => inDm2Group, patient => atOldAge) MDCONCEPT oadPrescriptionsForVeryOldPatientsInBigCities == (drug => inOadGroup, patient => atVeryOldAgeAndInBigCity) MDCONCEPT dm2PrescriptionsForVeryOldPatientsInBigCities FINEST doctor_doctor_drug_patient COARSEST city_city_atc4_district == (patient => inDm2Group, patient => atVeryOldAgeAndInBigCity)