Граф рабочего процесса как RDF?

Я новичок в RDF и, возможно, мой вопрос слишком глуп, чтобы его задавать.

У меня есть следующий рабочий процесс, который я пытаюсь представить как RDF. Я понимаю теории, лежащие в основе RDF и его использования, но я застрял в том, как начать создавать RDF для этого графа. Буду признателен за любую помощь.

Заранее спасибо.

~ Кодера

Сетевой график


person PCoder    schedule 20.02.2012    source источник


Ответы (1)


Для начала вам нужно смоделировать ребра с помощью свойств RDF, например:

:propose rdf:type rdf:Property;
    rdfs:label "propose".
:accept rdf:type rdf:Property;
    rdfs:label "accept".

Затем вы можете использовать их, чтобы связать M (1..N):

:M1 :propose :M2.
:M2 :propose :M3.

Это примерно сформирует график RDF, представляющий диаграмму, которая у вас есть выше. Вы можете прикрепить дополнительные свойства к каждому M (1..N) в соответствии с требованиями вашего приложения или смоделировать их как объекты rdfs: Class и связать свои свойства с экземплярами этих классов.

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

Что касается инструментов для создания вашего приложения, лучше всего начать с Sesame или Jena API. Они предоставляют все необходимое для чтения, записи и использования RDF. Я рекомендую «Сезам», я думаю, что им проще пользоваться, и в нем доступно больше опций для баз данных. Если вы не программист на Java, есть несколько вариантов, например rdflib для python и dotNetRdf для .Net.

person Michael    schedule 20.02.2012
comment
Спасибо за подробный ответ. Я решил смоделировать проблему как набор rdfs:class. У меня два класса Node и Arc; отношения: hasIncomingArc, hasOutgoingArc, hasSourceNode, hasDestinationNode. Я планирую использовать Jena и SPARQL для своего приложения, так как я поиграл с ними на нескольких примерах и чувствую себя комфортно. - person PCoder; 21.02.2012