Вопрос по semantic-web, rdf, xml – создать RDF из XML

1

У меня есть этот XML-файл, как я могу создать RDF-тройку из него, используя xpath и ModelFactory в Java?

<code><xml>
<person>
<name>Joe</name>
<website url="www.example1.com">contact1</website >
<vote>20</vote>
</person>
<person>
<name>Anna</name>
<website url="www.example2.com">contact2</website>
<vote>80</vote>
</person>
</xml>
</code>

Спасибо за помощь

Спасибо за повтор, я хотел бы получить следующий RDF

<code> <rdf:Description rdf:about="http://www.example.com/xml">
<j.0:hasCritic>Joe</j.0:hasCritic>
     <rdf:Description rdf:about=Joe >
     <j.0:haswebsite>"www.example1.com"</j.0:haswebsite>
      <j.0:hascontact>contact1</j.0:hascontact>
      <j.0:hasvote>80</j.0:hasvote>
  </rdf:Description>
  <j.0:hasCritic>Anna</j.0:hasCritic>
     <rdf:Description rdf:about=Anna>
     <j.0:haswebsite>"www.example2.com"</j.0:haswebsite>
      <j.0:hascontact>contact2</j.0:hascontact>
      <j.0:hasvote>20</j.0:hasvote>
</rdf:Description>
</code>
Вы можете написать файл Turtle, например, RDF, который вы хотели бы получить? castagna
возможный дубликатstackoverflow.com/questions/10062994/… Jeen Broekstra
Спасибо, я хотел бы получить следующий RDF, который я разместил ниже Lucy

Ваш Ответ

3   ответа
1
package tutorial;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;

public class Test01 {
public static void main(String[] args) {
Model m = ModelFactory.createDefaultModel();
String NS = "<http://www.example.com/>";

Resource r1 = m.createResource( NS+"xml" );
Resource r2 = m.createResource( NS+"Joe" );
Resource r3 = m.createResource( NS+"Anna" );            
Property p1 = m.createProperty( NS+"hasCritic1" );
Property p2 = m.createProperty( NS+"hasCritic2" ); 
Property p3 = m.createProperty( NS+"hasWebsite" );
Property p4 = m.createProperty( NS+"hasContact" );
Property p5 = m.createProperty( NS+"hasVote" );

r1.addProperty(p1,r2);
r1.addProperty(p2,r3);
r2.addProperty(p3,"<http://www.example1.com>");
r2.addProperty(p4,"contact1");
r2.addProperty(p5,"80");
r3.addProperty(p3,"<http://www.example2.com>");
r3.addProperty(p4,"contact2");
r3.addProperty(p5,"20");
m.write( System.out );
} 
}
1

GRDDL может быть подходящим подходом, Джена имеетреализация который довольно прост в использовании. В противном случае, простой базовый сценарий XSLT может довольно легко преобразовать этот фрагмент в RDF. Черт, вы могли бы даже написать простого слушателя SAX и выполнить там преобразование. Нет волшебной вещи, которая сделает это за вас, вам придется потрудиться, но есть варианты.

4
You can use jena api for creating RDf model. Just parse xml file using dom parser and create Resourse , Property or Literal using Jena API. After creating this simply add into model.

Example:-
Model rdfModel = ModelFactory.createDefaultModel();
Resource resourse = rdfModel.createResource(Resourse Text);
Property property = rdfModel.createProperty(Property Text);
Literal literal = rdfModel.createLiteral(Literal Text);
resourse.addLiteral(property,literal);

Используя Jena API, вы можете сохранить эту модель в базе данных rdf (Triple).

Привет Раксит, да, я решил, спасибо за помощь Lucy
Привет, извините за мой ответ. Вы получили ответ или все же хотите заполнить файл RDF?
Спасибо Raxit за ответ, использование jena, кажется, делает мою работу, но я не уверен, как использовать jena для создания RDF из файла, который у меня есть. поскольку в файле xml каждый & lt; person & gt; Тег имеет три свойства, я немного запутался в этом вопросе. Не могли бы вы применить свой пример к моему XML-файлу? Спасибо Lucy

Похожие вопросы