Help:Властивості і типи

Властивості і типи - це основний спосіб введення семантичних даних у Semantic MediaWiki. Властивості можна охарактеризувати як "категорії для значень". Для їх використання застосовується проста розмітка:


 *  Назва властивості::значення властивості  

Це твердження визначає значення для властивості із заданим іменем. Сторінка, де це використано, просто покаже текст: значення.

Гіперланки у властивостях
Розглянемо статтю про Київ. Ця стаття містить гіперланки на інші статті: Київська область, Україна, Поділ. Проте зв'язок з Україною має особливе значення: Київ є столицею України. Для того, щоб зробити цей зв'язок зрозумілим для комп'ютера, в Семантичній МедіаВікі можна встановити властивість наступним чином:

столиця::України

В статті буде відображено тільки слово "України". Додатковий текст столиця є назвою властивості, що класифікує зв'язок із Україною.

Для спрощення повторного використання кожна властивість має власну статтю аналогічно до категорій. Для перегляду всіх властивостей, що використовуються, можна скористатись Special:Properties. Всі статті про властивості мають приставку Property:, щоб відрізняти їх від інших. Можна також переглянути Special:Search для пошуку існуючих властивостей. Сторінки властивостей можуть бути порожніми, але бажано додавати опис, що пояснює призначення властивості і її правильне використання.

Є різні способи додання властивостей на сторінки:

Перетворення на властивості числових значень в тексті
Наприклад, в статті про Київ наведено чисельність його населення. Для полегшення комп'ютерної обробки можна створити властивість для чисельності населення наступним чином:

населення::2 814 258.

Це працює добре, проте створює гіперланку на сторінку "2 814 258". Крім того, якщо ви хочете створити список усіх міст України відсортований за населенням, слід врахувати, що числовий порядок сортування відрізняється від абеткового. Наприклад в абетковому порядку 1 000 000 розташований раніше ніж 25. Слід вказати, що населення - це число, а не гіперланка. Це можна зробити вказавши тип для властивості населення. Дивіться datatypes для отримання додаткових відомостей.

Назви властивостей
Надання назв властивостям є важливішим, ніж можна здатись при поверхневому розгляді. Назва властивості мусить виключати двозначність і непорозуміння. Доброю практикою є створення назв властивостей у вигляді словосполучення. Ось приклад:

Українська столиця називається Київ. ↔ Київ є столицею України.

Можна в обох випадках створити властивість із назвою "Столиця", а можна передати значення точніше. Перше речення каже, що Україна має столицю з назвою Київ. Тому краще назвати властивість "Має столицю". В другому реченні вказано, що Київ є столицею України. Тож краще скористатись назвою "Є столицею" у цьому випадку. Для уникнення двозначності розмітка може бути наступною:

Столиця України називається Має столицю::Київ. ↔ Є столицею::Київ - столиця України.

З технічних причин назва властивості не може співпадати з назвою типу даних.

На сайті розробника є сторінка, присвячена створенню властивостей.

Типи властивостей
Семантична МедіаВікі має кілька вбудованих типів даних, котрі можна вибирати для властивостей. Для населення можна вибрати тип "Число". Для цього є вбудована властивість Property:Has type. Тож на сторінці, що відповідає властивості населення слід вказати тип даних:

Has type::number

В Семантичній МедіаВікі є ряд спеціальних властивостей на зразок Property:Has type. Незалежно чи мають ці властивості свої власні сторінки, вони мають спеціальне вбудоване значення і не оцінюються як інші властивості.

Типи даних є дуже важливими для оцінювання властивостей. 1) Типи даних визначають, як слід обробляти надані значення, наприклад для відображення чи сортування. 2) Також вони потрібні для розуміння, які значення є однаковими; наприклад 2015 і 2 015. 3) Деякі типи даних можуть мати спеціфічну поведінку, як показано нижче. Ось чому кожна властивість має тип даних.

За замовчування властивостям надається тип даних сторінка, що відображається гіперланкою. Варто вказувати тип для кожної властивості для уникнення непорозумінь або подальшого перевизначення типів. Також адміністратор сайту може змінити тип за замовчуванням.

Розмітка для властивостей, які є посиланнями на сторінки, також працює для властивостей інших типів даних. Ось ще кілька прикладів:

Перелік типів даних
Використовуючи різні типи, властивості можна описати різні види значень. Повний перелік типів доступний на спеціальній сторінці типів. Перелік можна сформувати за допомогою запиту, правильно вказавши всі параметри

Перелічені і дозволені значення
На додачу до встановлення типу для властивості, ви можете обмежити значення, котрих вони можуть набувати, заданим набором (такий собі білий список). Це робиться за допомогою спеціальної властивості Property:Allows value для перелічення дозволених значень. Це можна зробити для кожного типу даних.

Одиниці вимірювання
Тип кількість дозволяє одиницям вимірювання після числових значень відрізняти значення (наприклад астрономічні одиниці і метри). Для автоматичної конвертації слід визначити кожний тип, як описано в документації про одиниці вимірювання. Значення властивостей тоді будуть автоматично перетворюватись між різними одиницями вимірювання, тож користувачі зможуть використовувати улюблену одиницю вимірювання в кожній статті і ще й порівнювати зі значеннями в інших статтях.

Обернені властивості
Since SMW 1.5.0, it is possible to invert the direction of a property with datatype Page. See the respective help page for detailed information.

Спеціальні властивості
Спеціальна властивість Property:Has type використовується для визначення типів властивостей. Є також інші визначені спеціальні властивості, що мають спеціальне призначення (навіть, якщо для них не створені відповідні сторінки). Ми не можемо використовувати їх імена для створення власних властивостей, але можемо використовувати їх так само, як інші властивості. Для детальної інформації дивіться статтю англійською мовою.

Використання функції #set
Instead of using the standard double-brackets markup, you can also define semantic data using the #set parser function. This function takes in pairs of property names and values and stores them semantically; but it does not print anything to the screen. An example call would be:

The #set call is specifically helpful when trying to save a String or Text value that contains square brackets, such as wiki-links; such brackets often don't work with conventional SMW markup.

Використання функції #set
Замість використання стандартних подвійних дужок, можна також позначати семантичні дані за допомогою функції #set. Ця функція використовує в парі назву властивості і значення, але не виводить значень на екран.Наприклад:

Виклик функції #set особливо корисний, коли потрібно зберегти текстове значення, що містить квадратні дужки.

Дивіться Help:Recurring events для отримання більш детальних відомостей.

Користування попередніми версіями
Up to SMW 1.5.6, datatypes had individual wiki pages in their own namespace called "Type". This was abolished to reduce the number of extra namespaces. You may still find expressions like "Type:Number" in places in this wiki. Both writings are accepted for assigning a datatype to a property.

In very early versions of SMW, properties with datatype Page were known as relations and only those used double colons (::) as the separator between property name and link text. All other properties (numbers, strings, etc.) were known as attributes and had to use colon equals (:=) as the separator.

See Upgrading from SMW 0.7 to SMW 1.0 for other changes in SMW 1.0; if you're still using the older version of SMW, see semweb:Help:Annotation (SMW0.7) for documentation of Annotations in version 0.7.