2010-06-21 2 views
2

SemWeb 이라고하는 RDF 라이브러리를 사용하려고하지만 구현할 수 없어서 570MB 크기의 내 rdf 파일을 읽을 수 없습니다. 그들이 제공하는 예제와 문서는 약간 가난합니다.SemWeb 라이브러리 C# 용 RDF 파서

누구나 RDF 파일을 구문 분석하기 위해이 라이브러리 또는 다른 라이브러리를 사용합니까?

저는 파서가 RDF를 요구하는 대학 일을하고 있기 때문에 긴급하게 필요합니다.

감사

+0

약간 애매합니다. 지금까지 시도한 내용과 컴파일러/런타임 오류에 대해 알려주십시오. –

+0

RDF를 구문 분석 한 후 RDF로하고 싶은 것을 알고 있으면 유용합니다. – cygri

답변

3

이 SemWeb은 매우 간단 사용하여 파일을 읽으려면, 단지 다음과 같은 것을 사용

MemoryStore mem = new MemoryStore(); 
mem.Import(new N3Reader("file.ttl")); 

//Iterate over and print statements 
foreach (Statement stmt in mem) 
{ 
    Console.WriteLine(stmt.ToString()); 
} 

을 파일 다음 대신 RdfXmlReader 클래스를 사용하십시오 RDF/XML 경우.

또는 당신은 당신의 파일을 읽어 내 라이브러리 dotNetRDF을 사용할 수

Graph g = new Graph(); 
FileLoader.Load(g, "file.ttl"); 

//Iterate over and print Triples 
foreach (Triple t in g.Triples) 
{ 
    Console.WriteLine(t.ToString()); 
} 

유일한 문제는 파일이 RDF/XML 인 경우 내 라이브러리에있는 파서가 현재 해당 크기의 파일을 처리 할 것입니다. 파일이 NTriples/Turtle/N3 인 경우 문제가 없어야하지만 몇 분 정도 기다려야합니다 (예 : 베를린 SPARQL 벤치 마크에 대한 900 만 바이트짜리 트리플 데이터 세트는 구문 분석하는 데 약 4 분이 걸리지 만 다소 기계에 의존)

이것은 실제로 일반적으로 문제가 될 수 있습니다. SemWeb의 RDF/XML 파서가 구현되어있어 매우 큰 파일에서 내 자신에게 비슷한 문제가 발생할 수 있습니다.

이 당신이 다음 번에 분석 데이터와 함께 할 의도가 무엇인지에 따라 달라질 수 있습니다 파일을 읽기위한 가장 좋은 방법이 있는지 여부. SemWeb과 dotNetRDF 모두에서 데이터를 읽고 쓰는 더 효율적인 방법이있을 수 있습니다.

+0

안녕하십니까 dotNetRDF에 시도해 보겠 습니다만 도와 주셔서 감사합니다. SemWeb은 무엇이 진술인지 이해하지 못하고 memorystore를 사용하여 내 파일을 모두 메모리에로드하려고하지 않습니까? – Elias

+0

Statement는 Triple의 또 다른 이름이며 SemWeb이 Triples에 사용하는 클래스 이름입니다. MemoryStore는 데이터에 대한 메모리 내장 저장소이며 dotNetRDF의 Graph 클래스와 동일합니다. 모든 데이터를 메모리에로드합니다. – RobV

+0

안녕하세요, dotNetRDF의 사용법을 이해하려고하는데 의심이 있습니다. . "텍스트"파일을 구문 분석하고 싶지 않지만 관계형 데이터베이스에 넣으려면 어떻게해야합니까? 내가 Virtuoso 서버를 사용하여 귀하의 사이트에 봤지만, 나는 그것으로 일한 적이 없어, 난 SQL 서버를 사용할 수 있습니까? – Elias