[[
✎ pl:miw:miw08_ard_rdf
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Opis ====== Rafał Szymczyk, <raf.szymczyk@o2.pl> Zapis ARD przy pomocy RDF w XSLT ====== Spotkania ====== ===== 08.03.04 ===== ===== 08.03.18 ===== * repr atrybutów dla reguł RIF/OWL/RDF ===== 080401 ===== * missed ===== 080408 ===== * ??? ===== 080422 ===== * to co na 18.3.2008 ====== Projekt ====== jak sensownie repr. ard w rdf? ===== RDF ===== **RDF** (Resource Description Framework) jest podstawowym językiem używanym do zapisu informacji w Sieci Semantycznej i przeznaczonym do przetwarzania maszynowego. W dosłownym tłumaczeniu jest środowiskiem do opisu zasobów (jako zasób rozumiemy: dowolny obiekt znajdujący się w sieci, pojęcia abstrakcyjne, relacje i obiekty fizyczne). Do opisu zasobów używa się tzw. stwierdzeń (ang. statements), które składają się z: * Podmiotu – opisywany zasób. * Orzeczenia (predykatu) – nazwa cechy lub relacji dotyczącej opisywanego podmiotu. * Obiektu – inny zasób lub stała wartość określona mianem literału. Sposób przedstawiania atrybutów w [[http://www.w3.org/TR/rdf-primer/|RDF]]: < opisywany_zasob > < nazwa_atrybutu > „wartosc_atrybutu”. **Przykład opisu w RDF pewnego „zasobu”:** Zwykłe zdanie: Janek jest twórcą dokumentu http://www.dokumenty.org/dokument1 Zdanie RDF: http://www.dokumenty.org/dokument1 posiada własność twórca której wartością jest Janek Właściwa forma RDF (musi być zakonczona kropką): <http://www.dokumenty.org/dokument1> <http://purl.org/dc/elements/1.1/creator> „Janek”. Graf RDF: {{:pl:miw:rdf.png|:pl:miw:rdf.png}} Styl XML: <code xml> <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf : about="subject"> <predicate>Object</predicate> </rdf:Description> </rdf:RDF> </code> Nasz przykład zapisany w XML: <code xml> <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:DC="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf : about="http://www.dokumenty.org/dokument1"> <DC:creator resource = "http://www.tworcy.org/janek"> </rdf:Description> </rdf : RDF> </code> Użyty jest tu predykat pochodzący z “biblioteki” Dublin Core (słownictwo zdefiniowane do opisu metadanych różnych dokumentów - w szczególności bibliotecznych: daty utworzenia, autora itp.). Jest to oznaczone w korzeniu dokumentu (którym jest zawsze znacznik rdf:RDF). Podmioty definiujemy znacznikiem rdf:Description z atrybutem rdf:about zawierającym URI zasobu. Zdania opisujące ten podmiot są zapisywane jako węzły potomne. Obiekty, które są jednocześnie zasobami zapisujemy w postaci węzła skróconego z URI tego zasobu umieszczonym w atrybucie rdf:resource. **Użycie faktów: ** Wyrażenia RDF występują w postaci trójek zwanych zdaniami (statements). Wszystko do czego odnoszą się zdania są zasobami z pewnymi identyfikatorami lub wartościami. Po to aby fakty były użyte w zdaniach, musimy dysponować pewną tożsamością, która z kolei odpowiada pewniej wartości zasobu. By zapewnić taką reprezentacje faktów, wprowadza się nowe identyfikatory zasobów, powiązanych tutaj z przestrzenią nazw z prefixem rul: która wskazuje na przestrzeń nazw URI <http://id.ninebynine.ord/RDFRules/1.0/>: * rul:Fact – jest pomocniczym typem danych który jest stosowany jako zasób reprezentujący fakt. * rul:pred – to własność który określa predykat użyty przez fakt * rul:args – to własność określająca listę argumentów predykatu użytą w fakcie Przykład pewnego faktu reprezentowanego w RDF /N3 (notacja3 - http://en.wikipedia.org/wiki/Notation_3) jako ex:subj ex:pred [ rdf:type rdf:List ; rdf:first ex:val2 ; rdf:rest [ rdf:type rdf:List ; rdf:first ex:val3 ; rdf:rest [ rdf:type rdf:List : ... rdf:rest rdf:nil ]]] . Resource który reprezentuje ten fakt jest konstruowany jak pokazano w tym przykładzie RDF/N3: [ rdf:type rul:Fact ; rul:pred ex:pred ; rul:args [ rdf:type rdf:List ; rdf:first ex:subj ; rdf:rest _:genid1 ] ] . gdzie _:genid1 jest identyfikatorem reprezentującym „ogon” listy argumentów predykatu **Reprezentacja reguł:** Podstawowa struktura reguł których używamy to zbiór faktów poprzedników (antecedent facts) i faktów z nich wynikających (consequent facts) Reguła: Afact1 & Afact2 & ... -> Cfact1 & Cfact2 & ... jest reprezentowana w RDF (używając notacji3 (N3 - http://en.wikipedia.org/wiki/Notation_3)) jako: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rul: <http://id.ninebynine.org/RDFRules/1.0/> . @prefix ex: <http://example.org/#> . [ rdf:type rul:Rule ; rul:from Afact1 ; rul:from Afact2 ; ... rul:infer Cfact1 ; rul:infer Cfact2 ; ... ] . Taka reprezentacja reguł wprowadza pewne nowe identyfikatory zasobów, powiązanych tutaj z przestrzenią nazw z prefixem rul: która wskazuje na przestrzeń nazw URI <http://id.mimesweeper.com/RDFExpert/V1.0/ess#>: * rul:Rule - to pomocniczy typ danych który opisuje zasób który reprezentuje regułę * rul:from - to właściwość która określa zasób reprezentujący fakt Afact (antecedent fact) reguły, jeden z faktów z którego może być wyciągnięty wniosek * rul:infer – to właściwość która wskazuje fakt Cfact (conclusion fact) który może być wywnioskowany jeśli wszystkie fakty poprzedzające (antecedent facts) są prawdą. Tak oto poniższa reguła: ex:a1( ex:a1s, ex:a1v2, ex:a1v3 ) & ex:a2( ex:a2s, ex:a2v2 ) -> ex:c1( ex:c1s, ex:c1v2, ex:a1v3 ) & ex:c2( ex:c2s ) . była by reprezentowana w RDF/N3 jako: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rul: <http://id.ninebynine.org/RDFRules/1.0/> . @prefix ex: <http://example.org/#> . [ rdf:type rul:Rule ; rul:from _:genid1 ; rul:from _:genid2 ; rul:infer _:genid3 ; rul:infer _:genid4 ] gdzie: genid1, genid2, genid3, genid4 są identyfikatorami reprezentującymi „ogon” listy argumentów predykatu np. genid2 może być opisany jako: _:genid2 rdf:type rul:Fact ; rul:pred ex:a2 ; rul:args [ rdf:type rdf:List ; rdf:first ex:a2s ; rdf:rest [ rdf:type rdf:List ; rdf:first ex:a2v2 ; rdf:rest rdf:nil ]] . **Zmienne ** w ogólnym znaczeniu to identyfikatory które reprezentują pewne określone wartości, ale mogą róznież reprezentować różne wartości jeśli są użyte w innym kontekscie lub w róznych odwołaniach. Na przykład, reguła: parents( ?a, ?b, ?c ) & parents( ?b, ?d, ?e ) & parents( ?c, ?f, ?g ) -> grandparents( ?a, ?d, ?e, ?f, ?g ) Moze być wywołana dla zbiorów faktów które jednocześnie pasują do reguły przodka (antecedents); dla kazdego zbioru faktów, zmienne będą związane z innymi wartościami. Zmienne są reprezentowane przez zasób typu rul:Var, oraz posiadają rdfs:label własność która jest nazwą zmiennej. Tak oto fakt: ex:Parents( ?a, ?b, ?c ) . może być reprezentowany w RDF/N3 jako: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix rul: <http://id.ninebynine.org/RDFRules/1.0/> . @prefix ex: <http://example.org/#> . _:genid1 ex:Parents [ rdf:type rdf:List ; rdf:first _:genid2 ; rdf:rest [ rdf:type rdf:List ; rdf:first _:genid3 ; rdf:rest rdf:nil ] ] . _:genid1 rdf:type rul:Var ; rdfs:label "?a" . _:genid2 rdf:type rul:Var ; rdfs:label "?b" . _:genid3 rdf:type rul:Var ; rdfs:label "?c" . Linki: [[http://www.ninebynine.org/RDFNotes/RDFFactsAndRules.html#xtocid-7560072| Representing Facts and Rules in RDF]] [[http://agentlab.swps.edu.pl/agent_papers/Gasiorowski_MS_2006.pdf]] ===== RIF ===== **RIF**(Rule Interchange Format) jest stworzonym przez W3C (Word Wide Web Consorcium) formatem reguł pozwalających na ich wymianę dla różnych języków reguł w sieciach semantycznych (RDF, OWL). (def: http://www.webopedia.com/TERM/R/Rule_Interchange_Format.html) [[http://www.w3.org/TR/rif-bld/|Dokumentacja RIF]] przedstawia dwa rodzaje składni. Są to tzw: * Presentation syntax – Używana w formalnych definicjach, szczególnie dla semantyki. * XML syntax - Jest to tzw. XML serialization składni prezentacji. Kluczowe cechy tej składni wywodzą się ze składni prezentacji, lecz niektóre aspekty związane z wymianą reguł nie mają swoich odpowiedników w presentation syntax. **Atrybut** to parametr zawierający dodatkowe informacje o elemencie struktury logicznej identyfikowanym przez dany znacznik. Sposób przedstawiania atrybutów w [[http://www.w3.org/TR/rif-bld/|Presentation syntax]] : nazwa_atrybutu->wartość_atrybutu^^type Sposób przedstawiania atrybutów w [[http://www.w3.org/TR/rif-bld/|XML syntax]]: <slot><Const>nazwa_atrybutu</Const><Var type=””>wartość_atrybutu</Var></slot> **Przykład:** * Presentation syntax author^^rif:local -> ?Author price^^rif:local -> 49^^xsd:integer * XML syntax <code xml> <slot><Const type="rif:local">author</Const><Var>Author</Var></slot> <slot><Const type="rif:local">price</Const><Const type="xsd:integer">49</Const></slot> </code> Prefix xsd: oznacza przestrzeń nazw XML http://www.w3.org/2001/XMLSchema#, a prefix rif: URI przestrzeni nazw RIF http://www.w3.org/2007/rif# . rif:local (dla stałych symboli niewidocznych poza daną formułą rif). **RIF,RDF oraz OWL Kompatybilność** RIF definiuje sposób przenoszenia regół w sieci. Reguły wymieniane poprzez RIF mogą się odnosić się do zewnętrznych źródeł danych i mogą bazować na pewnych modelach które są reprezentowane za pomocą języków różnych od RIF np: RDF , RDFS, OWL. Dokument http://www.w3.org/TR/rif-rdf-owl określa kompatybilność RIF i RDF(S). Przyszła wersja tego dokumentu będzie również określać kompatybilność z ontologią OWL. * Zgodność pomiędzy stałymi symbolami w RIF oraz nazwami w RDF graphs np.: RDF - "literal string" RIF - "literal string"^^xsd:string * Zgodność pomiędzy zdaniami w RDF (trojki postaci: s p o) i pewnymi rodzajami formuł w RIF (formula w postaci: s'[p' -> o'], gdzie s', p', oraz o' są symbolami RIF zgodnymi odpowiednio z symbolami RDF’a s, p, oraz o), np.: RDF triple: john uncleOf marry Formuła RIF frame: "john"^^rif:iri["uncleOf"^^rif:iri -> "marry"^^rif:iri] ====== Sprawozdanie ====== ====== Materiały ====== [[hekate:hekate_case_thermostat]] **ARD:** https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-userv-submitted Nalepa, G. J. (2008). UServ Case Study, Conceptual Design with ARD+ Method. Paper presented at the FLAIRS2008. https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-ardformal-submitted Nalepa, G. J., & Wojnicki, I. (2008). Towards Formalization of ARD+ Conceptual Design and Refinement Method. Paper presented at the FLAIRS2008. https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog-submitted Nalepa, G. J., & Wojnicki, I. (2008). An ARD+ Design and Visualization Toolchain Prototype in Prolog. Paper presented at the FLAIRS2008. **RDF:** http://www.w3.org/RDF/ If you want to learn about the Resource Description Format (RDF), you should read this primer. http://en.wikipedia.org/wiki/Resource_Description_Framework An explanation of RDF by Wikipedia. http://www.w3.org/TR/NOTE-rdf-simple-intro Lassila, Ora. Introduction to RDF Metadata, W3C., Note 1997-11-13 http://www.w3.org/RDF/FAQ Frequently asked Questions about RDF, W3C. http://www.ariadne.ac.uk/issue14/what-is An introductory explanation of RDF by Rachel Heery in Ariadne magazine online. http://www.rdfabout.com/intro/ http://www.xml.com/pub/a/2001/01/24/rdf.html http://xml.coverpages.org/rdf.html __The RDF tutorials__ : http://www.w3schools.com/rdf/default.asp http://www.zvon.org/xxl/RDFTutorial/General/book.html [[http://webdesign.about.com/gi/dynamic/offsite.htm?zi=1/XJ/Ya&sdn=webdesign&cdn=compute&tm=15&f=00&su=p284.8.150.ip_&tt=14&bt=0&bts=0&zu=http%3A//www710.univ-lyon1.fr/%7Echampin/rdf-tutorial/|RDF tutorial]] **XSLT** : * http://www.w3.org/Style/XSL/ * http://zvon.org/xxl/XSLTutorial/Output/index.html * http://w3schools.com/xsl/default.asp * [[wp>XSLT]] * http://www.w3.org/TR/xslt20/ FIXME
pl/miw/miw08_ard_rdf.1207655379.txt.gz
· ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry