virtuoso 일 시작(Ubuntu 편)

SPARQL Endpoint를 로컬에서 사용하기를 원하기 때문에 DBpedia에서도 사용되는(읽기: 빌토소, 빌토오소, 버츄오소) 환경을 구축하고 SPARQL 조회에서 구축된 SPARQL Endpoint를 검색, 업데이트, 삭제하는 방법을 정리했습니다.

배포 환경

  • VM
  • Ubuntu:16.04.1 LTS
  • virtuoso:6.1.6.3127
  • 환경 구축


    설치

  • 포장을 나눠줬기 때문에 그걸로
  • 소프트웨어 패키지로 배포되는 버전 6
  • $ sudo apt update
    $ sudo apt install virtuoso-opensource -y
    
    화면에서 default 사용자의 default password를 변경하느냐는 질문에 이번에는 변경하지 않고 OK
    virtuoso
    설치 완료
    명령에 추가virtuoso-t

    virtuoso 시작

  • virtuoso.ini가 있는 디렉터리로 이동
  • 특별한 문제가 없으면 /etc/virtuoso-opensource-6.1 이하는virtuoso이다.ini 있음
  • 시작 명령 실행
  • -fforeground 에서 수행되는 옵션입니다.
  • -d 디버그 정보를 표시하는 옵션
  • $ cd /etc/virtuoso-opensource-6.1
    $ sudo virtuoso-t -df
    

    동작 확인


    브라우저에서 액세스

  • 홈 페이지는 다음 URL을 통해 액세스할 수 있습니다.
  • http://<server_IP>:8890

  • Virtuoso Conductor 로그인

  • 홈페이지 화면 왼쪽Conductor 링크 클릭
  • user namepassword 을 입력하는 곳이 있으므로 기본 사용자 이름, 비밀번호를 입력하고 로그인 완료
  • user: dba
  • password: dba

  • 브라우저에서 SPARQL 질의 제출

  • 다음 URL에서 Conductor에 로그인하지 않고도 SPARQL 쿼리를 내보냅니다.
  • http://:8890/sparql

  • CUI에서 SPARQL 질의 제출

  • isql-vt 명령으로 SPARQL 쿼리를 상호 작용으로 내보낼 수 있음
  • 일반적인 SPARQL 질의 전에 SPARQL을 입력하고 질의를 작성합니다.
  • $ isql-vt 1111 dba dba
    SQL> SPARQL SELECT * WHERE {?s ?p ?o};
    

    로컬 SPARQL Endpoint 구축


    브라우저에서 RDF(Turtle) 파일 가져오기

  • 1.virtuoso 홈페이지에서 Conductor로 들어가고dba 사용자에서 로그인합니다.
  • 2.로그인한 후 탭에서 "Linked Data"(아래 그림의 빨간색으로 둘러싸인 곳)
  • 를 클릭하십시오.
  • 3.다른 탭이 표시됩니다. 새 탭에서 빠른 저장 업로드
  • 를 클릭합니다.
  • 4.File 을 선택하고 업로드할 파일을 선택합니다.
  • 이때 파일의 문자 코드가 utf-8인지 확인
  • 그래프의 IRI를 독립시키려면 Named Graph IRI
  • 편집
  • 이번에는 http://localhost:8890/TEST/ 이름으로 그래프 IRI
  • 를 설정했습니다.
  • 5. 업로드 버튼을 누르면 업로드 완료!
  • 업로드 여부 확인


    SPARQL 쿼리를 던져 지정한 Graph IRI를 업로드할 수 있는지 확인하십시오.

    브라우저에서 질의 제출 시

  • Default Data Set Name에 방금 설정한 Graph URI(이번은 http://localhost:8890/TEST/를 입력한 다음 질의를 입력하십시오.

  • CUI에서 질의 제출 시

  • SELECT 문 뒤에 추가FROM <Graph URI>
  • # isql-vt 1111 dba dba
    SQL> SPARQL SELECT * FROM <http://localhost:8890/DAV> WHERE {?s ?p ?o};
    

    SPARQL 쿼리를 사용하여 데이터 업데이트


    SPARQL 질의를 업데이트할 수 있도록 설정

    허용 설정 업데이트


    초기 상태는 SPARQL로 UPDATE, INSERT, DELETE 계열을 처리할 수 없으며 실행 후에는 권한이 없는 것으로 간주됩니다.
    Virtuoso 42000 Error SR186:SECURITY: No permission to execute procedure DB.DBA.SPARQL_INSERT_DICT_CONTENT~~以下略~~
    
    업데이트 시스템을 처리하려면 업데이트 권한에 대한 권한을 설정해야 합니다.이 설정은 브라우저에서 쉽게 완성할 수 있습니다.
  • 1. Virtuoso Conductor 로그인
  • 2. 시스템 관리 탭 클릭
  • 3. L2 레이블에 있는 사용자 계정 클릭
  • 4.SPARQL 행에서 edit
  • 을 클릭합니다.
  • 5. Account rolesSPARQL_UPDATESelected field(오른쪽)으로 가져오기
  • 6.[save] 버튼을 누르면 설정이 완성되는 것을 잊지 마세요
  • 업데이트 시스템 처리를 시도해 보십시오.

  • 데이터 입력 및 DELETE 시도
  • SQL> sparql select distinct * FROM <http://localhost:8890/TEST/> where {?s ?p ?o .};
    s                                                                                 p                                                                                 o
    LONG VARCHAR                                                                      LONG VARCHAR                                                                      LONG VARCHAR
    _______________________________________________________________________________
    
    http://example.org/#green-goblin                                                  http://www.w3.org/1999/02/22-rdf-syntax-ns#type                                   http://xmlns.com/foaf/0.1/Person
    http://example.org/#spiderman                                                     http://www.w3.org/1999/02/22-rdf-syntax-ns#type                                   http://xmlns.com/foaf/0.1/Person
    http://example.org/#green-goblin                                                  http://www.perceive.net/schemas/relationship/enemyOf                              http://example.org/#spiderman
    http://example.org/#spiderman                                                     http://www.perceive.net/schemas/relationship/enemyOf                              http://example.org/#green-goblin
    http://example.org/#green-goblin                                                  http://xmlns.com/foaf/0.1/name                                                    Green Goblin
    http://example.org/#spiderman                                                     http://xmlns.com/foaf/0.1/name                                                    Spiderman
    http://example.org/#spiderman                                                     http://xmlns.com/foaf/0.1/name                                                    ▒X▒u▒|▒▒▒r▒u▒{-▒▒▒p▒▒▒{
    SQL> SPARQL INSERT{ GRAPH <http://localhost:8890/TEST/> { <http://example.org/#spiderman> foaf:name "地獄からの使者"}}
    T;
    Done. -- 5 msec.
    SQL> sparql select distinct * FROM <http://localhost:8890/TEST/> where {?s ?p ?o .};
    s                                                                                 p                                                                                 o
    LONG VARCHAR                                                                      LONG VARCHAR                                                                      LONG VARCHAR
    _______________________________________________________________________________
    
    http://example.org/#green-goblin                                                  http://www.w3.org/1999/02/22-rdf-syntax-ns#type                                   http://xmlns.com/foaf/0.1/Person
    http://example.org/#spiderman                                                     http://www.w3.org/1999/02/22-rdf-syntax-ns#type                                   http://xmlns.com/foaf/0.1/Person
    http://example.org/#green-goblin                                                  http://www.perceive.net/schemas/relationship/enemyOf                              http://example.org/#spiderman
    http://example.org/#spiderman                                                     http://www.perceive.net/schemas/relationship/enemyOf                              http://example.org/#green-goblin
    http://example.org/#green-goblin                                                  http://xmlns.com/foaf/0.1/name                                                    Green Goblin
    http://example.org/#spiderman                                                     http://xmlns.com/foaf/0.1/name                                                    Spiderman
    http://example.org/#spiderman                                                     http://xmlns.com/foaf/0.1/name                                                    ▒X▒u▒|▒▒▒r▒u▒{-▒▒▒p▒▒▒{
    http://example.org/#spiderman                                                     http://xmlns.com/foaf/0.1/name                                                    地獄からの使者
    
    8 Rows. -- 1 msec.
    SQL> DELETE{ GRAPH <http://localhost:8890/TEST/> { <http://example.org/#spiderman> foaf:name "地獄からの使者"}};
    SQL> SPARQL DELETE{ GRAPH <http://localhost:8890/TEST/> { <http://example.org/#spiderman> foaf:name "地獄からの使者"}};
    
    Done. -- 3 msec.
    SQL> sparql select distinct * FROM <http://localhost:8890/TEST/> where {?s ?p ?o .};
    s                                                                                 p                                                                                 o
    LONG VARCHAR                                                                      LONG VARCHAR                                                                      LONG VARCHAR
    _______________________________________________________________________________
    
    http://example.org/#green-goblin                                                  http://www.w3.org/1999/02/22-rdf-syntax-ns#type                                   http://xmlns.com/foaf/0.1/Person
    http://example.org/#spiderman                                                     http://www.w3.org/1999/02/22-rdf-syntax-ns#type                                   http://xmlns.com/foaf/0.1/Person
    http://example.org/#green-goblin                                                  http://www.perceive.net/schemas/relationship/enemyOf                              http://example.org/#spiderman
    http://example.org/#spiderman                                                     http://www.perceive.net/schemas/relationship/enemyOf                              http://example.org/#green-goblin
    http://example.org/#green-goblin                                                  http://xmlns.com/foaf/0.1/name                                                    Green Goblin
    http://example.org/#spiderman                                                     http://xmlns.com/foaf/0.1/name                                                    Spiderman
    http://example.org/#spiderman                                                     http://xmlns.com/foaf/0.1/name                                                    ▒X▒u▒|▒▒▒r▒u▒{-▒▒▒p▒▒▒{
    
    7 Rows. -- 1 msec.
    SQL>
    
    

    끝날 때


    이제virtuoso6에서 SPARQL Endpoint를 만들고 SPARQL 조회에서 SPARQL Endpoint를 검색하고 삭제할 수 있습니다.
    사실, 나는 CentOS에서virtuoso의 버전 7을 이동하고 싶었지만 잘 구축하지 못해서 중도에 포기했다. 그런데 방금 해 봤는데 순조롭게 이동했기 때문에 가까운 시일 내에 그 절차를 정리하고 싶었다.

    좋은 웹페이지 즐겨찾기