2012-05-07 22 views
5

böyle görünüyor RDF oluşturmanız gerekir: Gördüğünüz gibi, iç içe yapılar, hem de boş düğümleri vardırYuvalanmış RDF/XML Jena'dan nasıl edinilir?

<rdf:Description rdf:about='uri1'> 
    <namespace:level1> 
    <rdf:Description> 
     <namespace:blankNode rdf:resource='uri2'/> 
     <namespace:text></namespace:text> 
    </rdf:Description> 
    </namespace:level1> 
</rdf:Description> 

<rdf:Description rdf:about="uri2"> 
    some properties here 
</rdf:Description> 

. (Bu benim yapısında "blankNode" özelliği için kesin terminoloji olmadığını bilmiyorum.) Ben

model.write(System.out, "RDF/XML-ABBREV"); 

sonra bile boş düğüm yuvalanmış kullanırsam, istemediğiniz. Jena'yı kullanarak bu tür bir yapıya kavuşmanın bir yolu var mı? Ya da Java'yı daha iyi idare edebilecek başka bir kütüphane var mı?

cevap

6

Sanırım yanlış yöne gidiyorsunuz.

Yuvalama, yalnızca ağaçtan bahsederken mantıklı bir kavramdır. Fakat RDF ağaçlarla ilgili değil, üçe kadar. XML'in yapısı hakkında bir süreliğine unutun ve XML'de kodlanmış üçlüleri düşünün. Bunun için en yararlı olan model.write(System.out, "N-TRIPLES"); buluyorum.

Öncelikle RDF/XML dosyanızın hangi üçlüyü ifade etmesini istediğinizi anlamanız gerekir. Doğru üçlüleri ifade ettiği sürece, bir düğümün diğerinin içinde iç içe geçip geçmediği ya da hangi düzenin içinde görünüp görünmeyeceği önemli değildir. Bunlar, girinti gibi tamamen “kozmetik” sorulardır.

+0

Açıklama için teşekkürler! Bu bir okul projesi için, yapının gereksinimleri bana verildi :). Ama şimdi profesörümle konuştum ve değişti. – user1355348

+0

Cygri'ye tamamen katılıyorum, ayrıca model.write (System.out, "TURTLE") işlevini de deneyin; (daha 'insancıl' bir serileştirme) ve RDF/XML serileştirmesine bakarak RDF'yi öğrenmeyi unutun. Değiştirilmesi gereken 'garip şartlar' talep etmek iyidir. ;-) – castagna

+0

Profesörün “aydınlanması” konusunda iyi iş çıkardın! Bunun için kesinlikle bir + 1 hak ediyorsun ;-) – cygri