~~ODT~~ ====== MIW 2009 OWL_Rules ====== **Zrealizował**: [[mmarsokol@gmail.com|Mariusz Sokołowski]] (4RI) :!: 8-o How decision rules can be represented, encoded in [[http://www.w3.org/2004/OWL|OWL]] rules in description logic, description logic programs, swrl? ====== Prezentacja ====== [[pl:miw:2009:miw09_owl_rules_2:prezentacja|Prezentacja wyników projektowych]]. ====== Spotkania ====== [[pl:miw:2009:miw09_owl_rules_2:spotkania|Notatki ze spotkań projektowych]]. ====== Projekt ====== ====== Sprawozdanie ====== ==== Abstract Syntax ==== * źródło: [[http://www.cs.man.ac.uk/~horrocks/DAML/Rules/|http://www.cs.man.ac.uk/~horrocks/DAML/Rules/]] Abstrakcyjna składnia języka ontologii OWL zawiera szereg aksjomatów i faktów. Mogą one być różnego rodzaju np. aksjomaty //subClass// i //equivalentClass//. Zaproponowano rozszerzyć je o aksjomaty reguł. axiom ::= rule Reguła składa się z poprzednika (ciała) i następnika (głowy), który zawiera zbiór atomów (może być pusty). rule ::= 'Implies(' { annotation } antecedent consequent ')' antecedent ::= 'Antecedent(' { atom } ')' consequent ::= 'Consequent(' { atom } ')' Nieformalnie reguły mogą być odczytywane w ten sposób, że jeżeli poprzednik jest prawdą to także następnik musi być prawdziwy. Pusty poprzednik jest uznawany za prawdę, a pusty następnik jest uznawany za fałsz. Niepusty poprzednik lub następnik jest prawdą jeśli zachodzą wszystkie atomy, z których się składa. Jest to traktowane jak koniunkcja. Reguły z następnikiem w postaci koniunkcji mogą być łatwo zamienione (za pomocą transformacji Lloyd-Topor'a) na wiele reguł, każda z niepodzielnym następnikiem (jeden atom). atom ::= description '(' i-object ')' | individualvaluedPropertyID '(' i-object i-object ')' | datavaluedPropertyID '(' i-object d-object ')' | sameAs '(' i-object i-object ')' | differentFrom '(' i-object i-object ')' Atomy mogą być przedstawione w formie //C(x)//, //P(x,y)//, //sameAs(x,y)//, //differentFrom(x,y)//, gdzie //C// jest opisem w OWL, //P// właściwością w OWL, a //x//, //y// są zmiennymi, egzemplarzami klasy zdefiniowanej przez użytkownika (OWL individuals) lub wartościami danych w OWL. W kontekście OWL Lite, opisy w atomach w formie //C(x)// mogą być ograniczone do nazw klas. Nieformalnie, atom //C(x)// jest prawdą gdy //x// jest egzemplarzem opisu //C// danej klasy, atom //P(x,y)// zachodzi, gdy //x// jest w relacji z //y// przez właściwość //P//, atom //sameAs(x,y)// zachodzi gdy //x// jest interpretowane jako ten sam obiekt co //y//, atom //differentFrom(x,y)// zachodzi gdy //x// i //y// są interpretowane jako inne obiekty. Dwie ostatnie formy są wygodne, ale nie zwiększają siły ekspresji języka (tzn. takie (nie)równości mogą być już wyrażone używając kombinacji języka OWL i reguł bez wyraźnych atomów (nie)równości). ==== Direct Model-Theoretic Semantics ==== * źródło: [[http://www.cs.man.ac.uk/~horrocks/DAML/Rules/|http://www.cs.man.ac.uk/~horrocks/DAML/Rules/]] Podstawowym założeniem jest zdefiniowanie wiązań (bindings), rozszerzeń interpretacji OWL, które mapują zmienne do elementów domeny. Reguła jest poprawna, jeżeli każde wiązanie, które powoduje, że poprzednik jest prawdą, także powoduję prawdziwość następnika. Semantyczne warunki związane z aksjomatami i ontologiami są niezmienione. Dla danej interpretacji //I// abstrakcyjnego języka OWL, wiązanie //B(I)// jest interpretacją abstrakcyjnego OWL, która rozszerza //I// tak jak funkcja //S// mapuje odpowiednio //i-zmienne// do elementów //R// i //d-zmienne// do elementów //LVT//. Abstrakcyjną interpretację OWL przedstawiamy w formie: //I = //. Atom jest usatysfakcjonowany interpretacją //I// pod warunkami w poniższej tabeli. ^ Atom ^ Condition on Interpretation ^ | description(x) | S(x) ∈ EC(description) | | property(x,y) | ∈ ER(property) | | sameAs(x,y) | S(x) = S(y) | | differentFrom(x,y) | S(x) ≠ S(y) | Wiązanie //B(I)// satysfakcjonuje poprzednik //A//, jeśli //A// jest puste lub //B(I)// satysfakcjonuje każdy atom w //A//. Wiązanie //B(I)// satysfakcjonuje następnik //C//, jeśli //C// nie jest puste i //B(I)// satysfakcjonuje każdy atom w //C//. Reguła jest satysfakcjonująca przez interpretacje //I//, jeżeli dla każdego wiązania //B// takiego, że //B(I)// satysfakcjonuje poprzednik, to //B(I)// także satysfakcjonuje poprzednik. ==== XML Concrete Syntax ==== * źródło: [[http://www.cs.man.ac.uk/~horrocks/DAML/Rules/|http://www.cs.man.ac.uk/~horrocks/DAML/Rules/]] Istniejący OWL XML można łatwo rozszerzyć, tak aby można było w nim zapisać reguły, dzięki czemu: * dowolna klasa OWL może być użyta jako predykat w regułach; * aksjomaty reguł i ontologii mogą być dowolnie mieszane; * istniejący arkusz stylów XSLT może być łatwo rozszerzona o mapowanie do grafów RDF, które rozszerza wymienną składnię OWL RDF/XML. \\ Główny element składni OWL XML - //Ontology// - rozszerzono o aksjomaty //Rule// i //Variable//. Content: (VersionInfo | PriorVersion | BackwardCompatibleWith | IncompatibleWith | Imports | Annotation | Class[axiom] | EnumeratedClass(D,F) | SubClassOf(D,F) | EquivalentClasses | DisjointClasses(D,F) | DatatypeProperty | ObjectProperty | SubPropertyOf | EquivalentProperties | Individual[axiom] | SameIndividual | DifferentIndividuals | Rule[axiom] | Variable[axiom])* Dodano oczywiście odpowiednią składnię dla elementów //Variable// i //Rule//. Content: ( Annotation* ) Content: ( Annotation*, antecedent, consequent ) Pojawiają się tu elementy //antecedent// i //consequent//, które składają się z listy atmów, traktowanej jako koniunkcja tych atomów. Content: ( atom* ) Content: ( atom* ) //Atom// to grupa elementów, w której skład wchodzą: //classAtom//, //individualPropertyAtom//, //datavaluedPropertyAtom//, //sameIndividualAtom//, //differentIndividualsAtom//. Poniżej znajduje się ich składnia. Content: ( description, iObject ) Content: ( iObject, iObject ) Content: ( iObject, dObject ) Content: ( iObject* ) Content: ( iObject* ) \\ Za pomocą składni OWL XML, rozszerzonej o reguły, można zapisać np. taką regułę, że z własności //hasParent// i //hasBrother// wynika własność //hasUncle//. ==== Mapping to RDF Graphs ==== * źródło: [[http://www.cs.man.ac.uk/~horrocks/DAML/Rules/|http://www.cs.man.ac.uk/~horrocks/DAML/Rules/]] Reguły zawierają zmienne, więc bardzo trudne jest traktowanie ich jako semantyczne rozszerzenie RDF. Aczkolwiek możliwe jest dostarczenie składni RDF dla reguł. Jest tak, ponieważ semantyka wynikowego grafu RDF nie jest rozszerzeniem RDF Semantics. Mapowanie do RDF/XML jest prościej tworzone jako rozszerzenie transformacji XSLT dla składni OWL XML. Poniżej przykład przedstawiający rozszerzenie składni OWL RDF/XML o reguły. ---- ==== Inductive Logic Programming ==== * źródło: [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-314/42.pdf]] Jedną z koncepcji zbudowania reguł ontologii jest ILP, które powstało z połączenia Logic Programming i Concept Learning. Z LP wzięło framework Knowledge Representation, a z CL odziedziczyło mechanizm wnioskowania dla indukcji, z którego najbardziej znaczące jest uogólnianie. W Cencept Learning uogólnianie jest postrzegane jako przeszukiwanie częściowo uporządkowanej przestrzeni indukcyjnych hipotez. Zgodnie z tą wizją indukcyjna hipoteza jest teoretycznie klauzulą, które wymaga strukturyzacji, przeszukiwania i ograniczania przestrzeni klauzul. Przestrzeń hipotez może być przeszukiwana przez znaczenie uściślonych operatorów, które są funkcjami obliczającymi zbiór specjalizacji klauzuli. Specjalizacja jest odpowiednia dla kierunku przeszukiwania w tym podejściu. Kierunek przeszukiwań jest w tym przypadku z góry do dołu, ale operatory mogą być także zdefiniowane jako obliczające uogólnienia z klauzul i wtedy mamy przeszukiwanie z dołu do góry. Indukcja z ILP, uogólnia poszczególne instancje w obecnej podstawie wiedzy, znajdując poprawne hipotezy. Ich prawdziwość zależy od poniższego otoczenia. Obecnie istnieje kilka formalizmów indukcji w logice opartej na klauzulach. Zostały zaproponowane dwa frameworki ILP, które stosują hybrydowy język DL-HCL dla reprezentacji zarówno hipotez jak i wiedzy. * CARIN-ALN - framework skupia się na wyróżniku indukcji i stosuje opcje ILP uczenia z interpretacji. Docelową koncepcją jest jednoskładnikowy predykat Datalogu. Ponadto hipotezy są reprezentowane jako reguły Carin-ALN z literałem Datalogu w następniku. * AL-log - hipotezy są reprezentowane jako ograniczone klauzule Datalogu, które są powiązane, połączone i zgodne z Object Identity. Literał w następniku hipotezy reprezentuje koncepcje zarówno discriminant induction jak i characteristic induction. Obszar relacji dla opcji ILP uczenia z interpretacji został zdefiniowany o podstawy odpowiedzi kwerend w AL-log. Nowe frameworki ILP mogą być zaprojektowane dla bardziej ekspresyjnego hybrydowego języka DL-HCL. Siła ekspresji może być zwiększona bardziej ekspresywnym DL (niż ALC i ALN) lub bardziej ekspresywnym fragmentem HCL (niż Datalog) lub luźniejszą integracją pomiędzy częściami DL i HCL. Bezpieczeństwo i rozstrzygalność tych formalizmów są dwoma pożądanymi właściwościami, które szczególnie docenia się w ILP i aplikacjach sieci semantycznych. ---- ==== Hybrid MKNF ==== * źródło: [[http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2006/MHRS06.pdf]] Logic Programing jest często brane pod uwagę jako sposób na pokonanie kilku wad OWL, takich jak niezdolność do tworzenia ograniczeń czy wykonywania kwerend "closed-world". Jakkolwiek semantyka OWL jest typu "open-world" i wydaje się być niekompatybilna z semantyką "closed-world" LP. Dlatego zaproponowano alternatywny język ontologii bazujący całkowicie na LP. Jest nim hybrydowy MKNF, który integruje OWL z LP. Zalety integracji języka OWL z Logic Programming: * wyższa relacyjna ekspresyjność języka * wieloskładnikowe predykaty * wnioskowanie "closed-world" * więzi integralności * modelowanie wyjątków **Rozszerzenie DL o First-Order Rules** Głównym założeniem jest dodanie aksjomatów postaci H ← B1, . . . ,Bn gdzie H (następnik reguły) i Bi (poprzednik) mogą być postaci C(s) lub R(s, t), przy czym C to koncepcja, R rola, a s i t są termami (np. zmienne czy tzw. 'individuals'). Reguły te są interpretowane przez standardową semantykę pierwszego rzędu jako \\ ∀x : H ∨ ¬B1 ∨ . . . ∨ ¬Bn, gdzie x jest zbiorem dowolnych zmiennych z wszystkich H i Bi. **Rozszerzenie DL o niemonotoniczne właściwości** Rozszerzenie to opiera się na auto-epistemicznej logice, która pozwala wnioskować o przekonaniach. Wprowadzono auto-epistemiczny operator K, który może być stosowany do koncepcji i ról z intuicyjnym znaczeniem - "jest wiadomo, że zajdzie". Auto-epistemiczne wnioskowanie może być połączone z DL na dwa sposoby: * jako operatory w kwerendach - Epistemic Query Language - kwerendy EQL są formułami zbudowanymi na atomach postaci Kq, gdzie q jest kwerendą w pierwszorzędnym DL. * jako operatory w bazie wiedzy - MKNF (Minimal Knowledge and Negation-as-Failure) - umożliwia domyślną negację i modelowanie wyjątków. Przyjęto auto-epistemiczny operator A ('not' z first-order MKNF) o nieformalnym znaczeniu - "może być fałszem". **Hybrid MKNF KBs** Baza wiedzy //K// w hybrid MKNF składa się z bazy wiedzy //O// w rozstrzygalnym DL i ze zbioru //P// reguł MKNF w następującej postaci:\\ KH1 ∨ . . . ∨KHn ← KB1+, . . . ,KBm+, notB1, . . . , notBk Tak samo jak w SWRL, Hi, Bi+, Bi- są atomami pierwszego rzędu postaci P(t1, . . . , tn). Dla P = ≈ lub predykatu występującego w //O// atom jest atomem DL, w innym przypadku nie. Przyjęto, że operator π zamienia dowolną bazę wiedzy //O// w DL na formułę π(//O//) w logice pierwszego rzędu zawierającej równość. Semantyka tego formalizmu została zdefiniowana przez dołączenie //K// w następującym wzorze MKNF, gdzie x jest zbiorem dowolnych zmiennych reguł r: π(//K//) = //K//π(//O//) ∧ (iloczyn logiczny dla r∈P ∀x : r) Semantyka bazy wiedzy hybrydowego MKNF ukazuje dwie ważne własności. Z jednej strony jest w pełni kompatybilna z OWL - wszystkie zapytanie standardowego DL są traktowane w zwykły sposób. Z drugiej strony MKNF jest także w pełni kompatybilny z Logic Programming. Reguły MKNF mogą być również użyte w celu integracji OWL z językami LP zorientowanymi obiektowo takimi jak F-Logic czy WSML. ---- ==== F-Logic rules ==== * źródło: [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-287/paper_8.pdf]] Reguły F-Logic są regułami Logic Programming na atomach F-Logic. **Składnia F-Logic** Alfabet języka F-Logic składa się ze zbioru F symboli funkcji, pełniących rolę konstruktorów obiektów. 'Id-term'y są złożone z konstruktorów i zmiennych i są interpretowane jako elementy świata. Niech o, c, d, d1, ... , dn, p, v, v1, vn będą id-term lub literałami. Zauważmy, że URL jako podklasa klasy string może wskazywać obiekty. Na przykład: “foo:bla#john”:“foo:meta#Person”[“foo:meta#name”!“John”; “foo:meta#livesIn”!!(“geo://de/Berlin”:“geo:meta#City”)]. jest poprawnym fragmentem języka F-Logic. Atom 'is-a' jest wyrażeniem postaci o : c (obiekt o jest składnikiem klasy c), lub c :: d (klasa c jest podklasą klasy d). Reguła F-Logic jest logiczną regułą h ← b na atomach F-Logic, np. asercje 'is-a' i obiektowe atomy. F-Logic program jest zbiorem reguł. Semantyka reguł F-Logic jest zdefiniowana przez struktury Herbrand'a, gdzie świat składa się z podstawowych id-term'ów. H-struktura jest zbiorem podstawowych atomów F-Logic, opisujących obiektowy świat, więc musi spełniać kilka domykających aksjomatów związanych z ogólnymi, zorientowanymi obiektowo właściwościami. **Aksjomaty F-Logic** Zbiór H (może być nieskończony) podstawowych atomów jest H-strukturą jeśli dla dowolnych u, u0, . . . , un i um ze zbioru H zachodzą następujące warunki: * u :: u ∈ H (zwrotność podklas), * jeśli u1 :: u2 ∈ H i u2 :: u3 ∈ H to u1 :: u3 ∈ H (przenośność podklas), analogicznie, jeśli u1 : u2 ∈ H i u2 :: u3 ∈ H to u1 : u3 ∈ H, * jeśli u1 :: u2 ∈ H i u2 :: u1 ∈ H to u1 = u2 ∈ H (niecykliczność podklas), * jeśli dla podstawowych id-term'ów u i u′ (u ≠ u′) takich, że u0[um→u] ∈ H i u0[um→u′] ∈ H, to u = u′ (niepowtarzalność skalarnych właściwości). Dla zbioru M podstawowych atomów, α(M) oznacza domknięcie zbioru M. Dobre programy F-Logic są analizowane z dołu-do-góry przez operator zawierania α, typu Tp, dostarczając minimalne semantyki modelowe. ---- ==== What reasoning support for Ontology and Rules? ==== * źródło: [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-188/sub21.pdf]] Jako, że jest to niemożliwe, żeby mieć równocześnie rozstrzygalność, kompletność i ekspresyjność, wymagane właściwości aplikacji muszą być dokładnie określone, ze względu na możliwości i ograniczenia metody wnioskowania, w celu wybrania jak najlepszego języka. Użyteczne jest wyjaśnienie, które właściwości są przewidywane pod ograniczeniami DLP, kiedy silnik reguł produkcyjnych np. Jess i mechanizm wnioskujący języka DL np. Racer są używane oddzielnie. Jeżeli DLP nie jest wystarczający i jest potrzebna ekspresyjność OWL DL, to dobrym rozwiązaniem jest rozszerzenie OWL DL bezpiecznymi regułami Datalog (¬∨), językiem SWRL lub FOL, zależnie od przewidywanej ekspresywności i obliczeniowych własności. ---- ====== Materiały ====== ==== OWL Rules: ==== * [[http://www.cs.man.ac.uk/~horrocks/DAML/Rules/|A Proposal for an OWL Rules Language]] * [[http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2004/HoPa04a.pdf|I. Horrocks, P. F. Patel-Schneider: A Proposal for an OWL Rules Language]] * [[http://www.w3.org/Submission/SWRL/|SWRL: A Semantic Web Rule Language - Combining OWL and RuleML]] * [[http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2004/TRBH04a.pdf|D. Tsarkov, A. Riazanov, S. Bechhofer, I. Horrocks: Using Vampire to Reason with OWL]] * [[http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2005/HPBT05.pdf|I. Horrocks, P. F. Patel-Schneider, S. Bechhofer, D. Tsarkov: OWL Rules - A Proposal and Prototype Implementation]] * [[http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2006/PSSTH06.pdf|J. Z. Pan, G. Stoilos, G. Stamou, V. Tzouvaras, I. Horrocks: f-SWRL: A Fuzzy Extension of SWRL]] * [[http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2006/MHRS06.pdf|B. Motik, I. Horrocks, R. Rosati, U. Sattler: Can OWL and Logic Programming Live Together Happily Ever After?]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-287/paper_8.pdf|H. Kattenstroth, W. May, F. Schenk: Combining OWL with F-Logic Rules and Defaults]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-188/sub21.pdf|Ch. Golbreich, O. Dameron, O. Bierlaire, B. Gibaud: What reasoning support for Ontology and Rules?]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-188/sub22.pdf|A. Cregan, M. Mochol, D. Vrandecic, S. Bechhofer: Pushing the limits of OWL, Rules and Protege]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-314/42.pdf|F. A. Lisi, F. Esposito: Building Rules on top of Ontologies? Inductive Logic Programming can help!]] * [[http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ|SWRL Language FAQ]] ==== inne: ==== * [[hekate:dl_intro|Description Logics and OWL in the Semantic Web]] * [[http://www.ruleml.org/|RuleML]] * [[http://www.w3.org/TR/owl-xmlsyntax/|OWL Web Ontology Language - XML Presentation Syntax]] * [[http://www.w3.org/TR/owl-semantics/|OWL Web Ontology Language - Semantics and Abstract Syntax ]] * [[http://www.w3.org/TR/owl-features/|OWL Web Ontology Language - Overview]] * [[http://www.w3.org/TR/owl-ref/|OWL Web Ontology Language - Reference]] * [[http://www.w3.org/TR/webont-req/|OWL Web Ontology Language - Use Cases and Requirements]] * [[http://www.w3.org/TR/owl-guide/|OWL Web Ontology Language - Guide]] * [[http://www.w3.org/TR/owl-parsing/|OWL Web Ontology Language - Parsing OWL in RDF/XML]] * [[http://www.w3.org/TR/owl-test/|OWL Web Ontology Language - Test Cases]] * [[http://www.w3.org/2003/08/owlfaq.html|Frequently Asked Questions on W3C's Web Ontology Language (OWL)]] * [[http://www.w3.org/2004/OWL/|Web Ontology Language (OWL)]] * [[http://www.jfsowa.com/ontology/|Knowledge Representation Ontology]] * [[http://www.cs.man.ac.uk/~horrocks/ISWC2003/Tutorial/|S. Bechhofer, I. Horrocks, P. F. Patel-Schneider: Tutorial on OWL]] * [[http://www.inf.unibz.it/~franconi/dl/course/|Description Logics Course]] * [[http://dl.kr.org/|Description Logics]] * [[http://www.inf.unibz.it/~franconi/dl/course/dlhb/dlhb-01.pdf|D. Nardi, R. J. Brachman: An Introduction to Description Logics]] * [[http://protege.stanford.edu/publications/ontology_development/ontology101-noy-mcguinness.html|N. F. Noy, D. L. McGuinness: Ontology Development 101 - A Guide to Creating Your First Ontology]] * [[http://www.co-ode.org/resources/tutorials/ProtegeOWLTutorial.pdf|M. Horridge, H. Knublauch, A. Rector, R. Stevens, Ch. Wroe: A Practical Guide To Building OWL Ontologies Using The Protege-OWL Plugin and CO-ODE Tools Edition 1.0]] * [[http://www.cs.man.ac.uk/~horrocks/Slides/index.html|Ian Horrocks - Slides from Presentations]] * [[http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/Papers/uschold99.pdf|M. Uschold, R. Jasper: A Framework for Understanding and Classifying Ontology Applications]] * [[http://www.cs.man.ac.uk/~horrocks/Publications/download/2003/BaHS03.pdf|F. Baader, I. Horrocks, U. Sattler: Description Logic as Ontology Languages for the Semantic Web]] * [[http://www.cs.man.ac.uk/~horrocks/Publications/download/2003/HoPH03a.pdf|I. Horrocks, P. F. Patel-Schneider, F. van Harmelen: From SHIQ and RDF to OWL - The Making of a Web Ontology Language]] * [[http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/Papers/ekaw-experience-with-owl-rector-et-al-final.pdf|A. Rector, N. Drummond, M. Horridge, J. Rogers, H. Knublauch, R. Stevens, H. Wang, Ch. Wroe: OWL Pizzas - Practical Experience of Teaching OWL-DL - Common Errors & Common Patterns]] * [[http://www.cs.man.ac.uk/~rector/papers/rector-k-cap-untangling-taxonomies-web.pdf|A. L. Rector, Ch. Wroe, J. Rogers, A. Roberts: Untangling Taxonomies and Relationships - Personal and Practical Problems in Loosely Coupled Development of Large Ontologies]] * [[http://www.cs.man.ac.uk/~rector/papers/rector-psb-04-113.pdf|A. Rector: Defaults, Context, and Knowledge - Alternatives for OWL-indexed Knowledge Bases]] * [[http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/Slides/introduction.pdf|I. Horrocks, A. Rector: Introduction to the Semantic Web - presentation]] * [[http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/Slides/ontologies.pdf|I. Horrocks: Ontology Languages for the Semantic Web - presentation]] * [[http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/Slides/pt2-dlintro.pdf|I. Horrocks: An Introduction to Description Logics - presentation]] * [[http://owl.man.ac.uk/2003/why/latest/|OWL Reasoning Examples]] * [[http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/Slides/pt3-dlreasoning.pdf|I. Horrocks: Description Logic Reasoning - presentation]] * [[http://www.cs.man.ac.uk/~horrocks/Teaching/cs646/Slides/pt3a-advanced-algorithms.pdf|I. Horrocks: Reasoning Procedures II (DL) - presentation]] * [[http://www.cs.man.ac.uk/~rector/modules/CS646/Lecture-Handouts/Lect-1-Ontology-and-OWL-2007.pdf|A. Rector: Lecture 1 Building Ontologies 1 - slides]] * [[http://www.cs.man.ac.uk/~rector/modules/CS646/Lecture-Handouts/Lect-2-Ontology-building-2007.pdf|A. Rector: Lecture 2 Building Ontologies & Knowledge Elicitation - slides]] * [[http://www.cs.man.ac.uk/~rector/modules/CS646/Lecture-Handouts/Lect-3-problems-and-patterns-2007.ppt.pdf|A. Rector: Lecture 3 Common problems, Ontology Patterns, Re-representing properties and classes, Parts and Wholes - slides]] * [[http://www.cs.man.ac.uk/~rector/modules/CS646/Lecture-Handouts/Lecture-4-more-patterns.ppt.pdf|A. Rector: Lecture 4 More Pattern and a Problem, Classes as Values, Combining Necessary & Sufficient with Necessary conditions (General Inclusion Axioms - GICs) - slides]] * [[http://protege.stanford.edu/plugins/owl/ontologies.html|Protege OWL - Ontology Editor for the Semantic Web]] * [[http://protege.stanford.edu/plugins/owl/publications/ISWC2004-protege-owl.pdf|H. Knublauch, R. W. Fergerson, N. F. Noy, M. A. Musen: The Protege OWL Plugin - An Open Development Environment for Semantic Web Applications]] * [[http://protege.stanford.edu/plugins/owl/publications/DL2004-protege-owl.pdf|H. Knublauch, M. A. Musen, A. L. Rector: Editing Description Logic Ontologies with the Protege OWL Plugin]] * [[http://protege.stanford.edu/plugins/owl/publications/KRMed2004-protege-owl.pdf|H. Knublauch, O. Dameron, M. A. Musen: Weaving the Biomedical Semantic Web with the Protege OWL Plugin]] * [[http://www.cs.man.ac.uk/~horrocks/Slides/IJCAR-tutorial/Print/p1-introduction.pdf|I. Horrocks, U. Sattler: Description Logics - Basics, Applications, and More]] * [[http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/complete.html|Ian Horrocks's Publications]] * [[http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/|CEUR Workshop Proceedings - publications]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-196/alpsws2006-proceedings.pdf|ICLP'06 Workshop - ALPSWS2006: Applications of Logic Programming in the Semantic Web and Semantic Web Services]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-287/alpsws07P.pdf|ICLP'07 Workshop - ALPSWS2007: Applications of Logic Programming to the Web, Semantic Web and Semantic Web Services]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-434/alpsws2008-procs.pdf|ICLP'08 Workshop - ALPSWS2008: Applications of Logic Programming to the (Semantic) Web and Web Services]] * [[http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-287/invited_1.pdf|C. Baral, E. Pontelli, T. C. Son: ASP - Prolog: Composition and Interoperation of Rules]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-432/owled2008eu_submission_13.pdf|B. Motik, B. Cuenca Grau, I. Horrocks, U. Sattler: Modeling Ontologies Using OWL, Description Graphs, and Rules]] * [[http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-287/paper_9.pdf|W. Drabent, J. Henriksson, J. Małuszyński: HD-rules: a hybrid system interfacing Prolog with DL-reasoners]] * [[http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-314/31.pdf|D. Redavid, L. Iannone, T. Payne: OWL-S Atomic services composition with SWRL rules]]