1 / 59

SWRL : A Semantic Web Rule Language

SWRL : A Semantic Web Rule Language. Комбинация от OWL и RuleML http://www.w3.org/Submission/SWRL/ Разработили: Диян Детелинов Пенко в М22804 Надежда Георгиева Танева М22694. 1.Въведение.

archie
Télécharger la présentation

SWRL : A Semantic Web Rule Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SWRL:A Semantic Web Rule Language Комбинация от OWL и RuleML http://www.w3.org/Submission/SWRL/ Разработили: Диян Детелинов Пенков М22804 Надежда Георгиева Танева М22694

  2. 1.Въведение SWRL представлява предложение на базата на комбинация от OWL DL и OWL Lite подезци на OWL Web. Предложението разширява набора от OWL аксиоми за да включи horn-подобни правила. Като по този начин дава възможност на horn-подобните правила да бъдат комбинирани с базата от знания на OWL. Високото ниво на абстрактен синтаксис е предвидено, защото разширява абстрактния синтаксис на OWL, описан в семантиката и абстракцията на OWL. Предложените правила са под формата на импликация между предпоставка(body) и заключение(head). Смисълът може да се чете така: когато условията, посочени в съдържанието на предпоставката са изпълнени, тогава условията, определени в заключението трябва също да са изпълнени. И предпоставката(body) и заключението(head) се състоят от нула или повече атоми. Една празна предпоставка се третира като тривиално вярна, тогава заключението трябва също да бъде одувлетворено от всяка интерпреация; празно заключение се третира като тривиална лъжа, значи предпоставката не трябва да бъде удовлетворена от коя да е интерпретация. Няколко атома се третират като конкатенация. Правилата с конкатенирани заключения могат лесно да бъдат трансформирани в няколко правила всяко от което с атомарно заключение. Атомите в тези правила могат да бъдат от вида C (Х), P (X, Y), sameAs (X, Y), или differentFrom (X, Y), където C е OWL описание, P е OWLсвойство, и Х , Y са променливи, OWL индивиди или OWL данни.

  3. 2.Абстрактен синтаксис Синтаксисът на SWRL се абстрахира от синтаксиса на OWLи по този начин улеснява достъпа и оценката на езика. Този синтаксис разширява абстрактния синтаксис на OWL. Дори и този абстрактен синтаксис не е особено четим за правила. Затова примерите често ще бъде давани в неформалнен синтаксис. Този неформален синтаксис няма да ни даде точен синтаксис нито съответствие с някой от напълно специфицираните синтаксиси за SWRL. Абстрактният синтаксис се специфицира със значението на версия на разширението на BNF, което емного еднакъво до EBNF нотацията използвана за XML. Терминалите са с кавички а нетерминалите са одебелени и без кавички. Алтернативите са или отделени с | или са в различни представяния. Компонентите които могат да се срещнат поне ведъж са оградени в []. Компонентите които могат да се срещнат неопределен брой пъти (включително и нула) са оградени в {}. Интервалът се игнорира в представянето. Имена в абстрактния синтаксис са RDF URI референции. Тези имена могат да бъдат съкратени в квалифицирани имена, като използвате едни от следните пространства от имена:

  4. ... Значението на всяка конструкция в абстрктния синтаксис е не формално описана когато е представена.

  5. 2.1.Правиала Една OWLонтология в абстрактния синтаксис съдържа поредица от аксиоми и факти. Аксиомите могат да бъдат различни видове, например: подклас аксиоми и еквивалентен клас аксиоми. Предлага се да се разшири това с аксиоми-правила. axiom ::= rule Една аксиома-правило се състой от предпоставка и заключение, всяко от които се състой от множество от атоми (възможно и празно). Аксиома-правило също може да бъде предназначено за URI референция, която може да служи за идентифициране на правилото. rule ::= 'Implies(' [ URIreference ] { annotation } antecedent consequent ')' antecedent ::= 'Antecedent(' { atom } ')' consequent ::= 'Consequent(' { atom } ')’

  6. ... Неформално, правило може да бъде тълкувано така: ако предпоставката е истина тогава заключението трябва също да е истина. Празна предпоставка се третира като тривиална истина и празно заключение се третира като тривиална лъжа. Правила с празни предпоставки могат да бъдат използвани да предотставят безусловни факти, обаче безусловните факти са по добре изложени в OWL например без употребата на конструкции за правила. Не празни предпоставки и заключения са истина ако всички техни съставни атоми са истина, например те се третират като конкатенация на техните атоми. Както споменахме правила с конкатенирани заключения могат лесно да бъдат трансформирани в няколко правила, всяко с атомарно заключение. atom ::= description '(' i-object ')' | dataRange '(' d-object ')‘ | individualvaluedPropertyID '(' i-object i-object ')' | datavaluedPropertyID '(' i-object d-object ')' | sameAs '(' i-object i-object ')' | differentFrom '(' i-object i-object ')' | builtIn '(' builtinID { d-object } ')' builtinID ::= URIreference

  7. ... Атомите могат да бъдат от вида C (Х), P (X, Y), sameAs (X, Y), differentFrom (X, Y) или builtIn(r,x,...), където C е OWL описание или множество от стойности, P е OWLсвойство,r е вградена релация, и Х , Y са променливи, OWL индивиди или OWL данни както е подходящо. В контекста на OWL Liteописанията в атомите от вида C (X) могат да бъдат ограничени до имена на класове. Неофициално атома C (X) е истина ако x е инстанция от описанието на класа или множеството от стоиности C, атома P (X, Y) е истина ако X е свързан с Y чрез свойството P, атома sameAs (X, Y) е истина ако X се интерпретира с същия обект като X, атома differentFrom (X, Y) е истина, ако X и Y са интерпретирани като различни обекти и builtIn (R, X ,...) e истина ако вградената релация R е истина при интерпретацията на аргументите .

  8. ... i-object ::= i-variable | individualID d-object ::= d-variable | dataLiteral Атомите могат да се отнасят към индивиди, литерали данни, променливи индивиди или променливи данни. Променливите се третират като универсално определени с техния обхват ограничен до дадено правило. Обикновенно само променливите които се срещят в предпоставките могат да се срещат в заключенията. Това безопасно условие не огараничава изразителната мощ на езика. i-variable ::= 'I-variable(' URIreference ')' d-variable ::= 'D-variable(' URIreference ')‘

  9. 2.2.Четим синтаксис Докато абстрактния EBNF синтаксис е в съответствие със спецификацията на OWL и е полезен за дефиниране на XML и RDF сериализации,той е твърде многословен и не особенно лесен за четене. Затов нататък ще използваме относително неформален “четим” вид подобен на този използван в много публикации за правилата. В синтаксиса правилото има вида: antecedent ⇒ consequent ,където предпоставките и заключенията са съставени от атоми записани a1 ∧ ... ∧ an. Променливите са означени използвайки стандартната конвенция за префикс с въпросителен знак (e.g., ?x). Използвайки този синтаксис правилото подтвърждава че композицията на свойствата родител и брат означава че свойството чичо ще бъде написано така: parent(?x,?y) ∧ brother(?y,?z) ⇒ uncle(?x,?z) В този синтакси вградените релации които са функционални могат да бъдат написани във функционална нотация например: op:numeric-add(?x,3,?z) може да бъде написно вместо: ?x = op:numeric-add(3,?z)

  10. 3.Пряка семантика модел-теория Тази семантика за SWRL е просто разширение на семантиката на OWL. Главната идея е че ние определяме връзките (разширения на OWL интерпретациите) които съпостявят променливите към елементите на домейна. Правило е удовлетворено от интерпретация ако всяко свързване което удовлетворява предпоставките също удовлетворявя и закалюченията. Сементичните условия отнасящи се до аксиомите и онтологиите са непроменени, например, интерпретация удовлетворява онтология ако удовлетворява всяка аксиома (включително и правилата) и всеки факт в онтологията.

  11. 3.1.Правила при интерпретиране От OWL сементиката и абстрактния синтаксис можем да заключим, че имайки datatype map D, абстрактната OWL интерпретация е нторка от вида: I = <R, EC, ER, L, S, LV> където R е множество от ресурси, LV ⊆ R е множество от литерални стойности, EC е съответствие м/у класове и типове данни към подмножества от R и LV съответно, ER е съответствие м/у свойствата и бинарните връзки на R, L е съответствие м/у типизираните литерали и елементите на LV и S е съответствие м/у отделните имена и елементите на EC. Имайте в предвид че позволяването на datatype map-а да се променя, това позволява различни имплементации на SWRL да имплементират различни вградени релации. Предполага се че, ако имплементацията на SWRL имплементира конкретен dataype, тогава тя имплементира built-insна datatype-a.

  12. ... Като се има в предвид абстрактната OWL интерпретация I, свързването B(Ι) е абстрактна OWL интерпретация която разширява I така че S прави мапинг м/у i-променливи и елементи на EC и L прави мапинг м/у d-променливи и елементи на LV съответно. Атом е удовлетворен от интерпретацията I при условията дадени в таблицата на условията на интерпретацията, където C е OWL DL описание, D е OWL DL множество от стойости, P е OWL DL свойиства с единична стойност, Q е OWL DLdatavalueсвойство, f е вградена релация, x,y са променливи или OWL индивиди, а z е променлива или OWL данна. Interpretation Conditions Table

  13. ... Имайте в предвид, че тази интерпретация на вграденте релациите е твърде толерантна. Не е необходимо за вградена релация да има фиксиран брой аргументи, нито е грешка да използжаш вградена реллация с фиксиран брой аргументи със грешен брй аргументи. Например: builtIn(op:numeric-add ?x 5) е неудовлетворена,а не е снтактична грешка. Свързването B(Ι) удовлетворява предпоставката A ако A е празно или B(I) удовлетворява всеки атом в A. Свързването B(I) удовлетворява заключението C, ако C не е празно и B(I) удовлетворява всеки атом в C.Правило е удовлетворено от интерпретацията I ако за всяко свъзване B такова че B(I) удовлетворява предпоставката то B(I) също удовлетворява и заключението. Иайте в предвид, че анотации на правило нямат семантични заключения и не правят URI референции асоциирани с правила. Товa е различно от ситуацията при OWL където анотациите нямат семантични заключения. Семантичните условия отнасящисе за аксиоми и онтологии са неизменими. По-специално, интерпретация удовлетворява онтология ако удовлетворява всяка аксиома (включително правила) ивсеки факт в онтологията. Онтологията е съвместима ако е удовлетворена от най-малко една интерпретация. Онтология О2 е следствие от онтологията О1 ако всяка интерпретация която удовлетворява О1 удовлетворява и О2.

  14. 4. Примерни правила 1)Проста употреба на тези правила, може да бъде да проверим че комбинацията на свойствата hasParentиhasBrotherпредполагат свойството hasUncle. Неформално това правило може да бъде написано като: hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3) В абстрактния синтаксис правилото щеше да бъде написано като: Implies(Antecedent(hasParent(I-variable(x1) I-variable(x2)) hasBrother(I-variable(x2) I-variable(x3))) Consequent(hasUncle(I-variable(x1) I-variable(x3)))) От това правило ако Mary е родител на John и Bill е брат на Mary тога John има бил за чичо.

  15. ... 2)Дори по-просто правило ще е да подтвърдим че Studentsса Persons, кактоStudent(?x1)⇒Person(?x1). Implies(Antecedent(Student(I-variable(x1))) Consequent(Person(I-variable(x1)))) 3)Често използвана употреба на правилата е да предават стойности на свойства от един индивид към сходен индивид, както в следващия пример който изразява факта че стила на artist обекта е същия като стила на creator: Artist(?x) & artistStyle(?x,?y) & Style(?y) & creator(?z,?x) ⇒ style/period(?z,?y) Implies(Antecedent(Artist(I-variable(x)) artistStyle(I-variable(x) I-variable(y)) Style(I-variable(y)) creator(I-variable(z) I-variable(x))) Consequent(style/period(I-variable(z) I-variable(y))))

  16. 4)Полезно е да се включи OWL описание в правилата вместода се използват именовани класове. Горното правило можеше да бъде увеличено с отделно правило за да предотстави информация за единствеността на стила(имайки впредвид че стиал не е единствен). Artist(?x) & (≤1artistStyle)(?x) & creator(?z,?x) ⇒ (≤1 style/period)(?z) Implies(Antecedent(Artist(I-variable(x)) (restriction(artistStylemaxCardinality(1)))(I-variable(x)) Style(I-variable(y)) creator(I-variable(z) I-variable(x))) Consequent((restriction(style/period maxCardinality(1)))(I-variable(z))))

  17. 5. Окончателен XML синтаксис Окончателният XML синтаксис е комбибация от OWL Web Ontology Language XML Presentation синтаксиса и RuleML XML синтаксиса. Това има редица предимства: • Произволни OWL класове(напр. описания) могат да бъдат използвани като предикати в правила. • Аксиомите на правила и онтологии могат да бъдат свободно смесвани. • Съществуващият XSLT модел (owlxml2rdf.xsl), може лесно да бъде разширен за да предоставя мапинг към RDF графи. • Оперативната съвместимост между OWL и RuleMLе опростена, съществуващите RuleML инструменти могат да бъдат адаптирани към SWRL. XML схема за окончателния SWRL XML синтаксис е swrlx.xsd. Окончателния SWRL XML синтаксис използва namespaces http://www.w3.org/2003/11/swrlx, http://www.w3.org/2003/11/ruleml, http://www.w3.org/2003/05/owl-xml (owlx) и http://www.w3.org/2001/XMLSchema (xsd)

  18. ... Ontology root елемента на OWL XML Presentation синтаксиса е разширен, за да включи "imp" (implication rule) and "var" (variable declaration) Ontologyелемент <swrlx:Ontologyswrlx:name = xsd:anyURI > Content: (owlx:VersionInfo | owlx:PriorVersion | owlx:BackwardCompatibleWith | owlx:IncompatibleWith | owlx:Imports | owlx:Annotation | owlx:Class[axiom] | owlx:EnumeratedClass(D,F) | owlx:SubClassOf(D,F) | owlx:EquivalentClasses | owlx:DisjointClasses(D,F) | owlx:DatatypeProperty | owlx:ObjectProperty | owlx:SubPropertyOf | owlx:EquivalentProperties | owlx:Individual[axiom] | owlx:SameIndividual | owlx:DifferentIndividuals | ruleml:imp[axiom] | ruleml:var[axiom])* </swrlx:Ontology> Атрибут: swrlx:name – отнася се за името на тази онтология, което е главният URI на този елемент. Variable (var) аксиомите са формулировки за променливите, посочвайки че даденият стринг трябва да бъде използван като променлива. Елемент ruleml:var[axiom] <ruleml:var>xsd:string</ruleml:var> Родител: swrlx:Ontology Var аксиомите просто определят съществуването на променлива. Това е взето от RuleMLnamespace. Напр. Пример 5-1 <ruleml:var>x1</ruleml:var>

  19. ... Rule аксиоми(imp елементи) са подобни на SubClassOf аксиоми. Те са взети от RuleML namespace. Rule аксиомите могат да бъдат прочетени като логическа импликация между предпоставката и заключението. Като SubClassOfаксиомите, правилата могат да включват анотации. Rule аксиомите могат незадължително да бъдат именовани. Елемент ruleml:imp[axiom] <ruleml:imp> Content: ( _rlab?, owlx:Annotation*, _body, _head ) </ruleml:imp> Parents: swrlx:Ontology Забележка: Този елемент позволява да се каже, че всяко свързване, което удовлетворява тялото на правилото, трябва да удовлетворява и заключението. Незадължително Rule аксиоми могат да бъдат именовани, използвайки URI. Елементruleml:_rlab <ruleml:_rlabruleml:href = xsd:anyURI (required) > Content: ( ) </ruleml:_rlab> Parents: ruleml:imp И _body и_head са списъци от атоми и се четат като конюнкция от атоми.

  20. ... Елемент ruleml:_body <ruleml:_body> Content: ( swrlx:atom* ) </ruleml:_body> Parents: ruleml:imp Елемент ruleml:_head <ruleml:_head> Content: ( swrlx:atom* ) </ruleml:_head> Parents: ruleml:imp Атомите могат да бъдат формирани от унарни предикати (класове), бинарни предикати(с-ва), равенства и различия Model group swrlx:atom Content: (swrlx:classAtom | swrlx:datarangeAtom | swrlx:individualPropertyAtom | swrlx:datavaluedPropertyAtom | swrlx:sameIndividualAtom | swrlx:differentIndividualsAtom | swrlx:builtinAtom) Parents: ruleml:_body, ruleml:_head

  21. ... Клас атомите се състоят от описание и individual name или variable name. Елемент swrlx:classAtom <swrlx:classAtom> Content: ( owlx:description, swrlx:iObject ) </swrlx:classAtom> Parents: swrlx:atom Описанието в клас атом може да бъде клас име, или може да бъде комплексно описание използвайки булеви комбинации, рестрикции и т.н. Например:

  22. ... Пример 5-2 <swrlx:classAtom> <owlx:Classowlx:name="Person" /> <ruleml:var>x1</ruleml:var> </swrlx:classAtom> <swrlx:classAtom> <owlx:IntersectionOf> <owlx:Classowlx:name="Person" /> <owlx:ObjectRestrictionowlx:property="hasParent"> <owlx:someValuesFromowlx:class="Physician" /> </owlx:ObjectRestriction> </owlx:IntersectionOf> <ruleml:var>x2</ruleml:var> </swrlx:classAtom> Datarange атомите се състоят от м-во с-ти и име на литерал или променлива. Елемент swrlx:datarangeAtom <swrlx:datarangeAtom> Content: ( owlx:datarange, swrlx:dObject ) </swrlx:datarangeAtom> Parents: swrlx:atom

  23. ... Описанието в datarangе атом може да бъде datatype ID или м-во от литерали. Например: Пример 5-3 <swrlx:datarangeAtom> <owlx:Datatypeowlx:name="&xsd;int" /> <ruleml:var>x1</ruleml:var> </swrlx:datarangeAtom> <swrlx:datarangeAtom> <owlx:OneOf> <owlx:DataValueowlx:datatype="&xsd;int">5</owlx:DataValue> <owlx:DataValueowlx:datatype="&xsd;int">10</owlx:DataValue> </owlx:OneOf> <ruleml:var>x2</ruleml:var> </swrlx:datarangeAtom>

  24. ... Property атомите се състоят от property име и два елемента, които могат да бъдат individual names, variable names или data values. Елемент swrlx:individualPropertyAtom <swrlx:individualPropertyAtomswrlx:property = xsd:anyURI {required} > Content: ( swrlx:iObject, swrlx:iObject ) </swrlx:individualPropertyAtom> Атрибут: swrlx:property – референция към individual property name Parents: swrlx:atom

  25. ... Елемент swrlx:datavaluedPropertyAtom <swrlx:datavaluedPropertyAtomswrlx:property = xsd:anyURI {required} > Content: ( swrlx:iObject, swrlx:dObject ) </swrlx:datavaluedPropertyAtom> Атриут: swrlx:property – референция към datavalued property name Parents: swrlx:atom Пример 5-4 <swrlx:individualPropertyAtomswrlx:property="hasParent"> <ruleml:var>x1</ruleml:var> <owlx:Individualowlx:name="John" /> </swrlx:individualPropertyAtom> <swrlx:datavaluedPropertyAtomswrlx:property="grade"> <ruleml:var>x1</ruleml:var> <owlx:DataValueowlx:datatype="&xsd;int">4</owlx:DataValue> </swrlx:datavaluedPropertyAtom>

  26. ... Елемент swrlx:sameIndividualAtom <swrlx:sameIndividualAtom> Content: ( swrlx:iObject* ) </swrlx:sameIndividualAtom> Parents: swrlx:atom Елемент swrlx:differentIndividualsAtom <swrlx:differentIndividualsAtom> Content: ( swrlx:iObject* ) </swrlx:differentIndividualsAtom> Parents: swrlx:atom Имайте предвид, че сходството(различието) може да бъде потвърдено между произволна комбинация от variable names и individual names. Например: Пример 5-5 <swrlx:sameIndividualAtom> <ruleml:var>x1</ruleml:var> <ruleml:var>x2</ruleml:var> <owlx:Individualowlx:name="Clinton" /> <owlx:Individualowlx:name="Bill_Clinton" /> </swrlx:sameIndividualAtom>

  27. ... Вградените атоми предоставят интерфейс към built-ins. Елемент swrlx:builtinAtom <swrlx:builtinAtom swrlx:builtin = xsd:anyURI{required} > Content: ( swrlx:dObject* ) </swrlx:builtinAtom> Атрибут: swrlx:builtin – референция към built-in Parents: swrlx:atom

  28. ... Model group swrlx:iObject Content: ( owlx:Individual[ID] | ruleml:var[ID] ) Parents: swrlx:classAtom, swrlx:individualPropertyAtom, swrlx:sameIndividualAtom, swrlx:differentIndividualsAtom Model group swrlx:dObject Content: ( owlx:DataValue | ruleml:var[ID] ) Parents: swrlx:datavaluedPropertyAtom Елемент ruleml:var[ID] <ruleml:var>xsd:string</ruleml:var> Parents: swrlx:iObject, swrlx:dObject

  29. 5.1. Примери за правила Можем да използваме SWRL, за да потвърдим, че комбинацията от от с-вата hasParentи hasBrother следва с-вото hasUncle. Пример 5.1-1 <ruleml:imp> <ruleml:_rlabruleml:href="#example1"/> <ruleml:_body> <swrlx:individualPropertyAtomswrlx:property="hasParent"> <ruleml:var>x1</ruleml:var> <ruleml:var>x2</ruleml:var> </swrlx:individualPropertyAtom> <swrlx:individualPropertyAtomswrlx:property="hasBrother"> <ruleml:var>x2</ruleml:var> <ruleml:var>x3</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_body> <ruleml:_head> <swrlx:individualPropertyAtomswrlx:property="hasUncle"> <ruleml:var>x1</ruleml:var> <ruleml:var>x3</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_head> </ruleml:imp>

  30. Пример 5.1-2 Алтернативна формулировка на правилото от оредния пример, може да бъде да проверим, че ако x1 hasParent x2, x2 hasSibling x3, и x3 hasSex male, тогава x1 hasUncle x3: <ruleml:imp> <ruleml:_rlabruleml:href="#example2"/> <ruleml:_body> <swrlx:individualPropertyAtomswrlx:property="hasParent"> <ruleml:var>x1</ruleml:var> <ruleml:var>x2</ruleml:var> </swrlx:individualPropertyAtom> <swrlx:individualPropertyAtomswrlx:property="hasSibling"> <ruleml:var>x2</ruleml:var> <ruleml:var>x3</ruleml:var> </swrlx:individualPropertyAtom> <swrlx:individualPropertyAtomswrlx:property="hasSex"> <ruleml:var>x3</ruleml:var> <owlx:Individualowlx:name="#male" /> </swrlx:individualPropertyAtom> </ruleml:_body> <ruleml:_head> <swrlx:individualPropertyAtomswrlx:property="hasUncle"> <ruleml:var>x1</ruleml:var <ruleml:var>x3</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_head> </ruleml:imp>

  31. Пример 5.1-3 Следното правило описва факта, че знаейки AAT стила на определен ULAN артист (напр. van Gogh е художник-импресионист), можем да получим стила на art обякта(описан с VRA element "style/period")от с-та на създателя на art обекта. (представен с VRA елемента "creator", подсвойство на dc:creator): <ruleml:imp> <ruleml:_body> <swrlx:classAtom> <owlx:Classowlx:name="&ulan;Artist" /> <ruleml:var>x</ruleml:var> </swrlx:classAtom> <swrlx:classAtom> <owlx:Classowlx:name="&aat;Style" /> <ruleml:var>y</ruleml:var> </swrlx:classAtom> <swrlx:individualPropertyAtomswrlx:property="&aatulan;artistStyle"> <ruleml:var>x</ruleml:var> <ruleml:var>y</ruleml:var> </swrlx:individualPropertyAtom> <swrlx:individualPropertyAtomswrlx:property="&vra;creator"> <ruleml:var>x</ruleml:var> <ruleml:var>z</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_body> <ruleml:_head> <swrlx:individualPropertyAtomswrlx:property="&vra;style/period"> <ruleml:var>z</ruleml:var> <ruleml:var>y</ruleml:var> </swrlx:individualPropertyAtom </ruleml:_head> </ruleml:imp>

  32. 6. Окончателен RDF синтаксис В този раздел ще представим окончателния RDF синтаксис за правилата. RDF схемата за SWRL е swrl.rdf. OWL ontology за SWRL е swrl.owl. Всяко от тях предоставя само частично описание на синтаксиса за SWRL. OWL онологията е по-пълна от RDF схемата. Преминаването от окончателния XML синтаксис към RDF/XML е постигнато чрез разширяване на XSLT трансформациятаза OWL XML Presentation синтакиса.

  33. 6.1 Примери за правила в Окончателения RDF синтаксис Примерите илюстрират удобното разшиение за правила на OWL RDF/XML синтаксиса. Първият пример е повторение на примера 5.1-2 използвайки RDF/XML синтаксис. Пимер 6.1-1 <swrl:Variablerdf:ID="x1"/> <swrl:Variablerdf:ID="x2"/> <swrl:Variablerdf:ID="x3"/> <ruleml:Imp> <ruleml:bodyrdf:parseType="Collection"> <swrl:IndividualPropertyAtom> <swrl:propertyPredicaterdf:resource="&eg;hasParent"/> <swrl:argument1 rdf:resource="#x1" /> <swrl:argument2 rdf:resource="#x2" /> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicaterdf:resource="&eg;hasSibling"/> <swrl:argument1 rdf:resource="#x2" /> <swrl:argument2 rdf:resource="#x3" /> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicaterdf:resource="&eg;hasSex"/> <swrl:argument1 rdf:resource="#x3" /> <swrl:argument2 rdf:resource="#male" /> </swrl:IndividualPropertyAtom> </ruleml:body> <ruleml:headrdf:parseType="Collection"> <swrl:IndividualPropertyAtom> <swrl:propertyPredicaterdf:resource="&eg;hasUncle"/> <swrl:argument1 rdf:resource="#x1" /> <swrl:argument2 rdf:resource="#x3" /> </swrl:IndividualPropertyAtom> </ruleml:head> </ruleml:Imp>

  34. Пример 6.1-2 Този пример е повторение на примера 5.1-3 използвайки RDF/XML синтаксис. <swrl:Variablerdf:ID="x"/> <swrl:Variablerdf:ID="y"/> <swrl:Variablerdf:ID="z"/> <ruleml:Imp> <ruleml:bodyrdf:parseType="Collection"> <swrl:ClassAtom> <swrl:classPredicaterdf:resource="&ulan;Artist"/> <swrl:argument1 rdf:resource="#x" /> </swrl:ClassAtom> <swrl:ClassAtom> <swrl:classPredicaterdf:resource="&aat;Style"/> <swrl:argument1 rdf:resource="#y" /> </swrl:ClassAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicaterdf:resource="&aatulan;artistStyle"/> <swrl:argument1 rdf:resource="#x" /> <swrl:argument2 rdf:resource="#y" /> </swrl:IndividualPropertyAtom> <swrl:IndividualPropertyAtom> <swrl:propertyPredicaterdf:resource="&vra;creator"/> <swrl:argument1 rdf:resource="#x" /> <swrl:argument2 rdf:resource="#z" /> </swrl:IndividualPropertyAtom> </ruleml:body> <ruleml:headrdf:parseType="Collection"> <swrl:IndividualPropertyAtom> <swrl:propertyPredicaterdf:resource="&vra;style/period"/> <swrl:argument1 rdf:resource="#z" /> <swrl:argument2 rdf:resource="#y" /> </swrl:IndividualPropertyAtom> </ruleml:head> </ruleml:Imp>

  35. 7. Built-Ins Множеството от built-ins за SWRL е мотивирано от модулен подход, който ще позволи допълнителни разширения в бъдещите версии в рамките на (йерархична) таксономия. В същото време, това ще осигури гъвкавост за различни реализации, да изберат модули, които да бъдат подържани с всяка версия на SWRL. Подхода на SWRL за built-ins също се основава на повторната употреба на съществуващи built-ins в XQuery и Xpath. SWRL built-ins се използват в builtinатоми. Например swrlx:builtinAtomидентифицира built-in използвайки swrlx:builtinатрибут и изброява неговите атоми като поделементи. SWRL built-ins са идентифицирани използвайки http://www.w3.org/2003/11/swrlb namespace.

  36. 7.1. Built-Ins за сравнения • swrlb:equal (from XQueryop:numeric-equal, op:compare, op:boolean-equalop:yearMonthDuration-equal, op:dayTimeDuration-equal, op:dateTime-equal, op:date-equal, op:time-equal, op:gYearMonth-equal, op:gYear-equal, op:gMonthDay-equal, op:gMonth-equal, op:gDay-equal, op:anyURI-equal) Удовлетворена, ако 1-я и 2-я аргумент са еднакви. • swrlb:notEqual (from swrlb:equal) Обратна на swrlb:equal. • swrlb:lessThan (from XQueryop:numeric-less-than, op:compare, op:yearMonthDuration-less-than, op:dayTimeDuration-less-than, op:dateTime-less-than, op:date-less-than, op:time-less-than) Удовлетворена, ако ако 1-я и 2-я аргумент са от един тип и 1-я е по-малък от 2-я аргумент според наредбата на типа, ако има определена за типа. Ф-ята за наредба за типа на нетипизираните литерали е частична наредба определена като стрингова наредба, когато language tags са еднакви и несравними в противен случай.

  37. ... • swrlb:lessThanOrEqual (from swrlb:lessThan, swrlb:equal) Или по-малко( swrlb:lessThan), или равно(swrlb:equal). • swrlb:greaterThan (from XQueryop:numeric-greater-than, op:compare, op:yearMonthDuration-greater-than, op:dayTimeDuration-greater-than, op:dateTime-greater-than, op:date-greater-than, op:time-greater-than) Подобно на swrlb:lessThan. • swrlb:greaterThanOrEqual (from swrlb:greaterThan, swrlb:equal) Подобно на swrlb:lessThanOrEqual.

  38. 7.2. Math Built-Ins Следните built-ins са определени за различни числови типове. За да е удовлетворена релацията, всички аргументи трябжа да са от един и същи числов тип, за който релацията е определена. • swrlb:add (from XQueryop:numeric-add) Удовлетворена, ако първият аргумент е еднакъв с аритметичната сума на втория аргумент с останалите агументи. • swrlb:subtract (from XQueryop:numeric-subtract) Удовлетворена, ако първият аргумент е еднакъв с аритметичната разлика на втория аргумент с останалите агументи. • swrlb:multiply (from XQueryop:numeric-multiply) Удовлетворена, ако първият аргумент е еднакъв с аритметичното умножение на втория аргумент с останалите агументи. • swrlb:divide (from XQueryop:numeric-divide) Удовлетворена, ако първият аргумент е еднакъв с аритметичното делене на втория аргумент с останалите агументи.

  39. ... • swrlb:integerDivide (from XQueryop:numeric-integer-divide) Удовлетворена, ако първият аргумент e частно на 2-я аргумент с 3-я аргумент . Ако числителя не е точно разделен от делителя, тогава частното e xsd:integerс-та получена при игнориране на остатъка, който се получава при деленето(това е без закръгляне). • swrlb:mod (from XQueryop:numeric-mod) Удовлетворена, ако първият аргумент представя остатъка получен при деленето на 2-я аргумент (делимо) с 3-я аргумент (делител).Операциятаа MOD b за операнди които са xsd:integerили xsd:decimalили типове произлезли от тях извежда резултата като (a idiv b)*b+(a mod b) което е еквивалентно на аи големината на резултата e винаги по-малка от големината на b. Това тъждество е изпълнено дори при специфични операции, когато делимото e най-голямото отрицателно число от неговия тип и делителя е -1(остатъка е 0).От това правило следва, че знака на резултата е знака на делимото. • swrlb:pow Удовлетворена, ако първият аргумент e равен на 2-я аргумент повдигнат на степен 3-я аргумент.

  40. ... • swrlb:unaryPlus (from XQueryop:numeric-unary-plus) Удовлетворена, ако първият аргумент е еднакъв с втория аргумент без промяна на знака. • swrlb:unaryMinus (from XQueryop:numeric-unary-minus) Удовлетворена, ако първият аргумент е еднакъв с втория аргумент с обърнат знак. • swrlb:abs (from XQueryfn:abs) Удовлетворена, ако първият аргумент е абсолютната с-т на втория аргумент. • swrlb:ceiling (from XQueryfn:ceiling) Удовлетворена, ако първият аргумент е аргумент е най-малкото цяло число, което е по-голямо или равно от втория аргумент. • swrlb:floor (from XQueryfn:floor) Удовлетворена, ако първият аргумент е най-голямото цяло число, което е по-малко или равно от втория аргумент.

  41. ... • swrlb:round (from XQueryfn:round) Удовлетворена, ако първият аргумент е еднакъв с най-близкото цяло число до втроя аргумент. • swrlb:roundHalfToEven (from XQueryfn:round-half-to-even) Удовлетворена, ако първият аргумент е еднакъв с втория закръглен до дадена точност. Ако частта след десетичната запетая е точно половината, резултата е число, където последната значеща цифра е четна. • swrlb:sin Удовлетворена, ако първият аргумент е еднакъв с синуса в радиани на втрория аргумент. • swrlb:cos Удовлетворена, ако първият аргумент е еднакъв с косинуса в радиани на втрория аргумент. • swrlb:tan Удовлетворена, ако първият аргумент е еднакъв с тангенса в радиани на втрория аргумент.

  42. 7.3. Built-Ins за булеви стойности • swrlb:booleanNot (from XQuery fn:not) Удовлетворена, ако първият аргумент е истина и втория е лъжа, или обратното.

  43. 7.4. Built-Ins за стрингове Следните built-ins са определени за стрингове. • swrlb:stringEqualIgnoreCase Удовлетворена, ако първият аргумент еднакъв с вторият(малки/главни букви се игнорират) • swrlb:stringConcat (from XQueryfn:concat) Удовлетворена, ако първият аргумент е равен на стринга получен от конкатенацията на 2-я аргумент с останалите. • swrlb:substring (from XQueryfn:substring) Удовлетворена, ако първият аргумент е равен на подстринга с незадължителна дължина 4-я аргумент, започвайки от отместването, което е 3-я аргумент в стринга, който е 2-я аргумент. • swrlb:stringLength (from XQueryfn:string-length) Удовлетворена, ако първият аргумент е равен на дължината на 2-я арг.

  44. ... • swrlb:normalizeSpace (from XQueryfn:normalize-space) Удовлетворена, ако първият аргумент е равен на 2-я аргумент без whitespacе. • swrlb:upperCase (from XQueryfn:upper-case) Удовлетворена, ако първият аргумент е равен на upper-cased с-та на 2-я • swrlb:lowerCase (from XQueryfn:lower-case) Удовлетворена, ако първият аргумент е равен на lower-cased с-та на 2-я

  45. ... • swrlb:translate (from XQueryfn:translate) Удовлетворена, ако първият аргумент е равен на 2-я аргумент, в който срещащите се занаци в 3-я арг. са заменен с знака на съответната позиция в стринга на 4-я арг. • swrlb:contains (from XQueryfn:contains) Удовлетворена, ако първият аргумент съдържа 2-я аргумент (case sensitive). • swrlb:containsIgnoreCase Удовлетворена, ако първият аргумент съдържа 2-я аргумент (case ignored).

  46. ... • swrlb:startsWith (from XQueryfn:starts-with) Удовлетворена, ако първият аргумент започва с 2-я аргумент . • swrlb:endsWith (from XQueryfn:ends-with) Удовлетворена, ако първият аргумент завършва с 2-я аргумент . • swrlb:substringBefore (from XQueryfn:substring-before) Удовлетворена, ако първият аргумент е знаците от 2-я аргумент, които предхождат знаците от третия аргумент . • swrlb:substringAfter (from XQueryfn:substring-after) Удовлетворена, ако първият аргумент е знаците от 2-я аргумент, които следват след знаците от третия аргумент .

  47. .. • swrlb:matches (from XQueryfn:matches) Удовлетворена, ако първият аргумент, отговарея на регулярния израз, който е 2-я аргумент. • swrlb:replace (from XQueryfn:replace) Удовлетворена, ако първият аргумент е равен на с-та на 2-я аргумент, като е заменено всяко срещане на подстринг, който удовлетворява рег. Израз, който е 3-я аргумент с стринга, който е като 4-ти аргумент. • swrlb:tokenize (from XQueryfn:tokenize) Удовлетворена, ако първият аргумент е поредица от един или повече стрингове, които са подстрингове на 2-я аргумент, разделен на подстрингове, които отговарят на регулярния израз, който е 3-я арг.

  48. 7.5. Built-Ins за дата, време и времетраене • Следните built-ins са дефинирани за the XML Schema date, time, and duration datatypes. • swrlb:yearMonthDuration (from Xqueryxdt:yearMonthDuration) Удовлетворена, ако първият аргумент е xsd:durationрепрезентация съставена от година, който е 2-я аргумент и месец, който е 3-я аргумент. • swrlb:dayTimeDuration (from XQueryxdt:dayTimeDuration) Удовлетворена, ако първият аргумент е xsd:durationрепрезентация съставена от дните, които са 2-я аргумент, часовете, които са 3-я аргумент, минути-4 аргумент и секунди-5 аргумент.

  49. ... • swrlb:dateTimeУдовлетворена, ако първият аргумент е xsd:dateTimeрепрезентацията съставена от годината, която е 2-я аргумент, месеца, който е 3-я аргумент, ден-4 аргумент, часовете-5 аргумент, минути-6 аргумент, секунди-7 аргумент и времева зона като 8 аргумент. • swrlb:date Удовлетворена, ако първият аргумент е xsd:date репрезентацията съставена от годината, която е 2-я аргумент, месеца, който е 3-я аргумент, ден-4 аргумент и часова зона като 5-ти аргумент • swrlb:time Удовлетворена, ако първият аргумент е xsd:timeрепрезентация съставена от часовете, които са 2-я аргумент, минутите, които са 3-я аргумент, секундите-4 аргумент и времева зона като 5-ти аргумент.

  50. ... • swrlb:addYearMonthDurations (from XQueryop:add-yearMonthDurations) Удовлетворена, ако yearMonthDuration(1-ви арг.) е равен на аритметичната сума от yearMonthDuration(2-ри арг.) с останалите yearMonthDuration(останалите арг.). • swrlb:subtractYearMonthDurations (from XQueryop:subtract-yearMonthDurations) Удовлетворена, ако yearMonthDuration(1-ви арг.) е равен на аритметичната разлика от yearMonthDuration(2-ри арг.) с yearMonthDuration(3-ти арг.). • swrlb:multiplyYearMonthDuration (from XQueryop:multiply-yearMonthDuration) Удовлетворена, ако yearMonthDuration(1-ви арг.) е равен на аритметичното произведение от yearMonthDuration(2-ри арг.) с yearMonthDuration(3-ти арг.). • swrlb:divideYearMonthDurations (from XQueryop:divide-yearMonthDuration) Удовлетворена, ако yearMonthDuration(1-ви арг.) е равен на аритметичното частно от yearMonthDuration(2-ри арг.) с yearMonthDuration(3-ти арг.).

More Related