jena как изменить имя префикса по умолчанию на мое имя префикса

Я сгенерировал эти данные RDF/XML

  <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:j.0="http://marco_student/" > 
  <rdf:Description rdf:nodeID="A0">
    <j.0:description>Departamento de Engenharia Civil</j.0:description>
    <j.0:abbreviation>DEC</j.0:abbreviation>
    <rdf:type rdf:resource="http://marco_student/Department"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A1">
    <j.0:description>Departamento de Engenharia Informática</j.0:description>
    <j.0:abbreviation>DEI</j.0:abbreviation>
    <rdf:type rdf:resource="http://marco_student/Department"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A2">
    <j.0:description>Departamento de Engenharia Electrotécnica</j.0:description>
    <j.0:abbreviation>DEE</j.0:abbreviation>
    <rdf:type rdf:resource="http://marco_student/Department"/>
  </rdf:Description>
</rdf:RDF>

используя этот код:

String myNameSpace = "http://william_student/";
            Resource departmentClass = ResourceFactory.createResource(myNameSpace+"Department");
            Property abbreviationProperty = ResourceFactory.createProperty(myNameSpace, "abbreviation");
            Property descriptionProperty = ResourceFactory.createProperty(myNameSpace, "description");
            Model departmentModel = ModelFactory.createDefaultModel();
            Resource departmentInstance1 = departmentModel.createResource();
            departmentInstance1.addProperty(RDF.type, departmentClass);
            departmentInstance1.addProperty(abbreviationProperty, "DEI");

и я пишу в файл, используя этот простой код

File file = new File("D:/departments.rdf");
            fos = new FileOutputStream(file);
            departmentModel.write(fos);

как вы видите, в данных, сгенерированных RDF, есть префикс j.0:

Мой вопрос:

Как я могу заменить этот префикс по умолчанию j.0, но мой префикс, например, vocabularyMarco


person Marco Dinatsoli    schedule 06.03.2015    source источник


Ответы (2)


Для написания RDF/XML все свойства должны иметь qname. Йена изобретает «j.0» и т. Д., Когда он нужен, но не поставляется. Поэтому установите имя префикса по вашему выбору в модели

model.setNsPrefix("vocabularyMarco", "http://marco_student/")

Ваш код и данные не соответствуют "http://william_student/".

person AndyS    schedule 06.03.2015

// Namespace declarations

static final String companyUri = "citylsdi.org#";

Model model = ModelFactory.createDefaultModel();

model.setNsPrefix( "Indicator", "citylsdi.org#" );

Он создает префикс «citylsdi.org#» в приведенном выше фрагменте кода.

Чтобы получить "vocabularyMarco" в качестве префикса, просто используйте

Model model = ModelFactory.createDefaultModel();
model.setNsPrefix( "Indicator", "vocabularyMarco" );

// Create the types of Property we need to describe relationships in the model

Property cu_role = model.createProperty(companyUri,domain);

// Create resources representing the people in our model

Resource rs2 = model.createResource(companyUri+name);

rs2.addProperty(cu_role,"'"+role+"'");
person Janga Reddy    schedule 08.03.2015