1

Тема: Вопрос относительно корректности работы с понятийной структурой DMOZ

День добрый, уважаемый Форум.

У меня есть задача. И есть варианты решения. Однако, я не уверен в корректности решений. К сожалению, в Google не смог найти ответы на свои вопросы. По этому решил просить Вас уделить мне немного времени, пожалуйста.

В общем случае суть задачи следующая. Есть некая понятийная структура каталога Dmoz http://rdf.dmoz.org/

Необходимо рассказать гипотетическому  алгоритму анализа RDFa структур Google что некие "сторонние" объекты связаны с существующей понятийной структурой. При чем, "рассказать" это нужно в рамках RDFa - по-скольку OWL Google, видимо, долго еще "понимать" не будет.

Понятийная структура - это файлы http://rdf.dmoz.org/rdf/structure.rdf.u8.gz  и  http://rdf.dmoz.org/rdf/content.rdf.u8.gz  (сталкивался неоднократно - xml в сжатом виде Google в определенных ситуациях "понимает").

Объем файлов не маленький. Но меня интересует, допустим, та часть файлов, которая посвящена описанию всего, что связано с объектом "часы".  Нужные фрагменты этих файлов "вырезаны", и находятся в файле watch_dmoz.txt, которые можно посмотреть в архиве к этому обращению.

Разобраться в идеологии построения структуры Dmoz оказалось возможно. Анализ структуры с пояснениями находится в watch_dmoz.rtf . (Тоже есть в архиве). Однако, далее - мне, пока, не хватает знаний в области идеологии RDFa.

Далее, есть три (последовательные) задачи, и есть предлагаемые варианты их решения. Однако, у меня есть сомнения по поводу корректности предлагаемых записей.

1. Задача состоит в том, что бы не нарушая идеологию построения понятийной структуры Dmoz,  корректно  вписать объект (в данном случае URL) в существующую понятийную структуру. Решение следующее:

<?xml version="1.0" encoding="UTF-8"?>

<RDF xmlns:r="http://www.w3.org/TR/RDF/"

xmlns:d="http://purl.org/dc/elements/1.0/"

xmlns="http://dmoz.org/rdf/"

xmlns:ds="http://rdf.dmoz.org/rdf/structure.rdf.u8.gz#"

xmlns:dd="http://rdf.dmoz.org/rdf/content.rdf.u8.gz#" >

<Topic r:id="dd:Top/Shopping/Jewelry/Watches">

    <catid>967923</catid>

    <link r:resource="http://watches-master.com/"></link>

</Topic>

<!-- Ресурс http://watches-master.com/ является еще одним, дополнительным, вложенным атрибутом объекта Top/Shopping/Jewelry/Watches -->

<ExternalPage about="http://watches-master.com/">

    <d:Title>Watches - Master</d:Title>

    <d:Description>The catalog of swiss watches breds</d:Description>

    <topic>dd:Top/Shopping/Jewelry/Watches</topic>

</ExternalPage>

</RDF>

Здесь Top/Shopping/Jewelry/Watches уже существующий объект в подключаемой структуре Dmoz. А http://watches-master.com/ вписываемая страница (не сайт, а именно страница, это важно). Проблема в том, что в подключаемых файлах Dmoz уже определен список подключаемых URL, и даны их описания. На сколько корректна предложенная запись с точки зрения подключения дополнительно еще одного или нескольких URL? Нет ли других ошибок в таком файле? Сработает ли такое "подключение" файлов Dmoz?

2. Вторая задача отличается тем, что должен быть задан новый объект Top/Shopping/Jewelry/Watches/Наручные_часы , который является еще одним, дополнительным подразделом в существующей структуре Dmoz. В этом случае URL, в свою очередь, является частью структуры уже нового объекта:

<?xml version="1.0" encoding="UTF-8"?>

<RDF xmlns:r="http://www.w3.org/TR/RDF/"

xmlns:d="http://purl.org/dc/elements/1.0/"

xmlns="http://dmoz.org/rdf/"

xmlns:ds="http://rdf.dmoz.org/rdf/structure.rdf.u8.gz#"

xmlns:dd="http://rdf.dmoz.org/rdf/content.rdf.u8.gz#"

xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">



<Topic r:id="Top/Shopping/Jewelry/Watches/Наручные_часы">

    <catid>967923int</catid>

                <d:Title>Наручные часы</d:Title>

                <d:Description>Описание вновь созданного дополнительного объекта</d:Description>

                <rdfs:comment>Вновь созданный дополнительный объект</rdfs:comment>

</Topic>



<Topic r:id="ds:Top/Shopping/Jewelry/Watches">

    <catid>967923</catid>

    <narrow r:resource="Russian:Top/Shopping/Jewelry/Watches/Наручные_часы"></narrow>

                <rdfs:comment>Новый объект является русско-язычным подразделом существующего в структуре dmoz </rdfs:comment>

</Topic>



<!-- Вновь созданный объект Top/Shopping/Jewelry/Watches/Наручные_часы [является еще одним (дополнительным!) русско-язычным подразделом объекта структуры dmoz Top/Shopping/Jewelry/Watches] на сколько корректно это утверждение? -->



<Topic r:id="Top/Shopping/Jewelry/Watches/Наручные_часы">

    <catid>967923int</catid>

    <link r:resource="http://watches-master.com/"></link>

</Topic>



<!-- url "http://watches-master.com/" является еще одним (дополнительным!) подразделом вновь созданного объекта Top/Shopping/Jewelry/Watches/Наручные_часы -->



<ExternalPage about="http://watches-master.com/">

    <d:Title>Watches - Master</d:Title>

    <d:Description>The catalog of swiss watches breds</d:Description>

    <topic>Top/Shopping/Jewelry/Watches/Наручные_часы</topic>

                <rdfs:comment>Описание URL, который является подразделом (в общем случае - еще одним подразделом) в вновь созданном объекте </rdfs:comment>

</ExternalPage>



</RDF>

Здесь вопрос - на сколько корректно, в рамках Dmoz, удалось реализовать логику "новый объект является еще одной (дополнительной к уже существующим)" русскоязычной составляющей  "родительского", заданного в присоединенном файле Dmoz.

3. Третья задача - та же структура и объекты, что и предидущие, за исключением того, что вновь созданный объект Top/Shopping/Jewelry/Watches/Часы   является не подразделом "родительского", а русско-язычным аналогом уже существующего в Dmoz. Код получился следующий:

<?xml version="1.0" encoding="UTF-8"?>

<RDF xmlns:r="http://www.w3.org/TR/RDF/"

xmlns:d="http://purl.org/dc/elements/1.0/"

xmlns="http://dmoz.org/rdf/"

xmlns:ds="http://rdf.dmoz.org/rdf/structure.rdf.u8.gz#"

xmlns:dd="http://rdf.dmoz.org/rdf/content.rdf.u8.gz#"

xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">



<Topic r:id="Top/Shopping/Jewelry/Watches/Часы">

    <catid>967923ext</catid>

                <d:Title>Часы</d:Title>

                <d:Description>Описание вновь созданного дополнительного объекта</d:Description>

                <rdfs:comment>Вновь созданный дополнительный объект</rdfs:comment>

</Topic>



<Alias r:id="Russian:ds:Top/Shopping/Jewelry/Watches">  <!--  На сколько корректна запись Russian:ds:Top/Shopping/Jewelry/Watches  -->

   <d:Title>Russian</d:Title>

   <Target r:resource="Top/Shopping/Jewelry/Watches/Часы"/>

   <rdfs:comment>Новый объект является русско-язычным аналогом существующего в структуре dmoz </rdfs:comment>

</Alias>



<!-- Вновь созданный объект Top/Shopping/Jewelry/Watches/Часы является русско-язычным аналогом англо-язычного объекта структуры dmoz Top/Shopping/Jewelry/Watches -->



<Topic r:id="Top/Shopping/Jewelry/Watches/Часы">

    <catid>967923ext</catid>

    <link r:resource="http://watches-master.com/"></link>

</Topic>



<!-- url "http://watches-master.com/" является подразделом вновь созданного объекта Top/Shopping/Jewelry/Watches/Часы -->



<ExternalPage about="http://watches-master.com/">

    <d:Title>Watches - Master</d:Title>

    <d:Description>The catalog of swiss watches breds</d:Description>

    <topic>Top/Shopping/Jewelry/Watches/Часы</topic>

                <rdfs:comment>Описание URL, который является подразделом (в общем случае - еще одним подразделом) в вновь созданном объекте </rdfs:comment>

</ExternalPage>

</RDF>

В этом случае вопрос - на сколько корректно удалось реализовать логику "вновь созданный объект является аналогом существующего". И не просто аналогом, а, следуя логике построения структуры Dmoz - русско-язычным аналогом. Кроме того, здесь смущает так же запись "<Alias r:id="Russian:ds:Top/Shopping/Jewelry/Watches">  "

Был бы очень признателен за любые конструктивные замечания.

С уважением.

Отредактировано Maksim (2011-05-28 16:29:53)

Post's attachments

DMOZ.ZIP 64 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

Thumbs up Thumbs down

2

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

Прошу совет у уважаемого Форума, пожалуйста.

Допустим, есть объекты:

<rdfs:Class rdf:about="Наручные часы"
    
<rdfs:subClassOf rdf:resource="Часы"/>
</rdfs:Class>

<rdfs:Class rdf:about="Wristwatch"
    
<rdfs:subClassOf rdf:resource="Watch"/>
</rdfs:Class>

Как именно, используя RDFa и DC (возможно свойство "language" из DC) можно корректно записать утверждение, что объект "Wristwatch" эквивалентен объекту "Наручные часы". Только один из них "ru", второй "en"?  Будет ли, в этом случае, иметь силу обратное утверждение.

Заранее благодарен за потраченное на ответы время.

Отредактировано Maksim (2011-06-11 22:23:20)

Thumbs up +1 Thumbs down

3

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

Приветствую уважаемый Форум.

Есть вопрос относительно RDFa.
Допустим, есть следующий заголовок в файле .rdf:


<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:dc="http://purl.org/dc/elements/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:base="http://rdf.data-vocabulary.org/#" rdf:typeOf="base:Product">

Вопрос первый. SemanticWorks "ругается" на строку rdf:typeOf="base:Product" - "The RDF element must not have attributes except namespace definitions."  Кто сможет ответить, почему?

Вопрос второй. Далее, стоит следующая задача. Создать некий объект, с названием, допустим "Corum".
За тем, корректно "рассказать", что главная страница созданного объекта "http://www.corum.ch/",
А само название объекта является брендом "brand" по определению из http://rdf.data-vocabulary.org/#
(можно заглянуть в http://rdf.data-vocabulary.org/ - там все понятно расписано).

Пытаюсь решить это следующей записью:

    <rdf:Description xml:lang="en" rdf:ID="Corum">
        <rdf:type rdf:resource="rdfs:Class"/>
        <dc:language>en</dc:language>
        <dc:title xml:lang="en" rdf:property="base:brand">Corum</dc:title>
        <dc:title.alternative xml:lang="en">Corum watch</dc:title.alternative>
        <dc:identifier dc:relation="isPartOf" dc:type="dcterms:URI" rdf:resource="base:url">"http://www.corum.ch/"</dc:identifier>                            </rdf:Description>

но диагностика "спотыкается" на "<dc:title xml:lang="en" rdf:property="base:brand">Corum</dc:title>"
Что я делаю не так?

Вопрос третий, совсем простой. Чем отличается запись типа rdf:ID="Corum" от записи типа rdf:about="Corum"?

Перед тем как обратиться с этими вопросами я прогуглил эту тему по первым двум вопросам. Но одно дело корректное описание в пределах соглашений RDFa и DC. "Понятное" таким инструментам как SemanticWorks. Совсем другое - одни и те же примеры "для web-дизайнеров", которые тиражируются и появляются в результатах поиска многократно.

Сразу же вспоминается Зорг из "Пятого элемента" - "Все надо делать самому..."

Отредактировано Maksim (2011-06-11 22:48:31)

Thumbs up +1 Thumbs down

4

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

3) about - позволяет указать какой именно ресурс описывается данным элементом,
a id - позволяет присвоить элементу конкретное значение идентификатора.

по остальным код допустимый, а валидный или нет, надо смотреть на схему RDF.

зачем вам SemanticWorks? wink

но если очень надо...

В протеже сделайте тоже, он сохранит вам образец кода валидного RDF, и перенесете его в  SemanticWorks

5

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

Спасибо. Что то уже начинаю понимать.

Тогда следующий вопрос.
С точки зрения basa=http://rdf.data-vocabulary.org/  понятие brand является свойством. Дословно:

<rdf:Property rdf:ID="brand">
<rdfs:domain rdf:resource="#Product"/>
</rdf:Property>

Но с точки зрения логики работы микроформатов, внутри микроформата Product свойство brand имеет значение Corum
Вот именно логику этого утверждения не могу записать.

Вот пример кода

    <rdf:Description xml:lang="en" rdf:ID="Corum">
        <rdf:type rdf:resource="rdfs:Class"/>
        <dc:title rdf:parseType="Literal">Corum</dc:title>
        <dc:title.alternative xml:lang="en">Corum watch</dc:title.alternative>
        <dc:relation rdf:resource="http://www.corum.ch/"/>
        <rdfs:domain rdf:resource="base:Product"/>
        <rdfs:SubPropertyOf rdf:resource="base:Brand"/>
    </rdf:Description>

Но здесь,  написано что объект "Corum" является подсвойством от brand. Что не логично:
- может ли сам объект являться свойством /подсвойством?!

В общем, не могу корректно записать логику " внутри домена Product свойство brand имеет значение Corum" или логику "Corum" - это название бренда, которое "привязано" к понятию brand из http://rdf.data-vocabulary.org/ .

Thumbs up Thumbs down

6

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

значением подсвойства/свойства может быть объект конечно... свойство типа такого-то имеет такое то значение, почти как в программировании...

7

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

Все. Теперь запаутался окончательно :-)
Т.е., если таки да, значением свойства может быть объект, то внутри описания объекта корректно будет сказать что он является не только объектом но и подсвойством!? Т.е. приведенная выше запись корректна?
Тогда где указана логика утверждение что объект "Corum" это значение (точнее, одно из множества возможных значений) свойства brand?

Отредактировано Maksim (2011-06-12 12:07:43)

Thumbs up Thumbs down

8

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

RDF Primer в помощь...

объект может содержать любые свойства/подсвойства и может вступать как результат в любые отношение с другими объектами.

9

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

Спасибо. Буду разбираться.
По ходу еще пару вопросов, пользуясь хорошим отношением к моим вопросам.

1. В предидущем коде есть запись
<dc:relation rdf:resource="http://www.corum.ch/"/>
чем логика ее работы принципиально отличалась бы от <rdfs:seeAlso rdf:resource="http://www.corum.ch/"/>

2. Не могу понять в чем смысл rdfs:isDefinedBy
Что есть "Определение предмета ресурсов"?  В чем логика их введения в RDFa?

Заранее извиняюсь, если вопросы ламмерские.

Thumbs up Thumbs down

10

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

Shcherbak пишет:

значением подсвойства/свойства может быть объект конечно... свойство типа такого-то имеет такое то значение, почти как в программировании...

Тогда не понятно как КОНКРЕТНО это записать.
    <rdf:Description xml:lang="en" rdf:ID="Corum">
        <rdf:type rdf:resource="rdfs:Class"/>
        <dc:title rdf:parseType="Literal">Corum</dc:title>
        <dc:title.alternative xml:lang="en">Corum watch</dc:title.alternative>
        <dc:relation rdf:resource="http://www.corum.ch/"/>
        <rdfs:domain rdf:resource="base:Product"/>
        <rdfs:SubPropertyOf rdf:resource="base:Brand"/>
    </rdf:Description>

Если я правильно понимаю логику этого кода, то объект rdf:ID="Corum" является подсвойством свойства rdf:resource="base:Brand".

Тогда где само значение этого подсвойства?
Видимо где то нужен <rdf:value rdf:resource="#Corum"/>

Но тогда получается что значением объекта Corum является сам объект. И, с точки зрения парсера, он ссылается сам на себя, и так до бесконечности. И не понятен механизм присваивания свойству brand значения / объекта Corum.

Опять же. Ключевой момент, который не знаю как выразить в коде. Объект "Corum" - это ЗНЕЧЕНИЕ свойства brand а НЕ ПОДСВОЙСТВО brand. Более того, это ОДНО ИЗ ВОЗМОЖНЫХ значений из открытого множества значений, и справедливое только в пределах описываемого класса. С этой точки зрения приведенная выше запись, видимо, тоже не корректна.

Резюмирую - я понимаю логику Ваших утверждений (думаю, что понимаю). Но совершенно не понимаю как именно корректно реализовать поставленную задачу на RDFa + DC. Как именно это выразить в коде?

Внутренний голос подсказывает мне, что эта задача не является не решаема принципиально.

Отредактировано Maksim (2011-06-12 13:23:23)

Thumbs up Thumbs down

11

Re: Вопрос относительно корректности работы с понятийной структурой DMOZ

Есть вопрос разбирающимся в тогкостях RDFa и DC:
Задача. Нужно "рассказать", что страница со ссылкой http://ssylka_na_obiekt есть описание материального объекта.
Вариант кода следующий:

<dc:format  rdf:resource="http://ssylka_na_obiekt">#dct:PhysicalResource</dc:format>

при условии, что ранее подключены:
xmlns:dc="http://purl.org/dc/elements/1.0/”
xmlns:dct="http://purl.org/dc/terms/”

При чем, в последнем есть строки:

<rdf:Description rdf:about="http://purl.org/dc/terms/PhysicalResource">
<rdfs:label xml:lang="en-US">Physical Resource</rdfs:label>
<rdfs:comment xml:lang="en-US">A material thing.</rdfs:comment>
<rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
<dcterms:issued>2008-01-14</dcterms:issued>
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<dcterms:hasVersion rdf:resource="http://dublincore.org/usage/terms/history/#PhysicalResource-001"/>
</rdf:Description>

Думаю, что код не корректен по отношению к набору допустимых значений, которые может принимать "format" . Как правильно использовать "PhysicalResource", кто знает?

Thumbs up Thumbs down