1. Bibframe is stated to already be an OWL Ontology .
The file located at <http://bibframe.org/vocab.rdf> is in RDF/XML format.
The second line of this file asserts that <http://bibframe.org/vocab/> is an instance of owl:Ontology.
Note that this does not mean that Bibframe is a good OWL ontology, or even a valid one. I will come back to this later.
2. Ranges in RDFS.
RDFS allow multiple Statements to be made about the Range of a property. All of these statements must be satisfied; we can thus consider the effective range of bf:subject to be (bf:Work and bf:Authority). Any value of subject must be instance of both types.
It is simple to specify an "OR" range in rdfs that can be satisfied by instances bf:Work or bf:Authority .
To do so, one creates a class that is a superclass of all the desired possible types for that range. One can then use this class to specify the range of the property.
In this case, we could say:
bf:Work rdfs:subclassOf _:subjectRange .
bf:Authority rdfs:subclassOf _:subjectRange .
bf:subject rdfs:range _:subjectRange .
If RDFS did not allow for multiple ranges, we could get the same (wrong) result as we have currently by creating a class for the range that is a subtype of both Work and Authority.
_:subjectRange2 rdfs:subclassOf bf:Work .
_:subjectRange2 rdfs:subclassOf bf:Authority .
bf:subject rdfs:range _:subjectRange2 .
3. "OR" ranges in OWL.
Specifying an "OR" range in OWL is even simpler.
In Manchester Syntax, we would write:
Range: Work or Authority
4. Bibframe is not a correct RDFS schema .
As we see, multiple statements for the same property are used incorrectly.
There are also many cases where incorrect ranges are used.
rdfs:Resource , but is described as being the "Classification number represented as a URI."
If it is a representation as a URI, then should be a Literal rather than an Object. The most specific standard datatype would be xsd:anyURI.
The ranges used for data properties are given as Literal, rather than as xsd:string or some other more appropriate type; that does not make the schema incorrect- it just makes it not good.
5. Bibframe is not a usable OWL ontology.
OWL ontologies are specified according to an Abstract Syntax model.
Rules are given for converting any OWL ontology into RDF, and for reading any OWL-DL ontology from RDF.
All properties in OWL must be Data Properties (whose value is a literal), Object Properties (whose property is another object), or AnnotationProperties (whose values can be either, but which are intended for use as metadata about the ontology rather than being about the ontology itself).
OWL Full ontologies can have properties that are of more than one type, and do not need to declare them. Using OWL Full comes with certain costs;
a) there are no rules defined for parsing OWL Full ontology out of RDF
b) there are no OWL full reasoners.
The properties given in the Bibframe Ontology do not have any owl property type associated with them. The OWLAPI has a non-strict parsing mode that has a variety of ugly hacks to recover from invalid OWL rdf.
These almost work for Bibframe . A few property types are not being picked up that should be; I've marked this as a bug.
One is caused by a reference to a non-existent super property, which I am classing as a bibframe error.
Bibframe makes no use of any OWL Full features; there seems to be no valid reason for the decision to use OWL Full.
rdfs:label "Expression of",
dcterms:modified "2014-04-10 (Updated subproperty)",
rdfs:comment "Expression has a related work. For use to connect Works under FRBR/RDA rules."