php-extended/php-information-interface

A library to specify transport objects for individual informations


Keywords
php, interface, information
License
MIT

Documentation

php-information-interface

A library to specify transport objects for individual informations

Installation

The installation of this library is made via composer. Download composer.phar from their website. Then add to your composer.json :

	"require": {
		...
		"php-extended/php-information-interface": "^15",
		...
	}

Then run php composer.phar update to install this library. The autoloading of all classes of this library is made through composer's autoloader.

Basic Usage

This library is an interface-only library. It represents individual messages for conveying information between two systems.

For a concrete implementation, see php-extended/php-information.

There are different types of informations. For a pure semantic web implementation, only two of those types are needed : the InformationDataInterface and the InformationRelationInterface. Also, the InformationTripleInterface is given to handle specifically those information types. If handled that way, you will need a converter to separate the semantic information data from the semantic information relations.

The other types of informations were added to face the complexity of relational database primary key management. The details about those types of informations follow.

Note that for every Timed interface, the time information that is carried by those object is supposed to take place within the primary key of the object they describe, making the primary key a composite key with the two fields, one of those being the date time field.

InformationDataInterface

The InformationDataInterface is the most basic data that can transit.

It represents a simple information that an object can own.

InformationRelationInterface

The InformationRelationInterface is the most basic relation that can transit.

It represents a simple link between two objects.

InformationRelationDataInterface

The InformationRelationDataInterface is the first composed object. It is composed with the relation part and the data part.

It represents a simple link between two objects that carries a simple information.

InformationDataTimedInterface

The InformationDataTimedInterface is the simplest timed information composed object. It is composed with the data and the timed part.

It represents a data for a given object that may occur multiple times and have different values each time.

InformationRelationTimedInterface

The InformationRelationTimedInterface is the timed information based on a relation object. It is composed with the relation and the timed part.

It represents a relation between two objects that may occur multiple times and have different values each time.

InformationRelationDataTimedInterface

The InformationRelationDataTimedInterface is the timed information based on the composite relation and data object. It is composed with the relation, the data and the time part.

It represents a relation between two objects that carry a specific information, and that relation may occur multiple times and have different values each time, as well as a relation that have the same value but where the inner information differ over time.

InformationCompositeDataInterface

The InformationCompositeDataInterface is the first composite information. It is composed of the composite information from the relation part, and the data part.

It represents a data that may be declined over from a specific object without being a fully double sided relation. This may be useful for specifying translations of a specific model where the language is not a table.

InformationCompositeRelationInterface

The InformationCompositeRelationInterface is similar to the InformationRelationInterface but the way the key of the object is built is different. It is composed of the composite information from the object, the source information and the target information for the relation.

It represents a relation that is made on top of a composite object. This may be useful for relations to make on a translated object.

InformationCompositeTimedInterface

The InformationCompositeTimedInterface is a composite information which is mixed with timed information. It is composed of the composite part and the timed part.

It represents a data that may be traced at different times without additional information to store.

InformationCompositeDataTimedInterface

The InformationCompositeDataTimedInterface is a composite data information. It is composed of the composite part, the data part and the timed part.

It represents a data that may be traced at different times with additional information to store. This may be useful to store price evolutions of a specific object.

InformationCompositeRelationTimedInterface

The InformationCompositeRelationTimedInterface is a composite data information. It is composed of the composite part, the data part and the time part, as well as the target and the source of the relation.

It represents a relation that may be traced at different times on a composite timed object. This may be useful for example to trace who is the better bidder on prices over time.

InformationTripleInterface

The InformationTripleInterface is used for semantic-web informations. It is composed of only three fields, the subject, the predicate, and the object of the triple (or tuple).

It can represent information for a specific object or a relation between two objects or a reference list.

InformationMultiInterface

The InformationMultiInterface is a complex information that carries in one go multiple data and self-relation informations.

It represents a complete object full of its own informations.

InformationVisitorInterface

The InformationVisitorInterface is the only object that can interact with all the others information interfaces.

It represents a dispatcher that will process with specific paths each of the available information interface.

License

MIT (See license file).