부제 : 언제 시간나면 화면 캡쳐해서 올리겠지만..............

온톨로지를 사용할 필요가 있어 Protege 4.0.2를 깔았다.
온톨로지 모델을 그림으로 보기위해 후배에게 물어보니..
후배는 Protege에 플러그인으로 OWLViz라는 것이 있다고 하였다.
하지만 Protege 최신 버전에는 플러그인이 설치가 되지 않는다 하였다.

그런게 어딨는가! 하면 되는거지 -ㅅ-;;

해서...

1. 먼저 Protege 4.0.2를 받는다.

2. 받은 파일을 설치한다...
(Windows 7 x64 를 사용하고 있는데...설치하면 시작 프로그램에 폴더만 생기고 프로그램 등록은 되지 않는다 -_-
당황하지 말고 설치한 디렉토리 가면 제대로 설치 되어 있는 것을 볼 수 있으니 해당 프로그램의 shortcut을 만들어라)

3. 설치 후엔 OWLViz를 다운 받는다.

4. 다운 받은 파일을 열어보면 OWLViz.jar 파일을 볼 수 있는데, 이 파일을 Protege가 설치된 폴더의 plugins 폴더에 복사한다.

5. 복사가 끝났으면 Protege를 실행하여 제대로 동작하는지 본다.



당연히 안 될것이다 ㅡㅡ;
여기서 끝나는게 아니라 안될때 뜨는 다이얼로그의 메시지를 보면 이런 내용이 있다. (오래전에 본 내용을 떠올려 적으므로 정확치 않을 수 있다)
Dot 응용프로그램이 없으니 graphviz.org가서 받아 설치해라..요런 메시지인데...

6. 메시지의 주소로 이동해서 현재 사용하는 운영체제에 맞는 패키지를 다운받아 설치한다.
설치할 때 어느 위치에 설치되는지 봐 두자.

7. 설치가 끝났으면 다시 Protege를 실행한다.

8. Protege의 File메뉴의 Preferences...메뉴에 들어가면 OWLViz 탭이 보일 것이다.
이 탭에서 Dot Application Path에 6에서 설치한 디렉토리를 찾아들어가 dot.exe를 선택한다.
(예를들어..C드라이브의 Program Files (x86) 디렉토리에 Graphviz를 설치하였다면..
C:\Program Files (x86)\Graphviz2.26.3\bin\dot.exe 요렇게 입력하게 하면 된다.)

이젠 잘 될 것이다!

'프로그래밍' 카테고리의 다른 글

실전 HTML5 가이드  (0) 2010.11.02
Protege 4.0.2에 OWLViz 사용하기  (0) 2010.02.22


캐시 때문에 AJAX로 받는 문서가 갱신이 안되는 등의 문제가 특히나 IE에서 잘 발생 한다.

보통은 해더를 아래와 같이 하면 해결되는데..

header("Pragma: no-cache");

IE에서 잘 동작이 안된다..
그때는 아래와 같이 해더를 설정한다.
header("Pragma: no-cache");
header("Cache-Control: no-cache,must-revalidate");
header("Expires: 0"); // 요게 효과가 큰듯 -ㅅ-;;;

오래간만에 PHP를 하니 기억이 새록새록~ +_+

아...꼬박 이틀동안 삽질했다 -_-;;;;
jQuery를 배워보고자 어제부터 즐겨하는 게임을 위해(WOW) PostgresSQL+PHP+jQuery로 간단한 프로그래밍을 시작하였다.

암튼!
jQuery로 AJAX와 XML 처리가 간단하다고 하여...요즘 트랜드라고도 하고...해서...
jQuery로 해당 부분을 시험삼아 개발하고 있는 중...
Iron(≒크롬)과 Firefox에서는 정상동작 하지만 IE(익스플로러)에서는 동작하지 않는 것을 발견하였다.

먼저 처리할 XML 문서는 다음과 같다.
<?xml version="1.0" encoding="UTF-8" ?><Users>
    <user id="1" userid="test2" name="체리" time_stamp="1259052018" />
    <user id="2" userid="test" name="테스트" time_stamp="1259052020" />
</Users>

이렇게 문서가 정상적으로 처리되는 것을 확인하였고 각 브라우저에서도 제대로 읽히는 것을 확인하였다.
하지만...다음의 자바스크립트 코드로 읽어보니...IE에서만 동작하지 않는 것이다.
$.ajax({
	type: "GET",
	url: "<?=$wow['path']?>/ajax/userlist.php",
	dayaType:"xml",
	success: processXML});

function processXML(xml){
	var i = 0;
	$(xml).find('user').each(function() {
		$("#userTable").append("<tr id=\"userTableRow_"+(i)+"\">"
		+"<td><a href=\"javascript:deleteRow('userTableRow_"+(i++)+"');\">삭제</a></td>"		+"<td>"+$(this).attr("userid")+"</td>"
		+"<td>"+$(this).attr("name")+"</td>"
		+"<td>"+$(this).attr("time_stamp")+"</td>"
		+"</tr>");
	});
	displayFootCaption('userTableFoot', $("#userTable tbody tr").length);}

이것저것 하다 알아보니 $(xml).find("user")에서 find() 함수가 동작하지 않는 것을 확인하였다..
왜 그럴까..왜 그럴까...무지하게 고민하고 책도 보고 인터넷도 찾아보고 하는 도중..
아래의 블로그를 찾아내었다.
결론을 말하면..
IE에서 해더 없이는 XML로 제대로 인식이 안 된다는 것이었다.
왜!!!!!!!!!! 왜!!!!!!! 그냥 문서를 직접 URL 타이핑 해서 읽을 땐 XML로 잘 인식을 했냔 말이다 ㅠㅠ

위의 블로그에 해결 방안들을 제시하고 있지만, XML 문서를 생성하는 소스를 수정하는 것이 제일 정직하고 확실한 방법인 것 같다.
아래와 같이 해더를 추가해 주면 된다.
PHP로 개발하고 있는 것이기에 아래와 같이...
header('content-type:application/xml; charset=utf-8');

PHP가 아니라 다른 언어로 개발 중이라면 위의 내용과 맞게 수정해 주면 된다.
단, 지금 개발 하는 것이 UTF-8로 개발하고 있기에 위의 코드가 나오는데..
euc_kr이나 다른 언어로 개발 중이라고 하면 해당 언어 코드로 변경을 해 주어야 하는 것은 당연!!

감사합니다. LazyGyu님! ^^
  1. Favicon of http://lazygyu.tistory.com BlogIcon LazyGyu 2009.11.25 20:10

    제 포스팅이 도움이 되셨다니 제가 더 기쁘네요 ㅠㅠ

    • Favicon of https://www.specialguy.net BlogIcon 체리 2009.11.26 23:32 신고

      감사합니다. 덕분에 앓는이 뺀 기분이예요 ㅎㅎ

  2. ㅁㄴ 2011.04.03 04:37

    헤더를 바꾸는것도 그렇고 링크 가서도 원하는 답을 얻었네요..감사합니다..

    • Favicon of https://www.specialguy.net BlogIcon 체리 2011.04.14 21:06 신고

      저도 해당 링크에서 많은 도움 받았습니다.
      감사합니다 ^^

  3. 베리굿 2012.07.07 23:27

    큰 도움이 될 것 같습니다.

    해결된다면 많은 시간을 아낄수 있을것 같네요 ^^

홈페이지에서 옮김. (2007.06.18~2007.06.26 작성)

  • php에서 클래스
  • php에서 엑셀 읽기
  • 서버에서 zip파일 압축 해제
    •  php 5.2 이후 버전에
      <?
      $zip = new ZipArchive;    // zip 파일 객체를 생성합니다
      if($zip->open("HtmlParse.zip")) { // zip 파일을 열고
          echo "압축을 해제합니다<br>";
          $zip->extractTo("./test");  // 압출 풀을 경로를 현재 디렉토리의 test라고 지정(test 디렉토리가 없으면 생성)
          $zip->close();     // zip 파일을 닫습니다
      }
      ?>


  • php에서 엑셀 파일로 출력
    • 기본 틀은 테이블로 작성
    •  header("Content-Type: application/vnd.ms-excel");
      header("Content-Disposition: attachment; filename=파일명");




홈페이지에서 옮김. (2007.10.09 작성)

아래 게시물과 같이 먼저 import 할 것들
java.util.Scanner
java.lang.Runtime
java.lang.Exception
java.io.BufferedReader
java.io.InputStreamReader

try
{
    Process process = Runtime.getRuntime().exec("df -h");
    BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
    Scanner scanner = new Scanner(br);
    scanner.useDelimiter(System.getProperty("line.separator"));
    while(scanner.hasNext())
        out.println(scanner.next());
    scanner.close();
    br.close();
} catch(Exception e) {
    e.printStackTrace();
}

Process 클래스를 이용하여 시스템 명령어를 실행한다.
Runtime.getRuntime().exec("명령어")는 시스템 명령어를 수행하라는 코드이다.
이 코드는 실행 결과를 Process 객체로 리턴한다.
이 Process 객체는 InputStreamReader와 BufferedReader, Scanner를 이용하여 String으로 변환 가능하다.
Scanner scanner = new Scanner(br); 이하 부분은 아래 게시물과 같은 형태이다.

  1. Favicon of https://hello2world.tistory.com BlogIcon 안녕 하세요 2015.08.06 13:51 신고

    정말 감사합니다 ~~~

+ Recent posts