2012-05-14 4 views
3

지난 몇 년 동안 여러 응용 프로그램에서 RDF를 데이터 모델로 사용하고 Jena를 사용하여 데이터를 관리하고 쿼리했습니다. 새로운 응용 프로그램의 경우 응용 프로그램을 RESTful으로 디자인하려고 시도하고 응용 프로그램의 URL은 일반적으로 RDF에서 일부 표현을 갖습니다. 예를 들어, 특히,시맨틱 웹 응용 프로그램에서 URI를 요청 매개 변수로 처리

http://example.com/foo/bar/1/?id=http://example.com/foo/bar/xyz/

이 URL은 꽤 추한 비우호적 수 :

http://example.com/foo/bar/1/

그러나 때때로 당신은 드릴 다운 또는 요청 매개 변수의 서블릿에서 URI를 호출해야 때 인코딩 :

http://example.com/foo/bar/1/?id=http%3A%2F%2Fexample.com%2Ffoo%2Fbar%2Fxyz%2F

인가 거기 디자인에있는 제일 연습? 쿼리 할 수있는 RDF의 URI보다 별도의 더 짧은 값을 생성해야합니까? linked data API에서

http://example.com/foo/bar/1/?id=example:xyz 

, 실체에 대한 짧은 이름 :

답변

0

일반적으로 이와 관련하여 많은 도움이되는지 확신하지 못합니다. 두 이후 제공된 예에 도움이

http://example.com/foo/bar/1/?id=/foo/bar/xyz/ 
http://example.com/foo/bar/1/?id=../xyz/ 

(필요에 따라 인코딩)

: 다른 웹 응용 프로그램에 대한 당신 일이 확립 된 표준이 상대 URL 인 경우, 그 요청 URL에 대한 ID 인수를 해결하다 URL은 동일한 도미노에 있습니다. 그렇지 않으면 전체 URL을 수락해야한다고 생각합니다.

접두사는 RDF 세계에서 일반적으로 사용되지만 맵핑을 찾기위한 수단을 제공하지 않으면 RESTful이라고 느껴지지 않습니다. 첫째

3
당신이 알고있는 경우

, 또는 알 수있는 다음 축약 접두사의 설정 URI의 Q-이름으로는 내가 과거에 사용했던 패턴이다 일반적으로 자원의 어떤 속성이 짧은 이름 (예 : rdfs:label 또는 skos:notation)을 나타내는 데 사용되는지 명시하여 구성에서 선언 할 수 있습니다. 따라서 패턴은 RDF 모델 자체를 통해 이름 약어를 제공하기 위해 소량의 구성 정보를 사용하는 것입니다.

3

는 answers.semanticweb.com에 유사한 게시물을 참조하십시오

당신은 RESO를 저장하는 것을 고려할 수 있습니다 SPARQL 엔드 포인트에서 urces, 다음 다시 쓰기 규칙들을 dereferenceable 만들기는 :

RewriteCond %{HTTP_ACCEPT} (text/turtle|application/rdf+xml) 
RewriteRule !^/sparql /sparql?query=CONSTRUCT\s{?s\s?p\s?o}\sWHERE\s{?s\s?p\s?o.\s<%{REQUEST_SCHEME}://%{HTTP_HOST}%{REQUEST_URI}%{QUERY_STRING}>\s?p\s?o} [L,R=303] 

나는 URI를 역 참조하는 쿼리 문자열로 URI를 전달 훨씬 바람직하다 일반적으로 생각합니다. 프레임 워크에 따라 도메인 객체의 기본 키로 URI를 사용할 수도 있습니다 (GRAILS 및 RAILS에서 가능).

관련 문제