I am a beginner in Linked Data and ontologies. I import CIDOC ontology to mine, in order to use some of its classes and properties. I have an owl file and in ttl syntax, I do
@prefix cidoc: <http://www.cidoc-crm.org/cidoc-crm/> .
and
<http://example.com/#hello> rdf:type owl:Ontology ;
owl:imports <http://www.cidoc-crm.org/cidoc-crm/> ;
rdfs:label "hello" .
Then I create some instances and connect them, using CIDOC properties
hl:MMT cidoc:P102_has_title hl:title
But, in Protégé, P102_has_title appears in the Annotation Properties tab, not the Object Properties tab. The URI of P102_has_title is http://www.cidoc-crm.org/cidoc-crm/P102_has_title.
I need all imported CIDOC properties to be Object properties, so they can be used by SWRL rules.
Other sources providing OWL files of CIDOC define properties as Object ones (go here and check the Direct Download of Unversioned Namespace). The ecrm_current.owl file defines <owl:ObjectProperty rdf:about="P102_has_title">. So, I suppose that all properties are Object ones, but when I import them, they are Annotation ones.
How do I get them as Object ones?
1 Answer 1
If I open https://erlangen-crm.org/ontology/ecrm/ecrm_current.owl in Protege directly, P102 is recognised as an object property: see Protege screenshot here
If P102 is an annotation property in your ontology, it means that there is something in your ontology, or other imports into your ontology, that made P102 an annotation property.
Update
The issue is that there is an interplay between importing this ontology and another ontology (or ontologies) that is causing this issue. Importing this ontology by itself, is not the issue. To prove it, here is a minimal ontology importing https://erlangen-crm.org/ontology/ecrm/ecrm_current.owl.
@prefix : <https://henrietteharmse.com/SO/79239571/import-object-properties-in-owl-ontology.rdf#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@base <https://henrietteharmse.com/SO/79239571/import-object-properties-in-owl-ontology.rdf> .
<https://henrietteharmse.com/SO/79239571/import-object-properties-in-owl-ontology.rdf> rdf:type owl:Ontology ;
owl:versionIRI <https://henrietteharmse.com/SO/79239571/v.0.0.1/import-object-properties-in-owl-ontology.rdf> ;
owl:imports <http://erlangen-crm.org/current/> .
If you view this in Protege you will see all object properties are indeed rendered as object properties.
To figure out which import is causing this:
- Remove each import from your ontology until the problem disappears, or
- create a new ontology and import ontologies that needs to be imported 1-by-1.
Once you know which import is causing this, work with the creators of that import to resolve the issue.
1 Comment
Explore related questions
See similar questions with these tags.
@prefix cidoc: <http://erlangen-crm.org/current/> .and also import it asowl:imports <http://erlangen-crm.org/current/> ;. Properties are still Annotations in protege. Other ontologies I use and import like owl time have no issue, their properties are Object ones. Bottom line : If I open just the cidoc owl file in protege they are Object properties, if I import it from another source to my ontology, they are Annotation. How can I fix this?