API Поиска по блогам

Yandex extension of FOAF

Abstract

Yandex extension of FOAF introduces classes and properties required to describe users' profiles and their blog activities. It represents an attempt to make Semantic Web even more convenient for automated search.

This document contains a detailed description of this extension.

This visual layout and structure of the specification has been adapted from the FOAF Vocabulary Specification by Dan Brickley and Libby Miller.

Introduction

The main objective of Yandex extension is to introduce classes and properties, that can be used for a detailed description of blog activities, such as posting comments, reading blogs, etc.

This extension is also helpful for authoring profiles. It provides convenient means to store personal information, such as biography, biometrical characteristics and names.

Using the Yandex FOAF extension you can easily specify precise location, by storing country, region, city and postal address in separate properties.

Terminology and Notation

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

The XML Namespace URI that MUST be used by implementations of this specification is:

xmlns ya="http://blogs.yandex.ru/schema/foaf"

Yandex extension at a glance

An a-z index of terms, by class and by property

Classes: | ya:Comments | ya:Links | ya:Posts | ya:Readers | ya:Syndicated |

Properties: | ya:address | ya:bio | ya:blogActivity | ya:сity | ya:сountry | ya:сreationDate | ya:dateFinish | ya:dateStart | ya:feed | ya:firstName | ya:height | ya:middleName | ya:posted | ya:received | ya:region | ya:school | ya:secondName | ya:weight |

A categorized index of terms

Blogs activityPersonal informationGeographical positionTime

ya:BlogActivityClass

ya:Comments

ya:Links

ya:Posts

ya:Readers

ya:Readers

ya:blogActivity

ya:Syndicated

ya:feed

ya:posted

ya:received

ya:firstName

ya:middleName

ya:secondName

ya:bio

ya:height

ya:weight

ya:school

ya:address

ya:сity

ya:сountry

ya:region

ya:сreationDate

ya:dateFinish

ya:dateStart

Cross-reference: Listing Classes and Properties

Yandex extension introduces the following classes and properties. See the RDF Schema for more details.

Class: ya:Comments

Comments - messages that can be posted in a blog as replies (comments) to posts

in-range-of: ya:blogActivity

in-domain-of: ya:feed, ya:posted, ya:received

The ya:Comments class represents messages that can be posted in a blog as replies to posts. Comments usually have a threaded structure and therefore MAY be viewed as RSS-feeds.

Using the ya:Comments class you can specify links to these RSS-feeds, as well as describe any changes, such as adding and removing comments.

Example

<ya:blogActivity>
  <ya:Comments>
    <ya:feed rdf:resource="http://example.com/recent_comments_rss/" dc:type="application/rss+xml"/>
    <ya:posted>123</ya:posted>
    <ya:received>123</ya:received>
  </ya:Comments>
</ya:blogActivity>

back to top

Class: ya:Links

Links - links to a blog

in-range-of: ya:blogActivity

in-domain-of: ya:received

The ya:Links class represents information about links to someone's blog.

Currently only the number of links can be specified.

Example

<ya:blogActivity>
  <ya:Links>
    <ya:received>123</ya:received>
  </ya:Links>
</ya:blogActivity>

back to top

Class: ya:Posts

Posts - messages that can be posted in a blog

in-range-of: ya:blogActivity

in-domain-of: ya:posted

The ya:Posts class represents messages, posted by a user in his or her blog. Posts can be threaded and therefore be viewable as RSS-feeds.

Using the ya:Posts class you can specify links to these RSS-feeds, as well as the total number of posts in a feed.

Example

<ya:blogActivity>
  <ya:Posts>
    <ya:feed rdf:resource="http://example.com/users/user/rss/" dc:type="application/rss+xml"/>
    <ya:posted>123</ya:posted>
  </ya:Posts>
</ya:blogActivity>

back to top

Class: ya:Readers

Readers - readers of a blog

in-range-of: ya:blogActivity

in-domain-of: ya:received

The ya:Readers class represents information about readers of a blog.

Currently only the number of readers can be specified.

Example

<ya:blogActivity>
  <ya:Readers>
    <ya:received>123</ya:received>
  </ya:Readers>
</ya:blogActivity>

back to top

Class: ya:Syndicated

Syndicated - a syndicated account

in-range-of: foaf:nick | foaf:weblog

in-domain-of: foaf:knows

Many blog hostings offer their readers an opportunity to read RSS-feeds from other hostings. The ya:Syndicated class represents a syndicated account, which automatically updates with a feed's latest content. Syndicated accounts are added to friends lists.

Example

<foaf:knows>
  <ya:Syndicated>
    <foaf:nick>exler_rss</foaf:nick>
    <rdfs:seeAlso       rdf:resource="http://syndicated.livejournal.com/exler_rss/data/foaf/"/>
    <rdfs:seeAlso rdf:resource="http://exler.ru/blog/blog.xml"/>
    <foaf:weblog rdf:resource="http://syndicated.livejournal.com/exler_rss/"/>
  </ya:Syndicated>
</foaf:knows>

back to top

Class: ya:BlogActivityClass

BlogActivityClass - activity in a blog

in-range-of: ya:feed ya:posted ya:received

in-domain-of: ya:blogActivity

The ya:BlogActivityClass class represents any activity that MAY be performed in a blog. This class SHOULD NOT be used directly. Instead you SHOULD use classes, which refer to a particular activity, e. g. ya:Comments, ya:Links, ya:Posts and ya:Readers.

back to top

Property: ya:blogActivity

blogActivity - activity in a blog

domain: foaf:Agent

range: ya:BlogActivityClass

The ya:blogActivity property relates a foaf:Agent (usually a foaf:Person) to an activity, that MAY be performed in a blog.

The activities include adding or removing comments (ya:Comments ), posts (ya:Posts ) or links (ya:Links), changing the number of readers (ya:Readers), etc.

Example

Comments:

<ya:blogActivity>
    <ya:Comments>
        <ya:feed rdf:resource="recent comments rss" dc:type="application/rss+xml"/>
        <ya:posted>123</ya:posted>
        <ya:received>123</ya:received>
    </ya:Comments>
</ya:blogActivity>

Posts:

<ya:blogActivity>
    <ya:Posts>
        <ya:feed rdf:resource="http://www.valez.ru/users/valez/rss/" dc:type="application/rss+xml"/>
        <ya:posted>123</ya:posted>
    </ya:Posts>
</ya:blogActivity>

Links:

<ya:blogActivity>
    <ya:Links>
        <ya:received>123</ya:received>
    </ya:Links>
</ya:blogActivity>

Readers:

<ya:blogActivity>
    <ya:Readers>
        <ya:received>123</ya:received>
    </ya:Readers>
</ya:blogActivity>

back to top

Property: ya:feed

feed - a feed (e.g., RSS, Atom, etc.)

domain: ya:BlogActivityClass

range: http://www.w3.org/2002/07/owl#Thing

The ya:feed property relates an activity specified with a ya:blogActivity property to an RSS-feed (e.g., RSS, Atom, etc.).

Example

<ya:blogActivity>
    <ya:Posts>
        <ya:feed rdf:resource="http://www.valez.ru/users/valez/rss/" dc:type="application/rss+xml"/>
        <ya:posted>123</ya:posted>
    </ya:Posts>
</ya:blogActivity>

back to top

Property ya:posted

posted - the number of posted messages

domain: ya:BlogActivityClass

range: http://www.w3.org/2001/XMLSchema#nonNegativeInteger

The ya:posted property relates an activity specified with a ya:blogActivity property to the number of messages posted to a blog, forum, etc. as a result of this activity.

Example

<ya:blogActivity>
    <ya:Posts>
        <ya:feed rdf:resource="http://www.valez.ru/users/valez/rss/" dc:type="application/rss+xml"/>
        <ya:posted>123</ya:posted>
    </ya:Posts>
</ya:blogActivity>

back to top

Property: ya:received

received - the number of received elements

domain: ya:BlogActivityClass

range: http://www.w3.org/2001/XMLSchema#nonNegativeInteger

The ya:received property relates an activity specified with a ya:blogActivity property to the number of elements produced as a result of this activity.

Example

<ya:blogActivity>
    <ya:Readers>
        <ya:received>5</ya:received>
    </ya:Readers>
</ya:blogActivity>

back to top

Property: ya:firstName

firstName - first name (as opposed to middle name and last name)

domain: foaf:Person

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:firstName property relates a foaf:Person to a string that contains person's first name.

Note. 

The properties ya:firstName, ya:secondName and ya:middleName represent personal names, which consist of three parts: first name, middle name and last name (e. g. Russian names). The properties allow to store parts of three-part names (e. g. Russian patronymic names) separately, as opposed to foaf:name, which wraps the same information into a text string.

Example

<foaf:Person>
    <ya:firstNode>Ivan</ya:firstNode>
    <ya:middleName>Petrovich</ya:middleName>
    <ya:secondName>Pupkin</ya:secondName>
    ...
</foaf:Person>

back to top

Property: ya:middleName

middleName - middle name (as opposed to first name and last name)

domain: foaf:Person

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:middleName property relates a foaf:Person to a string that contains person's middle name.

Note. 

The properties ya:firstName, ya:secondName and ya:middleName represent personal names, which consist of three parts: first name, middle name and last name (e. g. Russian names). The properties allow to store parts of three-part names (e. g. Russian patronymic names) separately, as opposed to foaf:name, which wraps the same information into a text string.

Example

<foaf:Person>
    <ya:firstNode>Ivan</ya:firstNode>
    <ya:middleName>Petrovich</ya:middleName>
    <ya:secondName>Pupkin</ya:secondName>
    ...
</foaf:Person>

back to top

Property: ya:secondName

secondName - last name (as opposed to first name and middle name)

domain: foaf:Person

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:secondName property relates a foaf:Person to a string that contains person's last name.

Note. 

The properties ya:firstName, ya:secondName and ya:middleName represent personal names, which consist of three parts: first name, middle name and last name (e. g. Russian names). The properties allow to store parts of three-part names (e. g. Russian patronymic names) separately, as opposed to foaf:name, which wraps the same information into a text string.

Example

<foaf:Person>
    <ya:firstNode>Ivan</ya:firstNode>
    <ya:middleName>Petrovich</ya:middleName>
    <ya:secondName>Pupkin</ya:secondName>
    ...
</foaf:Person>

back to top

Property: ya:bio

bio - a freeform biography

domain: foaf:Person

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:bio property relates a foaf:Agent (usually a foaf:Person) to a textual string that contains a freeform personal biography.

Example

<foaf:Person>
    <ya:bio>
        The eldest of three brothers, von Neumann was born Neumann János Lajos (in Hungarian the family name comes first) in Budapest, Hungary, to a wealthy non-practicing Jewish family. His father was Neumann Miksa (Max Neumann), a lawyer who worked in a bank. His mother was Kann Margit (Margaret Kann). Von Neumann's ancestors had originally immigrated to Hungary from Russia.
        ...
        Note: material from Wikipedia, the free encyclopaedia (http://en.wikipedia.org/wiki/John_von_Neumann#Biography)
    </ya:bio>
    ...
</foaf:Person>

back to top

Property: ya:height

height - height of a person

domain: foaf:Person

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:height property relates a foaf:Agent (usually a foaf:Person) to a textual string that contains information about person's height. Height SHOULD be specified in centimeters and MAY be expressed as a single number or as a range (lower and higher limits separated with a dash "-").

Example

Height specified as a number:

<foaf:Person>
    <ya:height>175</ya:height>
    ...
</foaf:Person>

Height specified as a range:

<foaf:Person>
    <ya:height>190-210</ya:height>
    ...
</foaf:Person>

back to top

Property: ya:weight

weight - weight of a person

domain: foaf:Person

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:weight property relates a foaf:Agent (usually a foaf:Person) to a textual string that contains information about person's weight. Height SHOULD be specified in kilogrammes and MAY be expressed as a single number or as a range (lower and higher limits separated with a dash "-").

Example

Weight specified as a number:

<foaf:Person>
    <ya:weight>75</ya:weight>
    ...
</foaf:Person>

Weight specified as a range:

<foaf:Person>
    <ya:weight>80-100</ya:weight>
    ...
</foaf:Person>

back to top

Property: ya:school

school - a school or other educational establishment

domain: foaf:Person

range: http://www.w3.org/2002/07/owl#Thing

The ya:school property relates a foaf:Agent (usually a foaf:Person) to an anonimous class "School" (not implemented). The term "school" can be applied to any educational establishment.

Example

<foaf:Person>
    <ya:school rdf:resource="http://link-to-filter-by-school" ya:dateStart="2003-09" ya:dateFinish="2007-12" dc:title="St. Petersburg State University"/>
</foaf:Person>

back to top

Property: ya:address

address - an address

domain: foaf:Agent

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:address property relates a foaf:Agent (usually a foaf:Person) to a textual string that contains an address.

Example

<foaf:Person>
    <ya:address
        dc:title="80539 Munic, Maximilianstrasse 31"
        rdf:resource="http://maps.yandex.ru/?text=80539 Munic, Maximilianstrasse 31"/>
</foaf:Person>

back to top

Property: ya:city

city - a city

domain: foaf:Agent

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:сity property relates a foaf:Agent (usually a foaf:Person) to a textual string that contains the name of a city.

Example

<foaf:Person>
    <ya:city
        dc:title="Munic"
        rdf:resource="http://maps.yandex.ru/?text=Munic"/>
</foaf:Person>

back to top

Property: ya:region

region - a region

domain: foaf:Agent

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:region property relates a foaf:Agent (usually a foaf:Person) to a textual string that contains the name of a region.

Example

<foaf:Person>
    <ya:region
        dc:title="Bavaria"
        rdf:resource="http://maps.yandex.ru/?text=Bavaria"/>
</foaf:Person>

back to top

Property: ya:country

country - a country

domain: foaf:Agent

range: http://www.w3.org/2000/01/rdf-schema#Literal

The ya:сountry property relates a foaf:Agent (usually a foaf:Person) to a textual string that contains the name of a country.

Example

<foaf:Person>
    <ya:country
        dc:title="Germany"
        rdf:resource="http://maps.yandex.ru/?text=Germany"/>
</foaf:Person>

back to top

Property: ya:creationDate

creationDate - creation date

domain: http://www.w3.org/2002/07/owl#Thing

range: http://www.w3.org/2001/XMLSchema#dateTime

The ya:сreationDate property relates a thing to the date and time of its creation. The time format should be ISO8601.

Example

<foaf:weblog rdf:resource="http://www.valez.ru/" ya:creationDate="2002-07-17T15:07:51" dc:title="ValeZ"/>

back to top

Property: ya:dateStart

dateStart - opening date

domain: http://www.w3.org/2002/07/owl#Thing

range: http://www.w3.org/2001/XMLSchema#dateTime

The ya:dateStart property relates a process to its opening date and time. The time format should be ISO8601.

Yandex.Blogs Search uses this property together with the ya:school property to specify the starting date of the learning process.

Example

<ya:school rdf:resource="http://link-to-filter-by-school" ya:dateStart="2003-09" ya:dateFinish="2007-12" dc:title="St. Petersburg State University"/>

back to top

Property: ya:dateFinish

dateFinish - closing date

domain: http://www.w3.org/2002/07/owl#Thing

range: http://www.w3.org/2001/XMLSchema#dateTime

The ya:dateFinish property relates a process to its closing date and time. The time format should be ISO8601.

Yandex.Blogs Search uses this property together with the ya:school property to specify the closing date of the learning process.

Example

<ya:school rdf:resource="http://link-to-filter-by-school" ya:dateStart="2003-09" ya:dateFinish="2007-12" dc:title="St. Petersburg State University"/>

back to top