Inteligentne Systemy Informacyjne Krzysztof Juszczyszyn krzysztof@pwr.wroc.pl www.ii.pwr.wroc.pl/~juszczyszyn
OWL i ontologie Por. World Wide Web Consortium (www.w3c.org)
Semantic Web – architektura
OWL Ontology Web Language = OWL Ontologia: w sztucznej inteligencji (def.) – jawna, formalna specyfikacja konceptualizacji wybranej domeny. Dział SI poświęcony nie „jak?” ale „co?” ...a potocznie: (poszerzony) słownik, zawierający koncepty (klasy), relacje między nimi, ich instancje, aksjomaty logiczne oraz reguły wnioskowania. Opisy zasobów, usług, podmiotów zdefiniowane w OWL i możliwe do przetwarzania przez autonomicznie działające oprogramowanie.
OWL ... jawna, formalna specyfikacja konceptualizacji wybranej domeny. Web Ontology Language = OWL Ontologia: w sztucznej inteligencji (def.) – jawna, formalna specyfikacja konceptualizacji wybranej domeny. ...a potocznie: (poszerzony) słownik, zawierający koncepty (klasy), relacje między nimi, ich instancje, aksjomaty logiczne oraz reguły wnioskowania. Wszystko zdefiniowane w OWL i możliwe do przetwarzania przez autonomicznie działające oprogramowanie. ... jawna, formalna specyfikacja konceptualizacji wybranej domeny. Projekt nr SPORZL-2.3A-2-12-030/0047, współfinansowany ze środków Europejskiego Funduszu Społecznego Unii Europejskiej
OWL Przy projektowaniu ontologii wykorzystywane są metody kategoryzacji i hierarchizacji. Pewnym pojęciom abstrakcyjnym i grupom obiektów posiadającym wspólne cechy przyporządkowywane są nazwy, tworzone są więc klasy obiektów (kategoryzacja). Tak utworzone klasy są następnie umieszczane w strukturze hierarchicznej. Przy tworzeniu ontologii można użyć różnych języków modelowania. Najczęściej wykorzystywany jest RDF/RDFS lub bardziej wyrafinowane języki wykorzystujące tą technologię np. OWL.
OWL Podstawową jednostką języka OWL jest klasa wraz z jej właściwościami. Może zawierać: instancje klas, instancje właściwości, właściwości danych, właściwości atrybutów. Na podstawie danych zapisanych w języku OWL tworzy się bazę wiedzy, z której można następnie dodatkowo wywnioskować fakty pochodne.
OWL W OWL opisujemy rzeczywistośd za pomocą kategorii Mary is female lub opisu relacji między obiektami John and Mary as married Składniki tych wypowiedzi nazywamy encjami: objects (oznaczamy jako „individuals”) np.: John, Mary categories (oznaczamy jako „classes”) np.: female relations (oznaczamy jako „properties”) np.: married
OWL Główną cechą OWL jest to, że nazwy encji mogą być łączone w wyrażenia za pomocą tzw. konstruktorów. Przykładem mogą być klasy „female” i „professor” mogą zostać połączone w celu opisania klasy kobiet-profesorów. W OWL, konstruktory dla każdego typu jednostki znacznie się różnią. Język wyrażeń dla klas jest bardzo bogaty i wyrafinowany w przeciwieństwie do języka wyrażeń dla właściwości. Różnice te wynikają zarówno z przyczyn historycznych, jak również przyczyn technicznych.
OWL Zaczynamy od wprowadzenia klas, o których mówimy. Można to zrobić w następujący sposób: <ClassAssertion> <Class IRI="Person"/> <NamedIndividual IRI="Mary"/> </ClassAssertion> IRI = Internationalized Resource Identifier
OWL Tworzenie hierarchii klas: <SubClassOf> <Class IRI="Woman"/> <Class IRI="Person"/> </ SubClassOf>
OWL klasa Osoba jest równoznaczna klasie Human. <EquivalentClasses> <Class IRI="Person"/> <Class IRI="Human"/> </EquivalentClasses> Stwierdzenie, że klasy Osoba i Człowiek są równoznaczne oznacza to samo, co stwierdzenie, że Osoba jest podklasą klasy Człowiek, a Człowiek jest podklasą klasy Osoba.
OWL Informacja, że dwie klasy są rozłączne <DisjointClasses> <Class IRI="Woman"/> <Class IRI="Man"/> </DisjointClasses> <owl:Class rdf:about="associateProfessor"> <owl:disjointWith rdf:resource="#professor"/> <owl:disjointWith rdf:resource="#assistantProfessor"/> </owl:Class>
OWL Ontologia może również służyć do specyfikacji jak poszczególne osoby odnoszą się do innych osób ( relacje) <ObjectPropertyAssertion> <ObjectProperty IRI="hasWife"/> <NamedIndividual IRI="John"/> <NamedIndividual IRI="Mary"/> </ObjectPropertyAssertion> <NegativeObjectPropertyAssertion> <NamedIndividual IRI="Bill"/> </NegativeObjectPropertyAssertion>
OWL Rozróżnianie obiektów: <DifferentIndividuals> <NamedIndividual IRI="John"/> <NamedIndividual IRI="Bill"/> </DifferentIndividuals> <SameIndividual> <NamedIndividual IRI="James"/> <NamedIndividual IRI="Jim"/> </SameIndividual>
OWL Przykład właściwości typów danych. Stwierdza on, że John ma 51 lat. <DataPropertyAssertion> <DataProperty IRI="hasAge"/> <NamedIndividual IRI="John"/> <Literal datatypeIRI="http://www.w3.org/2001/XMLSchema#integer"> 51 </Literal> </DataPropertyAssertion>
OWL Dziedzina i zakres mogą być również ustalane dla właściwości typów danych tak jak ma to miejsce dla właściwości obiektów. W tym przypadku jednak, zakres będzie typem danych zamiast klasą. <DataPropertyDomain> <DataProperty IRI="hasAge"/> <Class IRI="Person"/> </DataPropertyDomain> <DataPropertyRange> <Datatype IRI="http://www.w3.org/2001/XMLSchema#nonNe gativeInteger"/> </DataPropertyRange>
OWL Zastrzeżenia zakresu relacji: <owl:Class rdf:about="#firstYearCourse"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#isTaughtBy"/> <owl:allValuesFrom rdf:resource="#Professor"/> //someValues, hasValue </owl:Restriction> </rdfs:subClassOf> </owl:Class>
OWL Własności kardynalne: <owl:Class rdf:about="#course"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#isTaughtBy"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger"> 1 </owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
OWL Unia klas: <owl:Class rdf:ID="peopleAtUni"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#staffMember"/> <owl:Class rdf:about="#student"/> </owl:unionOf> </owl:Class>
OWL Przecięcie klas (+ anonimowa definicja klasy): <owl:Class rdf:ID="facultyCS"> <owl:intersectionOf rdf:parseType="owl:collection"> <owl:Class rdf:about="#faculty"/> <Restriction> <owl:onProperty rdf:resource="#belongsTo"/> <owl:hasValue rdf:resource="#CSDepartment"/> </Restriction> </owl:intersectionOf> </owl:Class>
OWL Klasa jako tryb wyliczeniowy: <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Monday"/> <owl:Thing rdf:about="#Tuesday"/> <owl:Thing rdf:about="#Wednesday"/> <owl:Thing rdf:about="#Thursday"/> <owl:Thing rdf:about="#Friday"/> <owl:Thing rdf:about="#Saturday"/> <owl:Thing rdf:about="#Sunday"/> </owl:oneOf>
OWL Ontologia jako graf / zbiór częściowo uporządkowany:
OWL-S
OWL-S
OWL-S
OWL-S