2012-07-02 6 views
3

그래서 여기에 rdf 형식의 항목이 있습니다. 나는 왜 그것의 일부가 너무 복잡하게 보는지 이해하고 싶습니다. 특히RDF가 왜 복잡하게 보입니다.

<pgterms:file rdf:about="&f;dirs/3/1/9/0/31900/31900-8.zip"> 
    <dc:format><dcterms:IMT><rdf:value>text/plain; charset="iso-8859-1"</rdf:value></dcterms:IMT></dc:format> 
    <dc:format><dcterms:IMT><rdf:value>application/zip</rdf:value></dcterms:IMT></dc:format> 
    <dcterms:extent>193120</dcterms:extent> 
    <dcterms:modified><dcterms:W3CDTF><rdf:value>2010-04-06</rdf:value></dcterms:W3CDTF></dcterms:modified> 
    <dcterms:isFormatOf rdf:resource="#etext31900" /> 
</pgterms:file> 

,이 값 :

<dc:format><dcterms:IMT><rdf:value>text/plain; charset="iso-8859-1"</rdf:value></dcterms:IMT></dc:format> 

은 왜 모두 dcterms:IMTrdf:value 부분을 필요합니까? 이것은 실제적인 효과가 거의없는 것만 큼 부 풀리는 것처럼 보입니다. 이미 MIME 형식을 사용하고 있기 때문에 나에게 의미가 없습니다.

+2

RDF가 잘 설계되어 있다고 가정하는 것 같습니다. 이 가정은 잘못되었습니다. :) – duskwuff

+0

(RDF를 바라 보는 것에서부터) 피곤한 지, 또는 무엇인지는 모르겠지만 꽤 재미 있다고 느꼈습니다. – boatcoder

+0

좀 더 심각한 대답은 : 나는 RDF에 익숙하지 않다. (이것은 왜 대답이 아닌 주석이다.) 그러나 다른 접두사 ("rdf", "pgterms", "dc", "dcterms "...)은 여러 다른 네임 스페이스의 요소를 혼합하여이 혼란의 여러 부분이 독립적으로 개발되었다는 것을 나타냅니다. 따라서 모든 것을 통합하는 디자인은 없습니다. – duskwuff

답변

10

xml은 왜 인간이 아닌 파서가 읽어야하기 때문에 눈이 아파서 너무 많은 꺽쇠 괄호가있는 이유는 무엇입니까?

샘플이 rdf (rdf가 프레임 워크)가 아니며 rdf/xml이며 프레임 워크에서 그래프의 가능한 한 serialzation입니다. Turtle/n3 훨씬 더 serialize입니다. N-Triples은 매우 간단합니다.

실제 세부 사항을 포함하지 않지만 몇 가지 아주 작은 예

...

RDF/XML

:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
     xmlns:dc="http://purl.org/dc/elements/1.1/"> 
    <rdf:Description rdf:about="http://www.w3.org/2001/sw/RDFCore/ntriples/"> 
    <dc:creator>Art Barstow</dc:creator> 
    <dc:creator>Dave Beckett</dc:creator> 
    <dc:publisher rdf:resource="http://www.w3.org/"/> 
    </rdf:Description> 
</rdf:RDF> 

N-트리플

<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/creator> "Dave Beckett" . 
<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/creator> "Art Barstow" . 
<http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/elements/1.1/publisher> <http://www.w3.org/> . 

N3

012 3,516,
@prefix dc: <http://purl.org/dc/elements/1.1/> 

<http://www.w3.org/2001/sw/RDFCore/ntriples/> 
    dc:creator "Dave Beckett"; 
    dc:creator "Art Barstow"; 
    dc:publisher <http://www.w3.org/>. 

편집 : 당신이 읽기를 중지 할 수 있습니다, 이것은 단지 다른 직렬화 OP에서 제공하는 예이다. 질문에 대답하기 위해

dcterms : IMT와 rdf : value 부분이 모두 필요한 이유는 무엇입니까?

"빈 노드"가있을 때 rdf/xml은 stutter-step을 수행해야합니다. 아래에서 N-Triples이 공백 노드를 작성하고 n3이 관계가 무엇인지를 더 분명히하려는 시도를 볼 수 있습니다. 이 모든 것은 동일한 rdf 그래프의 직렬화입니다.

RDF/XML 약간 (스페이스 첨가) 변성 그래서 파싱 :

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
     xmlns:dc="http://purl.org/dc/elements/1.1/" 
     xmlns:dcterms="http://purl.org/dc/terms/" 
     xmlns:pgterms="http://www.gutenberg.org/rdfterms/"> 
<pgterms:file rdf:about="/home/me/dirs/3/1/9/0/31900/31900-8.zip"> 
    <dc:format><dcterms:IMT><rdf:value>text/plain; charset="iso-8859-1"</rdf:value></dcterms:IMT></dc:format> 
    <dc:format><dcterms:IMT><rdf:value>application/zip</rdf:value></dcterms:IMT></dc:format> 
    <dcterms:extent>193120</dcterms:extent> 
    <dcterms:modified><dcterms:W3CDTF><rdf:value>2010-04-06</rdf:value></dcterms:W3CDTF></dcterms:modified> 
    <dcterms:isFormatOf rdf:resource="#etext31900" /> 
</pgterms:file> 
</rdf:RDF> 

N-트리플

</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.gutenberg.org/rdfterms/file> . 
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/elements/1.1/format> _:LqSOByLi19 . 
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/elements/1.1/format> _:LqSOByLi20 . 
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/terms/isFormatOf> <#etext31900> . 
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/terms/modified> _:LqSOByLi21 . 
</home/me/dirs/3/1/9/0/31900/31900-8.zip> <http://purl.org/dc/terms/extent> "193120" . 
_:LqSOByLi21 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/W3CDTF> . 
_:LqSOByLi21 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "2010-04-06" . 
_:LqSOByLi20 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/IMT> . 
_:LqSOByLi20 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "application/zip" . 
_:LqSOByLi19 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/IMT> . 
_:LqSOByLi19 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "text/plain; charset=\"iso-8859-1\"" . 

N3/거북

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 
@prefix dc: <http://purl.org/dc/elements/1.1/> . 
@prefix dcterms: <http://purl.org/dc/terms/> . 
@prefix pgterms: <http://www.gutenberg.org/rdfterms/> . 

</home/me/dirs/3/1/9/0/31900/31900-8.zip> a pg:file; 
    dc:format 
     [ a dcterms:IMT; rdf:value "text/plain; charset=\"iso-8859-1\"" ], 
     [ a dcterms:IMT; rdf:value "application/zip" ]; 
    dcterms:extent "193120"; 
    dcterms:isFormatOf <#etext31900>; 
    dcterms:modified [ a dcterms:W3CDTF; rdf:value "2010-04-06" ] . 

참고 : 위 B 노드가 있다는 것을 설명하되로서 존재하는 이유 ... : N3도 예쁘게 if it's colored

EDIT 2 인위의 (내가 원하는)이 더 같은 볼 수있는 N3 연재의 마지막 줄에 dcterms:modified 조건 :

dcterms:modified "2010-04-06"^^dcterms:W3CDTF 
# vs 
dcterms:modified [ a dcterms:W3CDTF; rdf:value "2010-04-06" ] 
RDF하는 이유

:

exproduct:item10245 exterms:weight [rdf:value  "2.4"^^xsd:decimal 
             exterms:units exunits:kilograms] . 
: 값도 존재 같은 트리플입니다

단위 외에 노드는 정밀도 또는 트리플의 object의 다른 특성을 나타낼 수 있습니다.

그래, rdf:value 일은 인식 론적 순결성에 대한 이해와 실용성을 손상시키는 것으로 싫어합니다.

+1

"왜 XML에는 괄호가 너무 많아서 내 눈이 아파요 .. 왜냐하면 그것은 인간이 아니라 파서가 읽을 수 있기 때문입니다. " +1 – RobV

+0

표현의이 부분에서 rdf : value의 명시 적 목적은 무엇입니까? 그것은 rdf : value가 아닌 다른 것일 수 있습니까? '[국문 : IMT; rdf : value' – boatcoder

+0

@ Mark0978 - 견과류. 나는 네가 돌아와서 그것에 대해 물어 보지 않기를 바랬다. 짧은 대답 : 그것은 직렬화가 아니라 RDF의 잘못입니다. 나는 rdf : value를 싫어한다. 결코 존재해서는 안된다. 왜 그것이 존재하는지에 관해서는, 필자의 게시물을 편집 할 것입니다 (직렬화에 대한 2 개의 예제 세트로 돌아갈 수 있습니다). 또는 잘하면 내 책갈피에 좋은 위키 게시물을 찾아서 추가 할 것입니다. –

관련 문제