2014-05-12 7 views
0

최근에 RDFa를 파고 들어보고 의미 정보로 내 웹 사이트를 자극하려고했습니다. 이 사이트는 서비스, 이벤트, 블로그를 제공하며 향후 제품을 제공 할 수 있습니다. 다행스럽게도 schema.org는 거칠지 만 적절한 범주를 가지고 있습니다. 그러나 이제는 실용적인 문제에 관한 것입니다.RDFa DRY 참조에 대한 개념

모든 예는 하나의 페이지에 모든 정보를 가지고 있습니다. 이는 나에게 꽤 학식적 인 것처럼 보입니다. 예 : 내 방문 페이지에 예정된 이벤트 목록이 있습니다. 이벤트에는 location 속성이 있습니다. 내 행사는 두 곳에서 진행됩니다. 각 항목의 위치 정보를 붙여 넣을 수 있고 HTML을 부 풀릴 수 있습니다. 차라리 위치를 설명하고 자세한 내용을 담은 페이지에 연결하고 싶습니다. 확실하지 않은지, 그것이 sameAs가 있는지 여부입니다. 그러나 그때에도 대상 URL의 RDFa 정보가 적절한 vCard로 사용되어야한다는 것을 어떻게 알 수 있습니까?

마찬가지로 방문 페이지에는 일부 회사 정보 만 표시됩니다. <meta>을 많이 추가 할 수는 있지만 다시 연락처 페이지에 대한 참조가 좋을 것입니다.

저는이 측면이 RDF 제작자를 미끄러 뜨렸다 고 생각하고 싶지 않습니다. 중복성 감소를위한 모범 사례가 있습니까?

답변

2

URI! (또는 IRI를, 예를 들어, RDFa 1.1에서)

RDF의 기본 자질 중 하나, 그것은 coined by Tim Berners-Lee (강조 광산)으로, Linked Data 가능하게

:

시맨틱 웹 ISN ' 웹상에 데이터를 두는 것. 사람이나 기계가 데이터 웹을 탐색 할 수 있도록 약 링크를 만들며입니다.

하이퍼 텍스트 웹과 마찬가지로 데이터 웹은 웹상의 문서로 구성됩니다.

사용 RDF 그러나, 하이퍼 텍스트의 웹 사이트와는 달리, 링크는 HTML로 작성된 하이퍼 텍스트 문서의 관계 앵커는 RDF 설명 임의의 것들 사이의 데이터들은 링크

From my answer to a question about the Semantic Web은 어디에 (사용자가 선택한 serialization format 형태로) 및 은 사용자 및 다른 사람들이 자신에 대한 진술을 할 수 있도록 엔티티 용 URI을 정의합니다.

모든 "엔터티"에 URI를 부여하고이를 주제로 사용하십시오. RDF 트리플의 객체. 웹 페이지에 대한 데이터와 웹 페이지가 나타내는 것에 대한 데이터를 구별하기가 어렵 기 때문에 웹 페이지와 동일한 URI를 사용하고 싶지 않을 수도 있습니다 (my answer describing this in more detail 참조).

그럼 당신의 웹 사이트가이 두 페이지가 가정 해 봅시다 :

  • http://example.com/event/42 (에 대한 행사 (42), 즉, HTML 페이지)
  • http://example.com/location/51 (에 대한 위치 (51), 즉, HTML 페이지)

hash URI 메서드를 사용하면 다음 URI를 작성할 수 있습니다.

  • http://example.com/event/42#it (즉, 위치 (51), 진짜) (즉, 이벤트 (42), 진짜)
  • http://example.com/location/51#it 이제 당신의 Schema.org 어휘를 사용하고자 할 때

당신은 그것의 URI주고 resource을 사용할 수 있습니다, 이벤트에 대한 정보를 제공합니다 :

<!-- on http://example.com/event/42 --> 
<article resource="#it" typeof="schema:Event"> 
    <h1 property="schema:name">Event 42</h1> 
</article> 

을 그리고 당신은 이벤트의 위치를 ​​(장소 사용)을 지정하고자 할 때, 당신은 LOCA의 URI를 사용할 수 있습니다 기 :

<!-- on http://example.com/event/42 --> 
<article about="#it" typeof="schema:Event"> 
    <h1 property="schema:name">Event 42</h1> 
    <a property="schema:location" typeof="schema:Place" href="/location/51#it">Location 51</a> 
</article> 

그리고 당신과 같이있을 수 있습니다 위치 페이지

:

<!-- on http://example.com/location/51 --> 
<article about="#it" typeof="schema:Place"> 
    <h1 property="schema:name">Location 51</h1> 
    <a property="schema:event" typeof="schema:Event" href="/event/42#it">Event 42</a> 
</article> 

이 데이터를 집계, 당신은 (거북이)이 트리플을해야합니다 :

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

<http://example.com/location/51#it> a schema:Place . 
<http://example.com/location/51#it> schema:event <http://example.com/event/42#it> . 
<http://example.com/location/51#it> schema:name "Location 51" . 

<http://example.com/event/42#it> a schema:Event . 
<http://example.com/event/42#it> schema:location <http://example.com/location/51#it> . 
<http://example.com/event/42#it> schema:name "Event 42" . 

EDIT : 잘 모르겠다. (그런 경우가 아니길 바란다.) Schema.org는 빈 노드가일 것으로 예상한다. 10 (또는 sameAs?) 속성 대신, 예 :

<article about="#it" typeof="schema:Event"> 
    <h1 property="schema:name">Event 42</h1> 
    <div property="schema:location" typeof="schema:Place"> 
    <a property="schema:url" href="/location/51#it">Location 51</a> 
    </div> 
</article> 
0

각 RDF 리소스에는 식별자가 있습니다. 식별자는 IRI입니다 (URL은 IRI의 하위 집합입니다). 따라서 식별자를 기준으로 위치를 참조하십시오.

일반적으로 각 페이지는 하나의 암시적인 주 리소스와 몇 가지 명시적인 추가 리소스를 설명합니다. RDFa 1.1 Primer을보세요. 관련 정보가 많습니다.