Gunnar Bittersmann: Baumstruktur in RDF

Beitrag lesen

Hello out there!

<rdf:Description rdf:nodeID="Menu">
  <dcterms:hasPart rdf:nodeID="Homepage">
   <dcterms:hasPart rdf:nodeID="Projekte">
    <dc:identifier rdf:nodeID="P01" />
    <dc:identifier rdf:nodeID="P02" />
   </dcterms:hasPart>
  </dcterms:hasPart>
</rdf:Description>

Nein, so geht das nicht. In RDF musst du immer Tripel Subjekt-Prädikat-Objekt notieren. dcterms:hasPart soll aber nicht Subjekt eines Tripels sein, sondern immer nur Prädikat.

Das Tripel
  genid:Menu dc:hasPart genid:Homepage .

in RDF/XML:

  <rdf:Description rdf:nodeID="Menu">  
    <dc:hasPart rdf:nodeID="Homepage"/>  
  </rdf:Description>

oder alternativ:

  <rdf:Description rdf:nodeID="Menu">  
    <dc:hasPart>  
      <rdf:Description rdf:nodeID="Homepage"/>  
    </dc:hasPart>  
  </rdf:Description>

Soll das Objekt des Tripels nicht Subjekt eines anderen Tripels sein, sind beide Schreibweisen möglich.

Du willst aber über genid:Homepage noch Aussagen machen, das also als Subjekt verwenden:
  genid:Menu     dc:hasPart genid:Homepage .
  genid:Homepage dc:hasPart genid:Projekte .

  <rdf:Description rdf:nodeID="Menu">  
    <dc:hasPart>  
      <rdf:Description rdf:nodeID="Homepage">  
        <dc:hasPart rdf:nodeID="Projekte">  
      </rdf:Description>  
    </dc:hasPart>  
  </rdf:Description>

oder

  <rdf:Description rdf:nodeID="Menu">  
    <dc:hasPart>  
      <rdf:Description rdf:nodeID="Homepage">  
        <dc:hasPart>  
          <rdf:Description rdf:nodeID="Projekte"/>  
        </dc:hasPart>  
      </rdf:Description>  
    </dc:hasPart>  
  </rdf:Description>

Mit dem rdf:nodeID lag ich wohl nicht ganz richtig. Wenn derselbe Wert des rdf:about-Attributs mehrmals auftritt, sollte auch klar sein, dass es sich um denselben Knoten im RDF-Graphen handelt.

Du solltest also schreiben können:

<rdf:RDF  
  xmlns:dc="http://purl.org/dc/elements/1.1/"  
  xmlns:dcterms="http://purl.org/dc/terms/"  
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  

>  

  <rdf:Description rdf:about="http://example.net/index.html">  
    <dc:title>Hauptseite</dc:title>  
    <dc:description>Meine Homepage</dc:description>  
  </rdf:Description>  
  
  <rdf:Description rdf:about="http://example.net/projekte.html">  
    <dc:title>Projekte</dc:title>  
    <dc:description>Meine Projekte</dc:description>  
  </rdf:Description>  
  
  <rdf:Description rdf:about="http://example.net/projekte/p01.html">  
    <dc:title>Projekte 01</dc:title>  
    <dc:description>Mein erstes Projekt</dc:description>  
  </rdf:Description>  
  
  <rdf:Description rdf:about="http://example.net/projekte/p02.html">  
    <dc:title>Projekte 02</dc:title>  
    <dc:description>Mein zweites Projekt</dc:description>  
  </rdf:Description>  
  
  <rdf:Description rdf:about="http://example.net/index.html">  
    <dcterms:hasPart>  
      <rdf:Description rdf:about="http://example.net/projekte.html">  
        <dcterms:hasPart>  
          <rdf:Description rdf:about="http://example.net/projekte/p01.html"/>  
        </dcterms:hasPart>  
        <dcterms:hasPart>  
          <rdf:Description rdf:about="http://example.net/projekte/p02.html"/>  
        </dcterms:hasPart>  
      </rdf:Description>  
    </dcterms:hasPart>  
  </rdf:Description>  
</rdf:RDF>

Dummerweise zeigt der RDF-Validator gerade keine Graphen an. Vorhin ging’s noch.

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)