Saturday, January 30, 2010

RDF Vocabulary

Classes
  • rdf:Resource - the class resource, everything
  • rdfs:Literal - the class of XML literal values, e.g. strings and integers
  • rdf:XMLLiteral - the class of XML literal values
  • rdfs:Class - the class of classes
  • rdf:Property - the class of properties
  • rdfs:Datatype - the class of RDF datatypes
  • rdf:Statement - the class of RDF statements
  • rdf:Alt, rdf:Bag, rdf:Seq - containers of alternatives, unordered containers, and ordered containers (rdfs:Container is a super-class of the three)
  • rdfs:Container - the class of RDF containers
  • rdfs:ContainerMembershipProperty - the class of container membership properties, rdf:_1, rdf:_2, ..., all of which are sub-properties of rdfs:member
  • rdf:List - the class of RDF Lists
  • rdf:nil - an instance of rdf:List representing the empty list
Properties
  • rdf:type - an instance of rdf:Property used to state that a resource is an instance of a class
  • rdfs:subClassOf - the subject is a subclass of a class
  • rdfs:subPropertyOf - the subject is a subproperty of a property
  • rdfs:domain - a domain of the subject property
  • rdfs:range - a range of the subject property
  • rdfs:label - a human-readable name for the subject
  • rdfs:comment - a description of the subject resource
  • rdfs:member - a member of the subject resource
  • rdf:first - the first item in the subject RDF list
  • rdf:rest - the rest of the subject RDF list after the first item
  • rdfs:seeAlso - further information about the subject resource
  • rdfs:isDefinedBy - the definition of the subject resource
  • rdf:value - idiomatic property used for structured values
  • rdf:subject - the subject of the subject RDF statement
  • rdf:predicate - the predicate of the subject RDF statement
  • rdf:object - the object of the subject RDF statement

Simple Knowledge Organization System (SKOS)

SKOS @ W3

Differences between a thesaurus and a formal ontology

from SKOS Reference :
"... To understand this distinction, consider that the "knowledge" made explicit in a formal ontology is expressed as sets of axioms and facts. A thesaurus or classification scheme is of a completely different nature, and does not assert any axioms or facts. Rather, a thesaurus or classification scheme identifies and describes, through natural language and other informal means, a set of distinct ideas or meanings, which are sometimes conveniently referred to as "concepts". These "concepts" may also be arranged and organized into various structures, most commonly hierarchies and association networks. These structures, however, do not have any formal semantics, and cannot be reliably interpreted as either formal axioms or facts about the world. Indeed they were never intended to be so, for they serve only to provide a convenient and intuitive map of some subject domain, which can then be used as an aid to organizing and finding objects, such as documents, which are relevant to that domain.

To make the "knowledge" embedded in a thesaurus or classification scheme explicit in any formal sense requires that the thesaurus or classification scheme be re-engineered as a formal ontology. In other words, some person has to do the work of transforming the structure and intellectual content of a thesaurus or classification scheme into a set of formal axioms and facts. ..."

Monday, January 25, 2010

Farmer & Belin’s Criteria of Life

  1. Life is a pattern in spacetime, rather than a material object. For example, most of our cells are replaced many times during our lifetime. It is the pattern and set of relationships that are important, rather than the specific identity of the atoms.
  2. Self-reproduction, if not in the organism itself, at least in some related organism. (Mules are alive, butcannot reproduce. Viruses can only reproduce with the aid of a host.)
  3. Information storage of a self-representation. For example, contemporary natural organisms store a description of themselves in DNA molecules, which is interpreted in the context of the protein/RNA machinery.
  4. A metabolism which converts matter and energy from the environment into the pattern and activities of the organism. Note that some organisms, such as viruses, do not have a metabolism of their own, but make use of the metabolisms of other organisms.
  5. Functional interactions with the environment. A living organism can respond to or anticipate changes in its environment. Organisms create and control their own local (internal) environments.
  6. Interdependence of parts. The components of living systems depend on one another to preserve the identity of the organism. One manifestation of this is the ability to die. If we break a rock in two, we are left with two smaller rocks; if we break an organism in two, we often kill it.
  7. Stability under perturbations and insensitivity to small changes, allowing the organism to preserve its form and continue to function in a noisy environment, or after being subjected to minor damage.
  8. The ability to evolve. This is not a property of an individual organism, but rather of its lineage. Indeed, the existence of a lineage is an important feature of living systems.

OWL versus UML

UML (Unified Modelling Language) und OWL (Web Ontology Language) are both modelling languages with a visual syntax that have developed independently from each other but both with the idea to allow conceptualisation of real world phenomena.
UML -> Object-Oriented Programming (OOP)
OWL -> Description Logic (DL)

There are used in different contexts by different persons. UML is used for specifying, visualizing and documenting software systems. OWL is a description logic based ontology language used in knowledge representation (KR)

UML is based on close world assumption. The close word assumption states that what is not currently known to be true is false.
The counterpart is open world assumption (this is what OWL is based on), which asserts that a system’s knowledge is incomplete, so that if a statement cannot be inferred from what is represented in the system, it cannot be inferred to be false.

In UML are classes (objects) are grouped in packages. In OWL are URIs used to identify all objects. These URIs are then grouped in namespaces.

OO programming, you create the superclass first and then you derive subclasses from it. In the semantic web, you make the subclasses first, then you stick them together into a superclass.


What can UML that OWL does not can ? and what can OWL that UML does not can ?
Can we use OWL in SW engineering ?
Where do we need ontology in SW engineering ?
Is OWL not to complicated for a normal human ?

Others topics:
- OWL versus RDF
- OWL tooling
- RDF tripple store
- OWL compared with DSL

Some References:
[1] Guarino_1998_Formal_Ontology_and_Information_Systems.pdf
[2] Barry_Smith_2003_Blackwell_Guide_to_the_Philosophy_of_Computing_and_Information.pdf
[3] Brockmans_2004_A_Model_Driven_Approach_for_Building_OWL_DL_and_OWL_Full_Ontologies.pdf
[4] Brockmans_2004_Visual_Modeling_of_OWL_DL_Ontologies_Using_UML.pdf
[5] Brockmans_A_Metamodel_and_UML_Profile_for_Rule-extended_OWL_DL_Ontologies.pdf
[6] Guarino_1998_Formal_Ontology_and_Information_Systems.pdf
[7] Guus_Schreiber_2005_Lecture_part_2_on_Ontology_design_patterns.ppt
[8] Hart_2004_OWL_full_and_UML_2.0_compared.pdf
[9] Koide_OWL_vs_Object_Oriented_Programming.pdf
[10] Nils_J_Nilsson_1983_Logical_Foundations_of_Artificial_Intelligence.pdf
[11] Nils_J_Nilsson_1991_Logic_and_artificial_intelligence.pdf
[12] OMG_2009_Ontology_Definition_Metamodel_v1.pdf
[13] Xue_2008_Comparative_study_OWL_UML.pdf
Links
http://www.w3.org/TR/NOTE-rdf-uml/
http://infolab.stanford.edu/~melnik/rdf/uml/
http://swik.net/Ontology+UML