Aula sobre SWRL

Preview:

DESCRIPTION

The Semantic Web Rule Language (SWRL) is a proposed language for the Semantic Web that can be used to express rules as well as logic, combining OWL DL or OWL Lite with a subset of the Rule Markup Language (itself a subset of Datalog).

Citation preview

swrlAdriano Melo

ontologias

definição

Corpo de conhecimento declarativo sobre um dado domínio, assunto ou área do conhecimentoNa prática, hierarquias de conceitos (classes) com suas relações, restrições, axiomas e terminologia associada

http://www.cin.ufpe.br/~in1122/081/slides/tutONTO-mProf.PPT

classes, indivíduos e relações entre objetos

axiomas em OWL 2Regras do domínio em questãoclasses: equivalentes, disjuntas ou subclasses;propriedades: domínio, ser reflexiva, ser funcional, subpropriedades...indivíduos: iguais, diferentes, asserção de classes e propriedades...

http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Axioms

propriedades

funcionalfuncional inversa

transitivasimétrica

anti-simétricareflexiva

anti-reflexiva

funcionalum dado indivíduo só pode se relacionar a apenas um outro indivíduo por esta propriedade

funcional inversasó pode ser relacionado apenas com um outro através da propriedade

transitivase A se relaciona com B e B se relaciona com C, então A se relaciona com C.

simétricase A se relaciona com B, então B se relaciona com A

anti-simétricase A se relaciona com B, então B não se relaciona com A

reflexivauma propriedade é dita reflexiva quando um individuo se relaciona com ele mesmo através dela

anti-reflexivauma propriedade é dita anti-reflexiva quando um individuo não pode se relacionar com ele mesmo através dela

swrl

o que é...Sigla para Semantic Web Rule LanguageBaseada em OWL: as regras são expressas a partir de conceitos de OWL

classespropriedadesindivíduosliterais...

exemplo: hasBrother

Person(?p),hasSibling(?p, ?s),Man(?s) ->

hasBrother(?p, ?s)

exemplo: com instância..

Person(Adriano), hasSibling(Adriano, ?s), Man(?s) ->

hasBrother(Adriano, ?s)

exemplo: com literal...

Person(Adriano),hasSibling(Adriano, ?s),Man(?s),hasAge(?s, 40) ->

has40YearOldBrother(Adriano, ?s)

exemplo: buit-in

hasBrother(?x1,?x2),hasAge(?x1,?age1),hasAge(?x2,?age2),greaterThan(?age2,?age1) ->

hasOlderBrother(?x1,?x2)

exemplo

hasBrother(?x1, ?x2),hasAge(?x1, ?age1),hasAge(?x2, ?age2),subtract(10, ?age2, ?age1) ->

hasDecadeOlderBrother(?x1, ?x2)

the simpsons!

indivíduos

no protégé...

criar nova aba

no protégé...

adicionar uma view “Rules” na aba criada

como criar regras...

definir a propriedade “hasSibling” com uma regra

prática #1

prática #2definir propriedade “hasNephew” usando regras