Написание RDF путем импорта пространств имен из загруженных онтологий в Йене?

Я планирую писать и хранить много данных в формате RDF. Я буду использовать SIOC, GEO и dcterms. Есть ли в Йене способ импортировать пространства имен из загруженных онтологий вместо того, чтобы делать, например, следующее:

model.setNsPrefix("sioc","http://sioc.com/ontologies/sioc#");
Property  ID = model.createProperty("http://sioc.com/ontologies/sioc#" + "ID");

person user2179347    schedule 09.08.2013    source источник


Ответы (2)


Что ж, вы можете использовать подход на основе строк, хотя я настоятельно рекомендую что-то вроде:

String SIOC = "http://sioc.com/ontologies/sioc#";
model.setNsPrefix("sioc",SIOC );
Property  ID = model.createProperty( SIOC + "ID" );

чтобы сохранить ввод текста и возможные опечатки. Для многих распространенных словарей в Jena уже есть предопределенные классы словарей, которые определяют набор полезных констант. Большинство из них находятся в com. пакет .hp.hpl.jena.vocabulary. Например, в DCTerms есть такие константы, как creator< /a> чтобы вы могли делать такие вещи, как

Resource r = ...;
r.addProperty( DCTerms.creator, ... );

Конечно, Йена может предопределить только некоторые из этих классов. Для других вы можете использовать schemagen Jena для создания таких классов. Это инструмент командной строки (но вы также можете вызвать его программно, я полагаю) и передать ему файл RDF или OWL, который определяет словарь, и вы получите обратно файл .java, который содержит константы для всех свойств, классов и отдельных лиц. в лексике. Вы также можете получить простые ресурсы на основе модели или ресурсы на основе OntModel. Его вполне можно настроить, и я использовал его в ряде проектов.

person Joshua Taylor    schedule 09.08.2013

Если вы используете maven, вы можете использовать следующий плагин.

    <plugins>
        <plugin>
            <groupId>org.apache.jena</groupId>
            <artifactId>jena-maven-tools</artifactId>
            <version>0.8</version>
            <configuration>
                <includes>
                    <include>src/main/resources/ontologies/*.owl</include>
                    <include>src/main/resources/ontologies/*.rdf</include>
                </includes>
                <fileOptions>
                    <source>
                        <input>default</input>
                        <package-name>com.example.ontology</package-name>
                    </source>
                    <source>
                        <input>src/main/resources/ontologies/*.owl</input>
                        <include>src/main/resources/ontologies/*.rdf</include>
                        <ontology>true</ontology>
                    </source>
                </fileOptions>
            </configuration>
            <executions>
                <execution>
                    <id>schemagen</id>
                    <goals>
                        <goal>translate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

когда вы запускаете компиляцию maven, вы можете обнаружить, что все ресурсы и свойства в файле OWL/RDF преобразуются в константы в соответствующем классе с именем файла OWL/RDF. поэтому вы можете вызывать их в своем коде, например, OWLFILENAME.RESOURCE или OWLFILENAME.PROPERTY.

person Vinoth Kumar Asaithambi    schedule 24.03.2015