Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:piw08_hekateonto [2008/06/30 15:10] ikaf |
pl:miw:piw08_hekateonto [2008/07/03 12:54] ikaf zaczelam nie skonczylam czytac opis xtt |
====== Opis ====== | |
Weronika Furmańska <ikaf@student.agh.edu.pl> | |
| |
Porównać i omówić metody reprezentowania atrybutów w językach: | |
| |
* RDF | |
* OWL | |
* RIF | |
* R2ML | |
* [[http://ruleml.org/|RuleML]] | |
* [[wp>Semantic Web Rule Language]] [[http://www.w3.org/Submission/SWRL/]] | |
| |
oraz metody reprezentowania reguł w: | |
* RIF | |
* R2ML | |
* RuleML | |
* [[http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=ERDF|ERDF]] | |
| |
co to jest [[wp>datalog]]... | |
| |
business rules orchestration | |
| |
tools: | |
http://sweetrules.projects.semwebcentral.org/ | |
| |
people | |
http://www.mit.edu/~bgrosof/ | |
| |
concepts: | |
http://en.wikipedia.org/wiki/Description_Logics | |
| |
| |
http://www.w3.org/2005/rules/wg/wiki/negation | |
| |
http://www.w3.org/2005/rules/wiki/RIF_Working_Group | |
| |
[[http://www.w3.org/2005/rules/wiki/SWC|RIF RDF and OWL Compatibility]] | |
| |
[[hekate:xtt|XTT desc proposal]] | |
[[http://www.w3.org/2001/sw/WebOnt/impls|OWL implementations]] | |
| |
====== Spotkania ====== | |
| |
| |
====== Projekt ====== | |
| |
Draft... | |
| |
| |
===== Part 1. Attributes representation in different markup languages ===== | |
| |
==== To start with... ==== | |
While talking about attribute-based languages we can recognize the following types of logic: | |
* AAL – Attributive Logic, i.e. attributive logic with atomic values of attributes only | |
* SAL – Set Attributive Logic, i.e. attributive logic with set values of attributes | |
* VAAL – Variable Atomic Attributive Logic, i.e.attributive logic with atomic values of attributes incorporating variables | |
* VSAL - Variable Set Attributive Logic, i.e.attributive logic with set values of attributes incorporating variables | |
| |
=== The alphabet and the crucial question:What is an attribute? === | |
Let there be the following, pairwise disjoint :-) sets of symbols: | |
* O – a set of object name symbols | |
* A – a set of attribute names | |
* D – a set of attribute values names (the domains) | |
* V – a set of variable symbols (variables) | |
| |
If the set of attributes is finite and given as \\ | |
{{:pl:miw:atrybuty.png|:pl:miw:atrybuty.png}} \\ | |
then \\ | |
{{:pl:miw:domain.png|:pl:miw:domain.png}}, \\ | |
where D<sub>i</sub> is the domain of attribute A<sub>i</sub> , i=1, 2, ...,n. \\ | |
| |
| |
__Attributes in AAL and VAAL__ \\ | |
An attribute Ai is a function (or partial function) of the form:\\ | |
{{:pl:miw:atrybut-def.png|:pl:miw:atrybut-def.png}}\\ | |
An attribute can be a partial function, since not all the attributes must be defined for all the objects.\\ \\ | |
__Generalized attributes in SAL and VSAL__ \\ | |
A generalized attribute Ai is a function (or partial function) of the form\\ | |
{{:pl:miw:atrybut-def2.png|:pl:miw:atrybut-def2.png}}\\ | |
| |
| |
| |
| |
==== RDF - Resource Description Framework ==== | |
=== Basic information === | |
- RDF identifies things using Web identifiers (URIs) | |
- RDF is written in XML. The language is called RDF/XML. | |
- The main elements of RDF are the root element, <RDF>, and the <Description> element, which identifies a resource. | |
- <rdf:RDF> is the root element of an RDF document. It defines the XML document to be an RDF document. It also contains a reference to the RDF namespace. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
- The <rdf:Description> element identifies a resource with the rdf:about attribute. This element contains elements that describe the resource. | |
| |
=== Attributes representation === | |
| |
"RDF is based on the idea that the things being described have properties which have values, and that resources can be described by making statements that specify those properties and values. RDF uses a particular terminology for talking about the various parts of statements." (W3C RDF Primer) | |
**Attributes are represented in RDF in a form of RDF Triples (subject, predicate, object) where subject denote the resource being described, predicate indicate the name of the attribute and object points to the attribute (predicate) value.** RDF statements (triples) consist of subject, predicate and object which all are identified by URIs. | |
| |
^ Part of an RDF triple ^ Can be ^ | |
| Subject | URI, blank node | | |
| Predicate | URI | | |
| Object | URI, literal (constant values, plain or typed), blank node | | |
| |
\\ | |
**RDF uses VSAL**\\ | |
* variables can be used (blank nodes) http://www.w3.org/TR/rdf-primer/#structuredproperties | |
http://www.w3.org/TR/rdf-concepts/#dfn-blank-node | |
* sets of attributes cannot be defined in a single RDF triple, because attributes in RDF are represented as binary predicates only. However, it is possible to do that using RDF Container Elements (<rdf:Bag> and <rdf:Seq>) or RDF Collections. To define sets of attributes we create a new resource (which may either be a blank node or a resource with a URIref). The resource is given an rdf:type property whose value is one of the predefined resources rdf:Bag, rdf:Seq, or rdf:Alt . Then the members of the container can be described by defining a container membership property for each member with the container resource as its subject and the member as its object. | |
http://www.w3.org/TR/rdf-primer/#containers | |
| |
=== RDF/XML notation === | |
Triples of the Data Model (an example from W3Schools.): | |
^ Subject ^ Predicate ^ Object ^ | |
| http://www.w3schools.com/RDF | http://www.recshop.fake/siteinfo#author | "Jan Egil Refsnes" | | |
| http://www.w3schools.com/RDF | http://www.recshop.fake/siteinfo#homepage | "http://www.w3schools.com" | | |
| |
To avoid using URI all around we use namespaces which we define as follows: xmlns:si="http://www.recshop.fake/siteinfo#" \\ | |
In RDF/XML attributes (properties of subjects) can be defined in three ways: | |
* Properties as XML elements | |
<code xml> | |
<?xml version="1.0"?> | |
| |
<rdf:RDF | |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" <!-- rdf namespace --> | |
xmlns:si="http://www.recshop.fake/siteinfo#"><!-- other namespace (eg. Our own website's)> | |
<rdf:Description rdf:about="http://www.w3schools.com/RDF"> <!-- subject identifed with a resource by rdf:about attribute --> | |
<si:author>Jan Egil Refsnes</si:author> <!-- property and its value --> | |
<si:homepage>http://www.w3schools.com</si:homepage> <!-- another property and its value --> | |
</rdf:Description> | |
</rdf:RDF> | |
</code> | |
| |
When you parse the example above with a RDF Validator, the result will look something like [[http://w3schools.com/rdf/RDFvalidationresult.htm|this]] | |
| |
* Properties as attributes | |
* Properties as resources | |
Do powyższych podpunktów nie mogłam dołączyć kodu - otrzymuje błąd, że metoda POST jest niezaimplementowana :-/ prawdopodobnie sekcja tekstu jest za długa. --- //[[ikaf@student.agh.edu.pl|Weronika Furmańska]] 2008/05/21 22:35// | |
| |
| |
| |
| |
| |
==== ERDF - Extended RDF==== | |
=== Basic information === | |
ERDF extends RDF graphs with [[pl:miw:piw08_hekateonto:weak and strong negation]], as well as derivation rules. The main concepts of the ERDF are based on [[pl:miw:piw08_hekateonto:Partial Logic]]. | |
| |
=== Attribute representation === | |
| |
Partial Logic allows to distinguish between properties and classes that are completely represented in a knowledge base and those that are not. It is to the owner of the database to classify whether for a given property there is a complete information or not. | |
On completely represented properties (which are by design treated as partial ones) the close-world assumption can be applied and the entailment of {{:pl:miw:weak_negation.png|:pl:miw:weak_negation.png}} allows to derive {{:pl:miw:strong_negation.png|:pl:miw:strong_negation.png}}. However, we can declare a property to be total. If we do so, the property can be both true or false under some interpretation and the rule "{{:pl:miw:weak_negation.png|:pl:miw:weak_negation.png}} derives {{:pl:miw:strong_negation.png|:pl:miw:strong_negation.png}}" is not applicable. There has to be an explicit negative information about a total property to infer negated statements about it. | |
| |
ERDF let us define if a property or a class as total (or partial by default) and therefore support both close-world and open-world reasoning. | |
| |
ERDF extends RDF and RDFSchema in a couple of ways. | |
- First, RDF triples are extended with the inclusion of strong negation, so one can specify a predicate which is explicitly negative. <code xml> | |
<ex:likes erdf:negationMode="Sneg" rdf:resource="#Pork"/> </code> | |
- RDFS vocabulary (which let one define classes and properties) are extended so that we can declare a property or class to be total (and thus enable open-world reasoning on them). | |
- There can be a plain literal in the place of ERDF triple subject. So now it looks as follows: | |
| |
^ Part of an ERDF triple ^ can be ^ | |
|Subject | URI or literal (plain or typed) or a variable | | |
|Predicate | URI | | |
|Object | URI or literal (plain or typed) or a variable | | |
| |
| |
=== ERDF/XML notation === | |
ERDF/XML syntax folllows the RDF/XML one and extends it in a suitable way. | |
| |
RDFS is extended with the terms erdf:TotalClass and erdf:TotalProperty. We can define a property p or a class c to be total using | |
<code xml> | |
rdf:type(p,erdf:TotalProperty) | |
</code> | |
and | |
<code xml> | |
rdf:type(c,erdf:TotalClass) | |
</code> | |
statements. | |
| |
Example of a regular (partial by design) property: | |
<code xml> | |
<rdf:Property rdf:about="#likes"> | |
<rdfs:domain rdf:resource="#Person"/> | |
</rdf:Property> | |
</code> | |
Example of a total property: | |
<code xml> | |
<erdf:TotalProperty rdf:about="#authorOf"> | |
<rdfs:domain rdf:resource="#Person/"> | |
<rdfs:range rdf:resource="#Book"/> | |
</erdf:TotalProperty> | |
</code> | |
| |
ERDF triples (and sets of ERDF triples sharing the same subject term) are encoded by means of the erdf:Description element, which has a non-empty list of (possibly negated) property-value slots about the subject term. The following rules apply: | |
* URI references, blank node identifiers and variable that appear in the subject position are expressed as values of the erdf:about attribute: <code xml><erdf:Description erdf:about="#Gerd"> | |
... | |
</erdf:Description> </code> | |
* literals that appear in the subject position are expressed as the text content of the erdf:about subelement: <code xml><erdf:Description> | |
<erdf:About rdf:datatype="&xsd;string">Grigoris</erdf:About> | |
... | |
</erdf:Description> </code> | |
* URI references, blank node identifiers and variable that appear in the object position are expressed as values of the attributes rdf:resource, rdf:nodeID and rdf:variable respectively: <code xml> <ex:denotationOf f:resource="#Grigoris"/> </code> | |
* literals that appear in the subject position are expressed as the text content of the corresponding subelement | |
| |
| |
| |
| |
| |
==== OWL - Web Ontology Language ==== | |
=== Basic information === | |
OWL Web Ontologoy Language - a language for defining and instantiating Web ontologies. | |
Ontology is a term borrowed from philosophy that refers to the science of describing the kinds of entities in the world and how they are related. | |
An OWL ontology may include descriptions of classes, properties and their instances. | |
Given such an ontology, the OWL formal semantics specifies how to derive its logical consequences, i.e. facts not literally present in the ontology, but entailed by the semantics. | |
These entailments may be based on a single document or multiple distributed documents that have been combined using defined OWL mechanisms. (from [[http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Introduction|OWL Guide]]) | |
== Three sublanguages of OWL == | |
OWL provides three increasingly expressive sublanguages designed for use by specific communities of implementers and users. | |
* OWL Lite | |
- supports those users primarily needing a classification hierarchy and simple constraints | |
- it should be simpler to provide tool support for OWL Lite than its more expressive relatives | |
- provides a quick migration path for thesauri and other taxonomies | |
- has a lower formal complexity than OWL DL | |
* OWL DL | |
- supports those users who want the maximum expressiveness while retaining computational completeness (all conclusions are guaranteed to be computable) and decidability (all computations will finish in finite time) | |
- includes all OWL language constructs, but they can be used only under certain restrictions | |
- is so named due to its correspondence with [[pl:miw:piw08_hekateonto:description logics]] | |
* OWL Full | |
- is meant for users who want maximum expressiveness and the syntactic freedom of RDF with no computational guarantees | |
- allows an ontology to augment the meaning of the pre-defined (RDF or OWL) vocabulary | |
- it is unlikely that any reasoning software will be able to support complete reasoning for every feature of OWL Full. | |
| |
Each of these sublanguages is an extension of its simpler predecessor, both in what can be legally expressed and in what can be validly concluded. | |
| |
=== Attributes representation === | |
Ontologies consist of taxonomies which describe hierarchy and relations between classes and of inference rules to operate on these classes. In this section I will concentrate on the first part. | |
| |
Using OWL one can represent attributes of classes and individuals. \\ | |
:?: Czy relacje typu: subclassOf, subpropertyOf to tez atrybuty, czy atrybutami są tylko "pola klasy"? :-| \\ | |
Attribute represetation is based on RDF/XML syntax. \\ \\ | |
__Sample (and incomplete) definition of a class__ | |
<code xml> | |
<owl:Class rdf:ID="Wine"> | |
<rdfs:subClassOf rdf:resource="&food;PotableLiquid"/> | |
<rdfs:label xml:lang="en">wine</rdfs:label> | |
<rdfs:label xml:lang="fr">vin</rdfs:label> | |
... | |
</owl:Class> | |
| |
<owl:Class rdf:ID="Pasta"> | |
<rdfs:subClassOf rdf:resource="#EdibleThing" /> | |
... | |
</owl:Class> | |
</code> | |
| |
__Sample description of an individual__ | |
<code xml> | |
<owl:Thing rdf:ID="CentralCoastRegion" /> | |
| |
<owl:Thing rdf:about="#CentralCoastRegion"> | |
<rdf:type rdf:resource="#Region"/> | |
</owl:Thing> | |
</code> | |
rdf:type is an RDF property that ties an individual to a class of which it is a member. | |
| |
====== Sprawozdanie ====== | |
| |
| |
| |
| |
====== Materiały ====== | |
http://w3schools.com/rdf/default.asp\\ | |
http://www.w3.org/TR/rdf-primer\\ | |
http://www.ninebynine.org/RDFNotes/RDFFactsAndRules.html#xtocid-7\\ | |
[[http://gigapedia.org/items/51325/logical-foundations-for-rule-based-systems--studies-in-computational-intelligence---studies-in-computational-intelligence-|A.Ligęza - Logical Foundations for Rule-Based Systems]] \\ | |
http://oxygen.informatik.tu-cottbus.de/IT/Research/ERDF-JAIR-2008.pdf\\ | |