0

I have a property that its range must be just instances (or call them classes if you want) of RDF:Property

On protege I couldn't write the range as RDF:Property, how can I solve it please?

What I am thinking on is making the range as owl:topObjectProperty, but I am not sure if that is the same as RDF:Property or not.

Hint (I am working with both Object and data properties )

Update1:

Protege refues to allow me to set RDF:Property, look please enter image description here

Ania David
  • 1,168
  • 1
  • 15
  • 36
  • 1
    rdf:Property is just a URI. you'd use it as a range just like any other uri (just click range and type it in). Does something not work about that? – Joshua Taylor Mar 23 '16 at 12:08
  • 1
    That said, mixing rdf vocabulary and OWL ontologies doesn't always mix well, and I don't think that an OWL reasoner "knows" that data properties and object properties are rdf:Property. The OWL reasoner will just think that you've defined a class called rdf:Property, and that the range of the property is instances of it. – Joshua Taylor Mar 23 '16 at 12:10
  • @JoshuaTaylor ` Does something not work about that?` yes, i update the question to show u – Ania David Mar 23 '16 at 12:15
  • yes, your ontology doesn't know that rdf property is a class. Add a class declaration for that URI, and then you'll be able to use it as a class expression. – Joshua Taylor Mar 23 '16 at 12:17
  • @JoshuaTaylor kindly do you mean to add a class (in my ontology in protege) with URI (`http://www.w3.org/2000/01/rdf-schema#Property`) ? – Ania David Mar 23 '16 at 12:24
  • Yes, exactly. Add a class whose URI is rdf:Property. The URI you just wrote is rdf:Property. – Joshua Taylor Mar 23 '16 at 12:31
  • @JoshuaTaylor Thank you, you may write an answer if you wish? – Ania David Mar 23 '16 at 12:35
  • I can add that as an answer if you want, but I do think that you should be aware that in order to make assertions using the property and class that you've now defined, you'll have to define a bunch of your properties as individuals. And OWL still won't give you a way to completely conflate the properties and the individuals; OWL keeps those things separate. In your ontology, it will just happen that a given URI happens to identify a property as well as an individual. Is that *really* what you're looking for? – Joshua Taylor Mar 23 '16 at 14:25
  • @JoshuaTaylor well, you touch me on the hard point that I am struggling. Let me tell you what I am doing. I have a domain ontology (abox, tbox), and my ontology (tbox, abox), my teacher told me yesterday that if i want to join two ontology, we can consider a specific class as a class in one ontology and as an instance in another ontology. so the classes at the tbox of the domain ontology can be seen as instances in the abox of my ontology. i am not sure how can that work, what do you think please ? – Ania David Mar 23 '16 at 14:37
  • You can do that in the way that we're talking about here, but in the original OWL terms, that would be ["OWL Full", not "OWL DL"](https://www.w3.org/TR/owl-ref/#Sublanguages) which means that reasoners might not do what you'd expect them do. OWL2 has a different notion of [profiles](https://www.w3.org/TR/owl2-overview/#Profiles) (also [see the full doc](https://www.w3.org/TR/2012/REC-owl2-profiles-20121211/)). Not knowing more about what your instructor said, I can't be of more help. Lots of tools work with weird mashups between RDF and OWL, but it doesn't mean that they're well defined. – Joshua Taylor Mar 23 '16 at 14:55
  • @JoshuaTaylor I understood the idea. However, I need to know one thing please, if I break the rules of OWL DL just a little bit, such as I created (even manually) some RDF triples in which the object of an object property is not an instance, but a class, will that be a proplem for the reasoner? (I know i break the rule, but I am asking about if having many triples that break the rule is the same as having just a little of them) – Ania David Mar 23 '16 at 15:31
  • Why should this break something? Using OWL API this class will be parsed as an individual having the same URI as the class. And using the same URI for a class and an individual is called punning, which is allowed in OWL 2 DL, please read the specs about this: https://www.w3.org/TR/owl2-new-features/#F12:_Punning – UninformedUser Mar 23 '16 at 16:08
  • @AKSW now I am confused, Joshua said this becomes OWL Full and You said this is allowed in OWL 2 DL – Ania David Mar 23 '16 at 16:30
  • @aksw I was referring to Ania's suggestion to take the classes of one ontology and make them instances in another. If you want them to actually be the same thing (not just classes and individuals that happen to have the same URI (i.e., punning)). That would be OWL Full , wouldn't it? – Joshua Taylor Mar 23 '16 at 16:33
  • @JoshuaTaylor well maybe i misused the English again, what I want is to allow the object of a predicate to be either a class (that is coming from another ontology) or a property (that is coming from another ontology). does that allowed in owl full please ? – Ania David Mar 23 '16 at 16:39
  • In OWL DL, classes and individuals and properties are district. One thing can't be both, even though student kinds of things can be identified by the same URI. – Joshua Taylor Mar 23 '16 at 16:48
  • In owl full, I think the distinction is blurred, and shivering can be both. – Joshua Taylor Mar 23 '16 at 16:49

1 Answers1

0

You're trying to add it as a class expression, so as range of an object property. But rdf:Property is not a class expression, and to use it as object of a statement the property needs to be an annotation property rather than an object property.

At that point rdf:Property is just an IRI, and it should work without issues.

Ignazio
  • 10,504
  • 1
  • 14
  • 25
  • I see that you are active in Pellet reasoner, could you please check my quesiton ? https://stackoverflow.com/questions/36313972/fuseki-how-to-add-pellet-reasoner – Ania David Mar 30 '16 at 15:58