PPHML v1.0 Technical Preview
Schema Documentation
This version:
http://www.pphml.org/schema/doc/pphml-v1-0-tp.html.
Newest version: this is the newest version.
Author: PPHML.org Team.
Comments on this document should be sent to schema-comments@pphml.org.
Abstract
Introduction
Skeleton elements
The "paraphrase" element
The "situation" element
The "statement" element
The "probability" element
The "boost" element
Clauses
The "subject" clause
The "predicate" clause
The "what" clause
The "where" clause
The "how" clause
Contexts
The "earlier" context
The "before" context
The "after" context
The "later" context
Data embedding
Data blocks
Descriptor elements
E-mail
Name
Source descriptors
PPHML reference tokens
Entities
Actions
Objects
Places
Adverbs
Source types
Data types
Attributes
Samples
This document introduces the usage of PPHML schema, which is the creation rules collection of the Paraphrase Markup Language. This XML schema is designed for producing, filtering, interchanging, rephrasing and notifying paraphrases. Any paraphrase according to this schema can contain a set of situations, which are the most important elements in PPHML. Situations are produced by snooping services then filtered by sharing services. Both of them are typically running on portable devices. After sharing, situations may interchange over public services, like social networks which are able to rephrase them based on their additional information. Notifier engines run anywhere in order to show or tell paraphrases as human readable and understandable declarative sentences in any language.
PPHML acronym stands for Paraphrase Markup Language. It is designed to describe situations in declarative sentence forms. PPHML documents are XML documents, typically generated by software engines which use identifiers rather than real words while producing paraphrases. Think of a paraphrase just as a short story, a situation as a paragraph of a story and a statement as a sentence of a paragraph. Statements have more optional clause, context and data elements in order to provide modeling ability of human languages. Of course, a software engine is not smarter than a brain, so PPHML allows the use of conditional elements (probabilities) when these engines are going to describe situations.
There is another important element in PPHML: the boost tag. Public services may generate situation dependent information, able to insert them into the original document, then turn back paraphrases to the sender or forward them to others. This is the way for example, how a mobile phone owner can receive a shopping list from his wife when he arrives at a shopping center.
Power of PPHML is not depending only on its structural complexity. Amount of resource identifiers (reference tokens) declared in the schema basically determines the usage scope of paraphrases. It is important to understand, that version of the PPHML discussed in this document is a technical preview instance.
There are some foot-stone PPHML elements used to create paraphrase skeletons, which are the "paraphrase", "situation", "statement", "probability", and "boost" tags. The first four elements of these provide the main logic structure of the XML documents. The boost tag is able to insert extra information around situations.
This is the root element in a PPHML document. It is a container tag in order to describe one or more situations within the same XML. Any situation enumerated in a paraphrase is on the top logical level, which means they have to been handled independently while a process interprets a PPHML document. A "paraphrase" generally contains one "situation" element only. This is because a paraphrase typically generated by a portable device, which describes only one situation at a time about its owner.
This is a simple paraphrase skeleton sample, contains one "situation" item only. It is the regular form of PPHML documents.
<?xml version="1.0" ?>
<paraphrase>
<situation>
...
</situation>
</paraphrase>
This is a complex paraphrase skeleton sample. It is able to describe more independent "situation" items in a PPHML document.
<?xml version="1.0" ?>
<paraphrase>
<situation>
...
</situation>
<situation>
...
</situation>
</paraphrase>
PPHML documents use clauses to explain entities, actions, places and other things about situations. Of course, some of these clauses may have the same content through all situations of a paraphrase. Typically the "subject" clause describes the owner of a mobile phone, so it is identical for all "situation" items. In this case, it is possible to emphasize these consistent clauses.
This is a complex paraphrase skeleton sample with a common emphasized clause: "subject".
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
...
</situation>
<situation>
...
</situation>
</paraphrase>
This complex paraphrase skeleton sample is equal to previous one, but it does not use emphasizing.
<?xml version="1.0" ?>
<paraphrase>
<situation>
<subject>
...
</subject>
...
</situation>
<situation>
<subject>
...
</subject>
...
</situation>
</paraphrase>
Of course, simple paraphrases may use this technics too.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
...
</situation>
</paraphrase>
The "situation" XML tag in a PPHML document provides a description about something, generally provides the actual state of a mobile phone user. This description may be rich or poor depending on circumstances. Possible child items of a "situation" element are "statement", "probability" and "boost".
Usually, description of a situation contains one element only, typically a "statement".
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
...
</statement>
</situation>
</paraphrase>
Description of a rich situation may contain more elements if necessary, like "probability" or "boost".
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
...
</statement>
<probability>
...
</probability>
<boost>
...
</boost>
</situation>
</paraphrase>
Clause emphasizing works as well. In sample below, the "subject" clause applies to both "statement" items within the "situation".
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
</statement>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
</statement>
</situation>
</paraphrase>
The "situation" item has an optional date-time (ISO 8601) attribute, named "timestamp". It is the timestamp value of the observation which has generated the situation in the paraphrase.
Sample below shows a simple situation skeleton with its timestamp information.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation timestamp="2008-01-17T19:21:33.12+02:00">
<statement>
...
</statement>
</situation>
</paraphrase>
A statement tells something about a situation. Depending on complexity, a situation may contain more statements if necessary. Each "statement" applies to its parent "situation" in the XML hierarchy. This means if more statements exist within a situation, all of them are say some truth about that situation. Any child of a "statement" tag must be a set of "clauses", "contexts" or "data" items.
This is a simple situation below with one "statement" item only.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
</statement>
</situation>
</paraphrase>
Complex situations have more "statement" items.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
</statement>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
<how>
...
</how>
</statement>
</situation>
</paraphrase>
This is a grouping element. It must have two or more "chance" tags. Like statements, any chance tells something about a situation, but all of these "chance" tags within a "probability" must not be true at the same time. So probability contains a chance list of possible statements. As default, chances have the same hit probabilities. Chance tags have optional "odds" properties in order to balance their hit probabilities.
Sample below tells that Jack stops, but the place where Jack stops is ambiguous. For example, it is because his favourite pub and restaurant are at that same place.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
</statement>
<probability>
<chance>
<where ref="pphml://place/entertainment/pub" />
</chance>
<chance>
<where ref="pphml://place/entertainment/restaurant" />
</chance>
</probability>
</situation>
</paraphrase>
This sample is similar to the previous one but it uses odds properties to redefine hit probabilities. It means that Jack stops at a pub, rather than at a restaurant, because he used to go to the pub ten times more than going to the restaurant.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
</statement>
<probability>
<chance odds="10">
<where ref="pphml://place/entertainment/pub" />
</chance>
<chance odds="1">
<where ref="pphml://place/entertainment/restaurant" />
</chance>
</probability>
</situation>
</paraphrase>
This element is similar to the "statement", but it has no "context" description possibility. Any child of this tag must be a set of "clauses" or "data" items. Boost is used to append paraphrases with situation dependent information.
Sample below shows a social network engine generated paraphrase which contains a "boost" tag. Originally, Jack's portable device has sent this paraphrase without any "boost" tag. His wife, Jane made a shopping list before, so the public service is able to insert that list into this paraphrase then push back to Jack at the moment he stops at the shopping center.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
<where ref="pphml://place/regular/shop" />
</statement>
<boost>
<subject ref="pphml://entity/person/female">
<e-mail>jane@foo.org</e-mail>
</subject>
<predicate ref="pphml://action/generic/pass" />
<what ref="pphml://object/list/shopping">
...
</what>
</boost>
</situation>
</paraphrase>
Any statement in a PPHML document use "clause" tags to compose declarative sentences, which built on simple subjects and simple predicates. Of course, it is possible to make more complex sentences. Each clause is optional and can occur once a time in a statement. Possible clause tags are "subject", "predicate", "what", "where" and "how". By the way, this is the fixed order of these tags within a skeleton element.
Sample below is a skeleton of a moderated statement. It uses only "subject" and "predicate" clauses.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
</statement>
</situation>
</paraphrase>
This is a skeleton of a more sophisticated statement. Not only "subject" and "predicate", but "where" and "how" also used to compose the statement.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
<how>
...
</how>
</statement>
</situation>
</paraphrase>
One of the most important tags in a PPHML document is the "subject" clause. It is the simple subject of a declarative sentence, can be referred by an e-mail address or a name string (or both of them). Content of this tag generally points to the user of the mobile phone which has created the PPHML document. This clause may contain a "source" child item in order to provide more system dependent details. The "ref" attribute is a required property which is a reference to the type of the "subject" clause.
Sample: referencing to an entity by its e-mail address. This is the generic form of entity referencing.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
</statement>
</situation>
</paraphrase>
Sample: referencing to an entity by its name. It is also recommended to use e-mail address, because the name usually is not enough for referencing to an entity. For example a social network may exists a number of hundreds with name Jack Smith.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<name>Jack Smith</name>
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
</statement>
</situation>
</paraphrase>
Sample below shows a detailed description of an entity. For example, the "source" tag in this paraphrase has inserted by a social network engine in order to provide more details about referenced entity, Jack Smith.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
<source ref="pphml://source/social-network/library">
<attribute name="pphml://attribute/entity/first-name">Jack</attribute>
<attribute name="pphml://attribute/entity/last-name">Smith</attribute>
<attribute name="pphml://attribute/entity/age">27</attribute>
</source>
</subject>
<situation>
<statement>
<predicate>
...
</predicate>
<where>
...
</where>
</statement>
</situation>
</paraphrase>
This clause is used to describe an action, typically taken by the owner of a portable device. In other words, this clause is the simple predicate of a declarative sentence, it is a verb. Optionally a "name" tag can be used in order to naming exactly the action. This clause may contain a "source" child item in order to provide more system dependent details. The "ref" attribute is a required property which is a reference to the type of the "predicate" clause.
Sample below references to an action by a URI: "Someone is shopping somewhere." This is the generic form of action referencing.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/shopping" />
<where>
...
</where>
</statement>
</situation>
This sample references to an action by its name: "Someone is cooking somewhere." The cooking is not a standard verb in the PPHML's world, because a mobile phone or a social network engine is unable to detect this special action (till 12/02/2008). In this case the URI must point to an unknown action, so the PPHML creator must name it directly. This form of action referencing is not recommended.
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate ref="pphml://action/unknown">
<name>cook</name>
</predicate>
<where>
...
</where>
</statement>
</situation>
Sample below uses an additional "source" tag in order to explain details of the action: "Someone is driving somewhere. (It is because the mobile phone is connected to a Bluetooth device, named My car Kit and this car kit is dedicated to a driving action.)"
<?xml version="1.0" ?>
<paraphrase>
<subject>
...
</subject>
<situation>
<statement>
<predicate ref="pphml://action/moving/drive">
<source ref="pphml://source/portable/bluetooth">
<attribute name="pphml://attribute/device/id">My car kit</attribute>
</source>
</predicate>
<where>
...
</where>
</statement>
</situation>
The "what" clause is used to describe the object of a declarative sentence. Optionally a "name" tag can be used in order to naming exactly the object. This clause may contain a "source" child item in order to provide more system dependent details. The "ref" attribute is a required property which is a reference to the type of the "what" clause.
This is a primitive sample which tells: "jack@foo.org is driving a car."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/moving/drive" />
<what ref="pphml://object/vehicle/car" />
</statement>
</situation>
</paraphrase>
The "where" clause is used to describe the location of an action within a declarative sentence. It can be referred by an "e-mail" address or a "name" string (or both of them). This clause may contain a "source" child item in order to provide more system dependent details. The "ref" attribute is a required property which is a reference to the type of the "where" clause.
This is a primitive sample which tells: "jack@foo.org is at a restaurant."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/is" />
<where ref="pphml://place/entertainment/restaurant" />
</statement>
</situation>
</paraphrase>
The "how" clause is used to describe the adverb part of a declarative sentence. Optionally a "name" tag can be used in order to naming exactly the adverb. This clause may contain a "source" child item in order to provide more system dependent details. The "ref" attribute is a required property which is a reference to the type of the "how" clause.
This is a primitive sample which tells: "jack@foo.org is stopping by car."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
<how ref="pphml://adverb/vehicle/car" />
</statement>
</situation>
</paraphrase>
Situations composed with PPHML are basically in present tense and they are declarative sentences. There are some special tags which are able to extend a situation meaning. These are the context elements: "earlier", "before", "after" and "later". The "earlier" and "before" items tell something prior to the situation, the "after" and "later" items tell something following the situation.
The "earlier" element composes a statement as a part of the parent situation.
This sample tells: "jack@foo.org arrives at home from shopping."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/arrive" />
<where ref="pphml://place/regular/home" />
<earlier>
<predicate ref="pphml://action/generic/shopping" />
</earlier>
</statement>
</situation>
</paraphrase>
The "before" element composes a statement as a part of the parent situation.
This sample tells: "jack@foo.org stops at a restaurant as he driving by car."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
<where ref="pphml://place/entertainment/restaurant" />
<before>
<predicate ref="pphml://action/moving/drive" />
<how ref="pphml://adverb/vehicle/car" />
</before>
</statement>
</situation>
</paraphrase>
The "after" element composes a statement as a part of the parent situation.
This sample tells: "jack@foo.org driving by car. He arrives at home."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/moving/drive" />
<how ref="pphml://adverb/vehicle/car" />
<after>
<predicate ref="pphml://action/generic/arrive" />
<where ref="pphml://place/regular/home" />
</after>
</statement>
</situation>
</paraphrase>
The "later" element composes a statement as a part of the parent situation.
This sample tells: "jack@foo.org driving by car. He will arrive at home soon."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/moving/drive" />
<how ref="pphml://adverb/vehicle/car" />
<later>
<predicate ref="pphml://action/generic/arrive" />
<where ref="pphml://place/regular/home" />
</later>
</statement>
</situation>
</paraphrase>
Declarative sentences composed in paraphrases may contain embedded data which are additional information around the paraphrases, not real parts of a human language. Version of the PPHML discussed in this document supports only the "data" tag in order to use data embedding.
Any "statement", "chance" or "boost" element may have one or more data blocks, represented as "data" tags. Each data block has a required "ref" attribute which is a reference to the type of the "data" element. Inside this tag, the data can be presented in any XML form.
Paraphrase below tells that jack@foo.org drives by car. It has an extra data tag with some tracking information.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/moving/drive" />
<how ref="pphml://adverb/vehicle/car" />
<data ref="pphml://data/track">
...
</data>
</statement>
</situation>
</paraphrase>
Descriptor elements are used to describe clauses in PPHML. There are three types of descriptors: "e-mail", "name" and "source" tags.
Any "subject" and "where" clause may contain an "e-mail" tag which can describe an entity or a place by its e-mail address.
This is a very simple paraphrase, which use e-mail addresses to describe both the subject and the place: "jack@foo.org stops at restaurant@foo.org."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
<where ref="pphml://place/entertainment/restaurant">
<e-mail>restaurant@foo.org</e-mail>
</where>
</statement>
</situation>
</paraphrase>
Any "clause" may contain a "name" tag which can describe a clause by its real name. Using this tag alone in a clause is not recommended.
This simple paraphrase use e-mail addresses and name strings to describe both the subject and the place: "Jack Smith stops at the Old Times Restaurant."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
<name>Jack Smith</name>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
<where ref="pphml://place/entertainment/restaurant">
<e-mail>restaurant@foo.org</e-mail>
<name>Old Times Restaurant</name>
</where>
</statement>
</situation>
</paraphrase>
Any "clause" may contain one or more "source" tags which can describe system dependent details. The "ref" attribute is a required property which is a reference to the type of the "source" element.
Sample below tells that jack@foo.org stops somewhere. The place is unknown, but there are two source elements which contain one location information and three WiFi hotspot name in order to provide easy decoding of this place.
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/stop" />
<where ref="pphml://place/unknown">
<source ref="pphml://source/portable/gps">
<attribute ref="pphml://attribute/location/latitude">0.765432</attribute>
<attribute ref="pphml://attribute/location/longitude">0.123456</attribute>
</source>
<source ref="pphml://source/portable/wifi">
<attribute ref="pphml://attribute/device/id">PublicNET</attribute>
<attribute ref="pphml://attribute/device/id">HRCoffe</attribute>
<attribute ref="pphml://attribute/device/id">NetIT</attribute>
</source>
</where>
</statement>
</situation>
</paraphrase>
PPHML documents use reference tokens (URI strings conform to RFC 2396) rather than real words to build statements. Each token starts with the "pphml://" prefix and has a structure like "pphml://<class>/<name>" or "pphml://<class>/<subclass>/<name>". The class fragment determines the main scope of the usage.
An entity reference token identifies someone or something. It is used to describe the simple subject of a statement. This reference token type is used in "subject" clauses.
pphml://entity/unknown
This URI refers to an unknown entity.
pphml://entity/person
This URI refers to a person.
pphml://entity/person/female
This URI refers to a female person.
pphml://entity/person/male
This URI refers to a male person.
pphml://entity/entertainment
This URI refers to any type of an entertainment.
pphml://entity/entertainment/pub
This URI refers to an entertainment entity: a pub.
pphml://entity/entertainment/restaurant
This URI refers to an entertainment entity: a restaurant.
pphml://entity/animal
This URI refers to an animal.
pphml://entity/animal/pet
This URI refers to a pet.
An action reference token identifies a verb. It is used to describe the simple predicate of a statement. This reference token type is used in "predicate" clauses.
pphml://action/unknown
This URI refers to an unknown action.
pphml://action/generic
This URI refers to any type of a generic action.
pphml://action/generic/arrive
This URI refers to a generic action: it means that someone arrives somewhere.
pphml://action/generic/is
This URI refers to a generic action: to be or to do something.
pphml://action/generic/pass
This URI refers to a generic action: to pass. It means that someone or something passes anything.
pphml://action/generic/shopping
This URI refers to a generic action: to shopping. It means that someone does shopping.
pphml://action/generic/start
This URI refers to a generic action: to start. It means that someone or something starts anything.
pphml://action/generic/stop
This URI refers to a generic action: to stop. It means that someone or something stops anything.
pphml://action/moving
This URI refers to any type of a moving action. It means that someone or something makes moving.
pphml://action/moving/drive
This URI refers to a moving action: to drive. It means that someone or something drives anything.
An object reference token identifies the object of a declarative sentence. This reference token type is used in "what" clauses.
pphml://object/unknown
This URI refers to an unknown object.
pphml://object/list
This URI refers to any type of a list object.
pphml://object/list/shopping
This URI refers to a shopping list object.
pphml://object/list/to-do
This URI refers to a to-do list object.
pphml://object/vehicle
This URI refers to any type of a vehicle object.
pphml://object/vehicle/car
This URI refers to a car as an object.
A place reference token identifies a location. It is used to describe the place of a predicate. This reference token type is used in "where" clauses.
pphml://place/unknown
This URI refers to an unknown place.
pphml://place/regular
This URI refers to any type of a regular place.
pphml://place/regular/home
This URI refers to a regular place: at home.
pphml://place/regular/school
This URI refers to a regular place: a school.
pphml://place/regular/shop
This URI refers to a regular place: a shop.
pphml://place/entertainment
This URI refers to any type of an entertainment place.
pphml://place/entertainment/pub
This URI refers to an entertainment place: a pub.
pphml://place/entertainment/restaurant
This URI refers to an entertainment place: a restaurant.
An adverb reference token identifies that how the subject does an action. This reference token type is used in "how" clauses.
pphml://adverb/unknown
This URI refers to an unknown adverb.
pphml://adverb/vehicle
This URI refers to an adverb: ...by any type of a vehicle.
pphml://adverb/vehicle/car
This URI refers to an adverb: ...by car.
A source type reference token identifies an input type.
pphml://source/portable/gsm
This URI refers to a GSM module of a portable unit as a source device.
pphml://source/portable/wifi
This URI refers to a WiFi module of a portable unit as a source device.
pphml://source/portable/zigbee
This URI refers to a ZigBee module of a portable unit as a source device.
pphml://source/portable/bluetooth
This URI refers to a Bluetooth module of a portable unit as a source device.
pphml://source/portable/gps
This URI refers to a GPS module of a portable unit as a source device.
pphml://source/portable/compass
This URI refers to a compass module of a portable unit as a source device.
pphml://source/portable/accelerometer
This URI refers to an accelerometer module of a portable unit as a source device.
pphml://source/portable/orientation
This URI refers to an orientation sensor module of a portable unit as a source device.
pphml://source/portable/pressure
This URI refers to a pressure sensor module of a portable unit as a source device.
pphml://source/portable/temperature
This URI refers to a temperature sensor module of a portable unit as a source device.
pphml://source/portable/camera
This URI refers to a camera of a portable unit as a source device.
pphml://source/portable/microphone
This URI refers to a microphone of a portable unit as a source device.
pphml://source/portable/keypad
This URI refers to a keypad of a portable unit as a source device.
pphml://source/portable/usb
This URI refers to a USB interface of a portable unit as a source device.
pphml://source/portable/system-clock
This URI refers to a system clock of a portable unit as a data source.
pphml://source/portable/power-management
This URI refers to a power management module of a portable unit as a data source.
pphml://source/social-network/library
This URI refers to a social network library as a source engine.
A data type reference token identifies how a data block can be interpreted.
pphml://data/undefined
This URI refers to an undefined data type.
pphml://data/image
This URI refers to a data type: an image.
pphml://data/list
This URI refers to a data type: a list.
pphml://data/text
This URI refers to a data type: a text.
pphml://data/track
This URI refers to a data type: a track.
An attribute reference token identifies a property type.
pphml://attribute/undefined
This URI refers to an undefined property type.
pphml://attribute/device/id
This URI refers to a property type: a device identifier.
pphml://attribute/device/name
This URI refers to a property type: a device name.
pphml://attribute/device/state
This URI refers to a property type: state of a device.
pphml://attribute/device/connected
This URI refers to a property type: a connected device.
pphml://attribute/device/disconnected
This URI refers to a property type: a disconnected device.
pphml://attribute/entity/first-name
This URI refers to a property type: first name of an entity.
pphml://attribute/entity/last-name
This URI refers to a property type: last name of an entity.
pphml://attribute/entity/nickname
This URI refers to a property type: nickname of an entity.
pphml://attribute/entity/age
This URI refers to a property type: age of an entity.
pphml://attribute/location/latitude
This URI refers to a property type: latitude of a location.
pphml://attribute/location/longitude
This URI refers to a property type: longitude of a location.
pphml://attribute/location/altitude
This URI refers to a property type: altitude of a location.
Samples below contain casual cases with roundabout paraphrases, drawed up in PPHTML documents.
Sample #1
It describes a simple situation: Jack arrived at home. He has a portable device with WiFi ability. At home, when he arrives, it connects to a hotspot, named JackHomeWiFi. This hotspot dedicated as Jack's home used wireless device.
EN: "jack@foo.org arrived at home."
HU: "jack@foo.org hazaérkezett."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/arrive" />
<where ref="pphml://place/regular/home">
<source ref="pphml://source/portable/wifi">
<attribute name="pphml://attribute/device/id">JackHomeWiFi</attribute>
</source>
</where>
</statement>
</situation>
</paraphrase>
When the previous paraphrase sent to a service (e.g. social network), Jack's full name added, and WiFi data changed to the location information.
EN: "Jack Smith arrived at home."
HU: "Jack Smith hazaérkezett."
<?xml version="1.0" ?>
<paraphrase>
<subject ref="pphml://entity/person/male">
<e-mail>jack@foo.org</e-mail>
<name>Jack Smith</name>
</subject>
<situation>
<statement>
<predicate ref="pphml://action/generic/arrive" />
<where ref="pphml://place/regular/home">
<source ref="pphml://source/social-network/library">
<attribute name="pphml://attribute/location/latitude">0.765432</attribute>
<attribute name="pphml://attribute/location/longitude">0.123456</attribute>
</source>
</where>
</statement>
</situation>
</paraphrase>