Создание тройки для http://schema.org/workLocation

Я создаю файл Turtle, который будет содержать триплеты для конкретного человека типа schema:Person.

Я застрял в определении троек для схемы человека: workLocation. Согласно документации, диапазон schema:workLocation включает схема:Место, и у места может быть схема:адрес. который должен иметь тип schema:PostalAddress. Я создал следующее:

@prefix schema: <http://schema.org/> .
<http://www.example.com/ns/person/1> a schema:Person ;
                                     schema:givenName "XXX" ;
                                     schema:familyName "XXXX" ;
                                     schema:addressCountry "USA" .

Это правильный способ описания адреса? Как указать место работы человека?


person Anubhav    schedule 22.07.2014    source источник


Ответы (1)


Поработаем тройка за тройкой, а потом можно будет подумать, есть ли способы подчистить презентацию. Во-первых, вы начали с объявления префикса и идентификации ресурса с типом person:

@prefix schema: <http://schema.org/> .
@prefix : <http://stackoverflow.com/q/24891549/1281433/> .

:person1 a schema:Person .

Затем вы хотите добавить место работы. Что ж, место работы будет иметь значение и будет иметь тип Place или Контактная точка. Допустим, это место. Затем добавляем:

:person1 schema:workLocation :place62 .
:place62 a schema:Place .

Теперь это место может быть связано с PostalAddress с помощью свойства schema:address:

:place62 schema:address :address89 .
:address89 a schema:PostalAddress .

Существует множество свойств, которые мы могли бы использовать для описания PostalAddress. В этом случае у нас может быть что-то вроде (используя образцы значений с этой страницы):

:address89 schema:addressLocality "Mountain View" .
:address89 schema:addressRegion "CA" .
:address89 schema:postalCode "94043" .
:address89 schema:streetAddress "1600 Amphitheathre Pkwy" .

Теперь почтовый адрес также работает со свойствами из ContactPoint, поэтому вам могут понадобиться некоторые из них, но вы можете определить их таким же образом. Итак, теперь у вас есть эти данные:

@prefix schema: <http://schema.org/> .
@prefix : <http://stackoverflow.com/q/24891549/1281433/> .

:person1 a schema:Person .
:person1 schema:workLocation :place62 .
:place62 a schema:Place .
:place62 schema:address :address89 .
:address89 a schema:PostalAddress .
:address89 schema:addressLocality "Mountain View" .
:address89 schema:addressRegion "CA" .
:address89 schema:postalCode "94043" .
:address89 schema:streetAddress "1600 Amphitheathre Pkwy" .

Если вы не собираетесь повторно использовать место и адрес (что вы могли бы сделать, если вы описываете группу людей в одном и том же месте), вы, вероятно, можете использовать пустые узлы вместо узлов URI. Делая это и используя некоторый синтаксический сахар, который предоставляет Черепаха, вы получаете:

@prefix schema: <http://schema.org/> .
@prefix : <http://stackoverflow.com/q/24891549/1281433/> .

:person1 a schema:Person ;
         schema:workLocation [ a schema:Place ;
                               schema:address [ a schema:PostalAddress ;
                                                schema:addressLocality "Mountain View" ;
                                                schema:addressRegion "CA" ;
                                                schema:postalCode "94043" ;
                                                schema:streetAddress "1600 Amphitheathre Pkwy" ] ] .
person Joshua Taylor    schedule 22.07.2014