Skip to content

rdfpipe and binding XSD prefix #2802

Open
@ajnelson-nist

Description

@ajnelson-nist

This post is a question on flag intent for rdfipipe --ns=.... It might also be a question about RDF-XML syntax.

I have several workflow streams that eventually flow pooled graph files into one graph file. Some of the steps use rdfpipe1 to concatenate some files together or just format-convert. From time to time, I experience some churn with the XSD prefix being xs: in some files and xsd: in others, and this causes the prefix to change somewhat randomly in the file at the end of the workflow when I incorporate new graph files.

Suppose I have an input file that defines a prefix for the XML Schema Datatypes IRI, using xsd, though nothing in the graph actually uses that prefix. The input file is as follows, and is listed here in case I am misunderstanding the role XML namespace declarations are supposed to have with prefixes.

<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
	xmlns:ex="http://example.org/ontology/example/"
	xmlns:owl="http://www.w3.org/2002/07/owl#"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
	
	<owl:Ontology rdf:about="http://example.org/ontology/example">
		<owl:versionIRI rdf:resource="http://example.org/ontology/example/0.0.1"/>
	</owl:Ontology>
	
	<owl:Class rdf:about="http://example.org/ontology/example/Object">
		<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
	</owl:Class>

</rdf:RDF>

First, an RDF-XML specific question: Are XML entity declarations required in order to consider xsd: a prefix name? Apologies, I'm having some trouble finding this in the RDF specs. I've at least found RDF 1.1 XML Syntax Section 5.2.

Next, the rdfpipe question: I'm not sure how to get rdfpipe to carry that xsd prefix(?) forward, or if I should expect to be able to, if the prefix isn't used in triples.

This command applies a new namespace prefix ex1 in the generated graph, whether or not I have the xmlns:ex declaration in the XML:

rdfpipe --output-format turtle --ns='ex1=http://example.org/ontology/example/' input.xml > output.ttl

Without --ns, the xsd prefix does not get added to rdfpipe's output---which I can understand, since the prefix isn't used in any of the axioms. But, even adding an --ns for the XML Schema Datatypes IRI, the prefix doesn't get emitted in the generated Turtle graph. I see some interpretations where this is the intended behavior, but I'm wondering if this was actually intended. Should I be able to use --ns to load in as many namespaces as I want, whether or not they're in the input graph?

Footnotes

  1. Disclaimer: Participation by NIST in the creation of the documentation of mentioned software is not intended to imply a recommendation or endorsement by the National Institute of Standards and Technology, nor is it intended to imply that any specific software is necessarily the best available for the purpose.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions