놀라운 데이터베이스 위키에서 추출한 데이터로 온톨로지를 채 웁니다. 위키의 모든 정보가 들어있는 xml을 추출 할 수 있습니다. 내 문제는이 XML이 너무 무거워서 (500Mo 이상) 아무 것도 할 수 없다는 것이다. xslt를 사용하여 훨씬 단순한 rdf 파일로 변환하려고 시도했지만 xml 파일 크기 때문에 매우 불가능합니다.거대한 xml 파일을 rdf로 변환하여 Ontology에 채우기
XML 문서는이 하나 페이지로 구성되어 있습니다이 경우 exemple 들어
<page>
<title>Aeroika (Earth-616)</title>
<ns>0</ns>
<id>1035</id>
<sha1>11t0be5viqp0vsj8zwglfu3wea8fou4</sha1>
<revision>
<id>1786343</id>
<timestamp>2011-10-04T17:49:37Z</timestamp>
<contributor>
<username>HamsterMan</username>
<id>2082346</id>
</contributor>
<minor/>
<text xml:space="preserve" bytes="1652">{{Marvel Database:Character Template
| Image = Aeroika (Earth-616).jpg
| RealName = Aeroika
| CurrentAlias = Aeroika
| Aliases =
| Identity =
| Affiliation = [[Defenders (Earth-616)|Defenders]]
| Relatives =
| Universe = Earth-616
| BaseOfOperations = [[Tunnelworld]]
| Gender = Male
| Height =
| Weight =
| Eyes =
| Hair = Gold
| UnusualSkinColour = Gold
| UnusualFeatures = Wings growing out of his head.
}}
[[Category:Flight]]</text>
</revision>
</page>
가 나는 RDF에 중요한 datas를 추출 XSLT를했다.
<xsl:template match="/">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="http://www.w3schools.com/rdf/">
<xsl:for-each select="page">
<xsl:choose>
<xsl:when test="contains(revision/text, 'Character Template')">
<rdf:Description rdf:about="{title}">
<Image><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Image'),'|'),'=')" /></Image>
<RealName><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'RealName'),'|'),'=')" /></RealName>
<CurrentAlias><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'CurrentAlias'),'|'),'=')" /></CurrentAlias>
<Aliases><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Aliases'),'|'),'=')" /></Aliases>
<Identity><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Identity'),'|'),'=')" /></Identity>
<Affiliation><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Affiliation'),'|'),'=')" /></Affiliation>
<Relatives><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Relatives'),'|'),'=')" /></Relatives>
<Universe><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Universe'),'|'),'=')" /></Universe>
<BaseOfOperations><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'BaseOfOperations'),'|'),'=')" /></BaseOfOperations>
<Gender><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Gender'),'|'),'=')" /></Gender>
<Height><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Height'),'|'),'=')" /></Height>
<Weight><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Weight'),'|'),'=')" /></Weight>
<Eyes><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Eyes'),'|'),'=')" /></Eyes>
<Hair><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Hair'),'|'),'=')" /></Hair>
<UnusualSkinColour><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'UnusualSkinColour'),'|'),'=')" /></UnusualSkinColour>
<UnusualFeatures><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'UnusualFeatures'),'|'),'=')" /></UnusualFeatures>
<Citizenship><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Citizenship'),'|'),'=')" /></Citizenship>
<MaritalStatus><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'MaritalStatus'),'|'),'=')" /></MaritalStatus>
<Occupation><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Occupation'),'|'),'=')" /></Occupation>
<Education><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Education'),'|'),'=')" /></Education>
<Origin><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Origin'),'|'),'=')" /></Origin>
<PlaceOfBirth><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'PlaceOfBirth'),'|'),'=')" /></PlaceOfBirth>
<Creators><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Creators'),'|'),'=')" /></Creators>
<First><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'First'),'|'),'=')" /></First>
<HistoryText><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'HistoryText'),'|'),'=')" /></HistoryText>
<Powers><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Powers'),'|'),'=')" /></Powers>
<Abilities><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Abilities'),'|'),'=')" /></Abilities>
<Strength><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Strength'),'|'),'=')" /></Strength>
<Weaknesses><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Weaknesses'),'|'),'=')" /></Weaknesses>
<Equipement><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Equipement'),'|'),'=')" /></Equipement>
<Transportation><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Transportation'),'|'),'=')" /></Transportation>
<Weapons><xsl:value-of select="substring-after(substring-before(substring-after(revision/text, 'Weapons'),'|'),'=')" /></Weapons>
</rdf:Description>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</rdf:RDF>
</xsl:template>
</xsl:stylesheet>
내가 어떻게 할 수 있습니까? 감사합니다.
이것은 매우 광범위한 질문입니다. 시작하려는 특정 XML 형식의 예와이를 매핑하려는 rdf 구조의 종류가 있습니까? 아마도 XML을 읽는 데 사용할 수있는 스트리밍 또는 "세미 스트리밍"접근 방식이 있지만 실제로 구조에 의존합니다. –
표시에 감사드립니다. 나는 내 질문을 편집했다. 나는 이번에는 아무것도 잊지 않았 으면 좋겠다. 당신은 스트리밍이나 세미 스트리밍 접근 방식에 대해 이야기하지만 실제로 어떻게 그렇게하는지는 알지 못합니다. xslt로 가능합니까? 아니면 프로그램을 만들어야합니까? – Desnoxav
성취하고자하는 것은 무엇입니까? 내 말은, 최종 출력물/앱이 마음에 들었던 것처럼 보입니까? 거기에서 시작하여 가지고있는 것에 뒤로 가십시오. 나는 RDF가 당신이 원하는 것이 아니라는 것을 의심하지만 좀 더 구체적 일 필요가있다. 일단 그렇게하면 필요한 변형은 아마도 매우 분명하고 직설적입니다. –