280 likes | 595 Views
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
E N D
Inteligentne Systemy Informacyjne Krzysztof Juszczyszyn krzysztof@pwr.wroc.plwww.ii.pwr.wroc.pl/~juszczyszyn
OWL i ontologie Por. World Wide Web Consortium (www.w3c.org)
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ącykoncepty (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.
Projekt nr SPORZL-2.3A-2-12-030/0047, współfinansowany ze środków Europejskiego Funduszu Społecznego Unii Europejskiej OWL Web Ontology Language = OWL Ontologia: w sztucznej inteligencji (def.) – jawna, formalna specyfikacja konceptualizacji wybranej domeny. ...a potocznie:(poszerzony) słownik, zawierającykoncepty (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.
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 isfemale • 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:Classrdf:about="associateProfessor"> • <owl:disjointWithrdf:resource="#professor"/> • <owl:disjointWithrdf: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> • <ObjectProperty IRI="hasWife"/> • <NamedIndividual IRI="Bill"/> • <NamedIndividual IRI="Mary"/> • </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> <DataProperty IRI="hasAge"/> <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: