aplicações de ontologiastacla/si2/cap09/200-owl-dl-ppdes.pdf · ontologia de viagem considere uma...
TRANSCRIPT
OWL-DL Propriedades
Tópicos Especiais em Ontologias
UTFPR/CPGEI/Prof. Tacla
PROPRIEDADES
Propriedades são relações entre dois indivíduos.
Tipos de propriedades em OWL
Object properties: liga um indivíduos de uma classe domínio a
indivíduos de uma classe imagem.
Datatype properties: liga um indivíduo a um valor definido num
esquema XML (XML Schema Datatype) ou a um LITERAL definido
em RDF
Annotation properties: é característico de OWL. Serve para incluir
metadados sobre classes, indivíduos e propriedades (object and
datatype properties).
OBJECT PROPERTIES
Relaciona indivíduos de uma classe a indivíduos de outra
classe
Pizza
PizzaToppings
hasTopping
Em DL (Description Logic)
hasTopping.PizzaToppings
filler role
Restrição de valor (value restriction ou role restriction)
restringe o escopo do role
OBJECT PROPERTIES: DOMÍNIO E IMAGEM
<owl:ObjectProperty rdf:about="#hasTopping">
<rdfs:domain rdf:resource="#Pizza"/>
<rdfs:range rdf:resource="#PizzaTopping"/>
</owl:ObjectProperty>
classes
DOMÍNIO E IMAGEM
Foi visto que OWL permite associar domínio e imagem
às propriedades
Isto não é visto como restrição – não há verificação de
tipos – mas influencia no raciocínio de tipos,
ou seja, a qual conceito um indivíduo pertence.
DOMÍNIO E IMAGEM
Exemplo de propriedade
animal ehInimigoNaturalDe animal
Nada impede que um indivíduo que instancia o conceito
homem seja inimigo natural de outro homem
Na Abox, faz-se assertivamente:
joao ehInimigoNaturalDe jose
Isto não é visto como erro, o reasoner inferirá que
joao é um indivíduo do conceito animal (além de ser homem)
jose é um indivíduo deo conceito animal (além de ser homem)
Ver exemplos: ExemploAnimalHomem.owl e ExemploHomemLeaoCorsa.owl
DATATYPE PROPERTIES
Relaciona instâncias de uma classe a valores definidos
num esquema XML ou a um literal definido em RDF
Pizza
string
hasName
DATATYPE PROPERTIES
<owl:DatatypeProperty rdf:about="#pizzaName">
<rdfs:domain rdf:resource="#Pizza"/>
<rdfs:range rdf:resource=“&xsd;string"/>
</owl:ObjectProperty>
. xsd é uma abreviatura de uma URI de um XML Schema que define
formatos de dados válidos para arquivos XML (no caso, string).
String é um tipo primitivo
& é o operador de concatenação de strings
TIPOS DE PROPRIEDADES
Inversa
Funcional
Inversa Funcional
Transitiva
Simétrica
Assimétrica
Reflexiva
Irreflexiva
Este tipos são aplicáveis somente a object properties
INVERSA
Pizza
PizzaToppings
hasTopping
isToppingOf
muzzarela
INVERSA
<owl:ObjectProperty rdf:about="#hasTopping">
<rdfs:domain rdf:resource="#Pizza"/>
<rdfs:range rdf:resource="#PizzaTopping"/>
<owl:inverseOf>
<owl:ObjectProperty rdf:ID="isToppingOf"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isToppingOf">
<rdfs:domain rdf:resource="#PizzaTopping"/>
<rdfs:range rdf:resource="#Pizza"/>
<owl:inverseOf rdf:resource="#hasTopping"/>
</owl:ObjectProperty>
rdf:ID é conveniente para referenciar recursos locais – entidades contidas no
próprio documento
rdf:about utilizado para referenciar um recurso com um identificador ou
localização bem-conhecido
Regra: prefira rdf:about e URIs absolutas para identificadores de classes
INVERSA
Exercício: fazer uma ontologia com duas classes
Livro
Autor
Definir uma propriedade temAutor e sua inversa
Solução em ExercLivroAutorInversa.owl
FUNCIONAL
Função de x em y
Uma instância do domínio se relaciona com zero ou
uma instância da imagem
Pizza
Base (massa)
hasBase
Fina e Crocante
Grossa
FUNCIONAL
<owl:FunctionalProperty rdf:about="#hasBase">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
<rdfs:range rdf:resource="#PizzaBase"/>
<rdfs:domain rdf:resource="#Pizza"/>
</owl:FunctionalProperty>
FUNCIONAL
Exercício: na ontologia do Livro e Autor fazer
Criar uma nova classe Editora
Definir uma propriedade funcional de Livro para Editora:
Livro temEditora Editora
Tente associar duas editoras a uma instância de livro
Consegue?
Qual a inferência é feita pelo reasoner?
Solução em ExercLivroAutorInversa.owl
INVERSA FUNCIONAL
Quando a propriedade inversa é funcional
Modificando o exemplo anterior: 1 Pizza tem 1 Base e uma Base só pode estar
associda a uma pizza
Pizza
Base (massa)
hasBase
Fina e Crocante
Grossa
Grossa 2
isBaseOf
INVERSA FUNCIONAL
<owl:FunctionalProperty rdf:about="#hasBase">
<rdfs:domain rdf:resource="#Pizza"/>
<rdfs:range rdf:resource="#PizzaBase"/>
<owl:inverseOf>
<owl:FunctionalProperty rdf:ID="isBaseOf"/>
</owl:inverseOf>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
</owl:FunctionalProperty>
INVERSA FUNCIONAL
<owl:FunctionalProperty rdf:about="#isBaseOf">
<rdfs:domain rdf:resource="#PizzaBase"/>
<rdfs:range rdf:resource="#Pizza"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
<owl:inverseOf rdf:resource="#hasBase"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
</owl:FunctionalProperty>
TRANSITIVA
Somente object properties podem ser transitivas
Pizza
Base (massa)
hasIngredient
Fina e
Crocante
Grossa
Grossa 2
Básicos
Farinha
Água
Ovo
hasIngredient
TRANSITIVA
<owl:ObjectProperty rdf:about="#hasIngredient">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
<owl:inverseOf rdf:resource="#isIngredientOf"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="isIngredientOf">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
<owl:inverseOf>
<owl:ObjectProperty rdf:ID="hasIngredient"/>
</owl:inverseOf>
</owl:ObjectProperty>
SIMÉTRICA
Quando a inversa de uma propriedade é ela mesma.
Ex: é irmão de
Ao declarar que João é irmão de José o reasoner infere
que José é irmão de João
Pessoa
Pessoa
éIrmãoDe
José João
SIMÉTRICA
<owl:SymmetricProperty rdf:about="#ehIrmaoIrmaDe">
<rdfs:domain rdf:resource="#Pessoa"/>
<rdfs:range rdf:resource="#Pessoa"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
<owl:inverseOf rdf:resource="#ehIrmaoIrmaDe"/>
</owl:SymmetricProperty>
REFLEXIVA
Uma propriedade declarada como reflexiva
automaticamente relaciona todo indivíduo com ele
mesmo.
Exemplo
Suponha uma ppde denominada ama (do verbo amar)
Suponha dois indíviduos declarados: joão e maria
Ao executar o reasoner, ele inferirá:
joão ama joão
maria ama maria
IRREFLEXIVA
Uma propriedade declarada como reflexiva NÃO
PERMITE que um objeto se relacione com ele mesmo
Exemplo
Suponha uma ppde denominada paiDe
Suponha que o indivíduo joão é declarado
Não se pode dizer assertivamente que joão é paiDe joão
Se mesmo assim, o usuário fizer esta declaração...
O reasoner dirá que a ontologia é INCONSISTENTE
SUBPROPRIEDADE
Propriedades podem ter especializações.
Exemplo:
Pizza hasIngredients
hasIngredients tem subpropriedades:
hasToppings
hasBase
Qual o significado?
EXERCÍCIO 1
Crie uma ontologia composta pelas classes seguintes:
Carro
Roda
Pneu
Examine as relações de pertinência existente entre
estas classes e crie as propriedades explorando
transitividade e subpropriedade.
Solução em ExercRodaCarroPneu.owl
EXERCÍCIO 2
Ontologia de viagem
Considere uma classe denominada Viagem que significa
“deslocamento de um local a outro”. Uma viagem tem data de
partida, data de chegada, nome da companhia que efetua o trajeto
e um valor de tarifa para ida de uma pessoa.
Identifique as propriedades da classe Viagem e defina novas
classes se necessário.
Para cada propriedade, identifique seu tipo (Object ou Datatype) e
defina propriedades inversas, simétricas, etc. quando possível.
Solução ExercViagemVersao01.owl