Przykład 1 (Warunek RIF-BLD)
Przykład ten prezentuje warunki składające się z atomów, wyrażeń, ram i formuł istnienia. W formułach ramowych zmienne są pokazane na pozycjach identyfikatorów obiektów, właściwości obiektów, lub wartości właściwości.

Compact URI prefixes:

  bks  expands into http://example.com/books#
  auth expands into http://example.com/authors#
  cpt  expands into http://example.com/concepts#

Positional terms:

  "cpt:book"^^rif:iri("auth:rifwg"^^rif:iri "bks:LeRif"^^rif:iri)
  Exists ?X ("cpt:book"^^rif:iri(?X "bks:LeRif"^^rif:iri))

Terms with named arguments:

  "cpt:book"^^rif:iri(cpt:author->"auth:rifwg"^^rif:iri
                      cpt:title->"bks:LeRif"^^rif:iri)
  Exists ?X ("cpt:book"^^rif:iri(cpt:author->?X cpt:title->"bks:LeRif"^^rif:iri))

Frames:

  "bks:wd1"^^rif:iri["cpt:author"^^rif:iri->"auth:rifwg"^^rif:iri
                     "cpt:title"^^rif:iri->"bks:LeRif"^^rif:iri]
  Exists ?X ("bks:wd2"^^rif:iri["cpt:author"^^rif:iri->?X
                                "cpt:title"^^rif:iri->"bks:LeRif"^^rif:iri])
  Exists ?X ("bks:wd2"^^rif:iri # "cpt:book"^^rif:iri["cpt:author"^^rif:iri->?X
                                                      "cpt:title"^^rif:iri->"bks:LeRif"^^rif:iri])
  Exists ?I ?X (?I["cpt:author"^^rif:iri->?X "cpt:title"^^rif:iri->"bks:LeRif"^^rif:iri])
  Exists ?I ?X (?I # "cpt:book"^^rif:iri["cpt:author"^^rif:iri->?X
                                         "cpt:title"^^rif:iri->"bks:LeRif"^^rif:iri])
  Exists ?S ("bks:wd2"^^rif:iri["cpt:author"^^rif:iri->"auth:rifwg"^^rif:iri
                                ?S->"bks:LeRif"^^rif:iri])
  Exists ?X ?S ("bks:wd2"^^rif:iri["cpt:author"^^rif:iri->?X
                                   ?S->"bks:LeRif"^^rif:iri])
  Exists ?I ?X ?S (?I # "cpt:book"^^rif:iri[author->?X ?S->"bks:LeRif"^^rif:iri])

Przykład 2 Prosty warunek biznesowy:

If an item is perishable and it is delivered to John more than 10 days after the scheduled delivery date then the item will be rejected by him.

Może zostać zapisany za pomocą wartswy prezentacyjnej na dwa sposoby:

Użyjemy prefix'u ppl jako skrótu dla http://example.com/people#.
Prefix op jest używany dla yet-to-be-determined IRI, który będzie używany dla wbudowanych predykatów RIFa.
Prefix cpt - http://example.com/concepts#

a. Universal form:

   Forall ?item ?deliverydate ?scheduledate ?diffduration ?diffdays (
        "cpt:reject"^^rif:iri("ppl:John"^^rif:iri ?item) :-
            And("cpt:perishable"^^rif:iri(?item)
                "cpt:delivered"^^rif:iri(?item ?deliverydate "ppl:John"^^rif:iri)
                "cpt:scheduled"^^rif:iri(?item ?scheduledate)
                External("fn:subtract-dateTimes-yielding-dayTimeDuration"^^rif:iri(?deliverydate ?scheduledate ?diffduration))
                External("fn:get-days-from-dayTimeDuration"^^rif:iri(?diffduration ?diffdays))
                External("op:numeric-greater-than"^^rif:iri(?diffdays "10"^^xsd:integer)))
   )

b. Universal-existential form:

   Forall ?item (
        "cpt:reject"^^rif:iri("ppl:John"^^rif:iri ?item ) :-
            Exists ?deliverydate ?scheduledate ?diffduration ?diffdays (
                 And("cpt:perishable"^^rif:iri(?item)
                     "cpt:delivered"^^rif:iri(?item ?deliverydate "ppl:John"^^rif:iri)
                     "cpt:scheduled"^^rif:iri(?item ?scheduledate)
                     External("fn:subtract-dateTimes-yielding-dayTimeDuration"^^rif:iri(?deliverydate ?scheduledate ?diffduration))
                     External("fn:get-days-from-dayTimeDuration"^^rif:iri(?diffduration ?diffdays))
                     External("op:numeric-greater-than"^^rif:iri(?diffdays "10"^^xsd:integer)))
            )
   )

Przykład 3
Przykład prezentuje grupę formuł, składającą się z dwóch regół RIF-BLD. Pierwsza z regół jest z Przykładu 2a. Grupa ma adnotację z meta-danych Dublin Core reprezentowanych przez ramę.

Compact URI prefixes:

  bks  expands into http://example.com/books#
  auth expands into http://example.com/authors#
  cpt  expands into http://example.com/concepts#
  dc   expands into http://dublincore.org/documents/dces/
  w3   expands into http://www.w3.org/

Group "http://sample.org"^^rif:iri["dc:publisher"^^rif:iri->"w3:W3C"^^rif:iri
                                   "dc:date"^^rif:iri->"2008-04-04"^^xsd:date]
  (

    Forall ?item ?deliverydate ?scheduledate ?diffduration ?diffdays (
        "cpt:reject"^^rif:iri("ppl:John"^^rif:iri ?item) :-
            And("cpt:perishable"^^rif:iri(?item)
                "cpt:delivered"^^rif:iri(?item ?deliverydate "ppl:John"^^rif:iri)
                "cpt:scheduled"^^rif:iri(?item ?scheduledate)
                External("fn:subtract-dateTimes-yielding-dayTimeDuration"^^rif:iri(?deliverydate ?scheduledate ?diffduration))
                External("fn:get-days-from-dayTimeDuration"^^rif:iri(?diffduration ?diffdays))
                External("op:numeric-greater-than"^^rif:iri(?diffdays "10"^^xsd:integer)))
    )
 
    Forall ?item (
        "cpt:reject"^^rif:iri("ppl:Fred"^^rif:iri ?item) :- "cpt:unsolicited"^^rif:iri(?item)
    )

  )
pl/miw/miw08_xtt_rif/presentation_examples.txt · ostatnio zmienione: 2017/07/17 08:08 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0