2016-05-24 5 views
1

Я написал следующий XML для графа что-то вроде:RDF/XML для графа

`Person ------> Organization` 
`Person ------> name` 

и организация далее уже на узле

`Organization----->Title` 
<?xml version="1.0"?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:foaf="http://www.example.org/terms/"> 

    <rdf:Description rdf:about="person"> 
    <foaf:name>Usman</foaf:name> 
    </rdf:Description> 

Но я не знаю, где добавить узел organization с его дополнительным дочерним узлом в качестве заголовка?

ответ

2

Написание RDF/XML вручную очень подвержено ошибкам, и моя самая сильная рекомендация - записать в другом формате, а затем преобразовать его в RDF/XML. RDF/XML не предназначен для чтения человеком, и один и тот же график RDF может быть представлен в RDF/XML разными способами.

Я бы начать писать следующий Turtle документ (в качестве примера):

@prefix : <http://example.org/> 

:john a :Person . 
:john :hasName "John" . 
:john :belongsTo :company42 . 

:company42 a :Company . 
:company42 :hasName "The Company" . 

Тогда, если вам нужен RDF/XML, вы можете преобразовать его, используя только о любой библиотеке RDF там, чтобы получить:

<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns="http://example.org/"> 
    <Person rdf:about="http://example.org/john"> 
    <hasName>John</hasName> 
    <belongsTo> 
     <Company rdf:about="http://example.org/company42"> 
     <hasName>The Company</hasName> 
     </Company> 
    </belongsTo> 
    </Person> 
</rdf:RDF> 

Чтобы выделить изменения в RDF возможностей/XML, здесь тот же RDF граф, по-прежнему в RDF/XML:

<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns="http://example.org/" > 
    <rdf:Description rdf:about="http://example.org/john"> 
    <rdf:type rdf:resource="http://example.org/Person"/> 
    <hasName>John</hasName> 
    <belongsTo rdf:resource="http://example.org/company42"/> 
    </rdf:Description> 
    <rdf:Description rdf:about="http://example.org/company42"> 
    <rdf:type rdf:resource="http://example.org/Company"/> 
    <hasName>The Company</hasName> 
    </rdf:Description> 
</rdf:RDF> 

Гораздо проще использовать читаемые человеком форматы и записываемые человеком формы, такие как Черепаха. По мере того, как вы становитесь более опытными с Turtle, вы можете использовать удобные сокращения, которые он позволяет. Например, на приведенном выше графике можно записать так, что экономит набрав:

@prefix : <http://example.org/> 

:john a :Person ; 
     :hasName "John" ; 
     :belongsTo :company42 . 

:company42 a :Company ; 
      :hasName "The Company" . 
+0

Там также [RDF Translator] (http://rdf-translator.appspot.com/), который можно использовать для преобразования между сериализацией RDF –