I'm new to RDF and am having trouble wrapping my head around the distinction between a regular vanilla class, and explicitly declaring its rdf:type as rdf:property. Everything I can find suggests the main reason revolves around enabling domain and range declarations, but I also read that defining a range or domain on a class automatically confers the rdf:property status on it anyway.
Say i have a class "stockSymbol" and it has a certain "assetClass". An instance of a stock (say MSFT) would have a property (:assetClass) of "common stock". But if an asset class is a more complex concept than simply a property, it would seem that :assetClass is now explicitly a property AND a class, leading to potentially weird behavior or implications.
I'm probably missing some fundamental nuance of what rdf:property imbues a resource with but I'm not sure what. Can anyone help set me straight?