Ontology Management(Publishing, Editing and Authoring):
Why would someone want to develop an ontology? Some of the reasons are:
· To share common understanding of the structure of information among people or software agents
· To enable reuse of domain knowledge
· To make domain assumptions explicit
· To separate domain knowledge from the operational knowledge
· To analyze domain knowledge
Ontology is a formal explicit description of concepts in a domain of discourse (classes
(sometimes called concepts)), properties of each concept describing various features and attributes of the concept (slots (sometimes called roles or properties)), and restrictions on slots (facets (sometimes called role restrictions)). An ontology together with a set of individual instances of classes constitutes a knowledge base.
In practical terms, developing an ontology includes:
· defining classes in the ontology,
· arranging the classes in a subclass–superclass hierarchy,
· defining slots and describing allowed values for these slots,
· filling in the values for slots for instances.
OWL:
The OWL (Web Ontology Language) is designed for use by applications that need to process the content of information instead
of just presenting information to humans.
why OWL?
OWL facilitates greater machine interpretability of Web content than that supported by XML, RDF, and RDF Schema (RDF-S) by providing additional vocabulary along with a formal semantics.
OWL has three increasingly-expressive sublanguages:
OWL-Lite is the least expressive sub-langauge. OWL-Full is the most expressive sub-language. The expressiveness of OWL-DL falls between that of OWL-Lite and OWL-Full. OWL-DL may be considered as an extension of OWL-Lite and OWL-Full an extension of OWL-DL.
PostgreSQL Features
1)Functions
- Functions allow blocks of code to be executed by the server.
2)Indices
- PostgreSQL is capable of scanning indexes backwards when needed; a separate index is never needed to support ORDER BY field DESC.
- Expression indexes can be created with an index of the result of an expression or function, instead of simply the value of a column.
- Partial indexes, which only index part of a table, can be created by adding a WHERE clause to the end of the CREATE INDEX statement. This allows a smaller index to be created.
3)Triggers
- Triggers are events triggered by the action of SQL query. For example, an INSERT query might activate a trigger that checked if the values of the query were valid.
- Most triggers are only activated by either INSERT or UPDATE queries.
- Triggers are fully supported and can be attached to tables but not to views. Views can have rules, though. Multiple triggers are fired in alphabetical order.
4)MVCC
- PostgreSQL manages concurrency through a system known as Multi-Version Concurrency Control (MVCC), which gives each user a "snapshot" of the database, allowing changes to be made without being visible to other users until a transaction is committed.
5)Inheritance
- Tables can be set to inherit their characteristics from a "parent" table. Data is shared between "parent" and "child(ren)" tables.
- Tuples inserted or deleted in the "child" table will respectively be inserted or deleted in the "parent" table.
- Also adding a column in the parent table will cause that column to appear in the child table as well.This feature is not fully supported yet—in particular, table constraints are not currently inheritable. This means that attempting to insert the id of a row from a child table into table that has a foreign key constraint referencing a parent table will fail because Postgres doesn't recognize that the id from the child table is also a valid id in the parent table.
DTML:
DTML (Document Template Markup Language) is a templating facility which supports the creation of dynamic HTML and text. It is typically used in Zope to create dynamic web pages. For example, you might use DTML to create a web page which "fills in" rows and cells of an HTML table contained within the page from data fetched out of a database.
DTML is a tag-based presentation and scripting language. This means that tags (e.g. <dtml-var name>) embedded in your HTML cause parts of your page to be replaced with "computed" content. DTML is a "server-side" scripting language. This means that DTML commands are executed by Zope at the server, and the result of that execution is sent to your web browser. By contrast, "client-side" scripting languages like JavaScript? are not processed by the server, but are rather sent to and executed by your web browser.
When To Use DTML
If you want to make a set of dynamic web pages that share bits of content with each other, and you aren't working on a project that calls for a tremendous amount of collaboration between programmers and tool-wielding designers, DTML works well. Likewise, if you want to dynamically create non-HTML text (like CSS stylesheets or email messages), DTML can help.
ZPT:
ZPT as a consistent, XML compliant, markup language embeds all logic in namespaced attributes and provides a means to supply prototypical content to give the presentation designer a sense of context Or, to put it in simpler terms, ZPT allows Web developers greater flexibility in separating an application's presentation layer from the business logic that drives it, thereby making it possible to easily update one without disrupting the other. ZPT actually consists of three different components, which interact with each other to offer developers a fair amount of power and flexibility. Here they are:
1. TAL: First up is the Template Attribute Language, also referred to as TAL. As per the official TAL specification, TAL is "an attribute language used to create dynamic templates...it allows elements of a document to be replaced, repeated, or omitted." Put more simply, TAL is a template language which uses special attributes within HTML tags to perform different actions, like variable interpolation, tag repetition and content replacement.
2. METAL: METAL is the Macro Expansion Template Attribute Language, and it is defined as "an attribute language for structured macro preprocessing". In ZPT, macros allow developers to create a single snippet of code and reuse it extensively across the application. The advantage: a change to the macro will be immediately reflected across the templates it has been used in.
3. TALES: TALES stands for Template Attribute Language Expression Syntax. Officially, TALES "describes expressions that may be used to supply TAL and METAL with data." These expressions may be in the form of paths to specific Zope objects, Python code or strings, including strings containing variables to be substituted, and they form a significant component of ZPT.
