Re: [protege-user] hello
Michael DeBellis <[email protected]>
| Newsgroups | gmane.comp.misc.ontology.protege.owl |
|---|---|
| Message-ID | <CALGFikfJn9Btc4_q7-r5udfb2gtnEa5=YTBOoKJGn4V3eoyJ4g@mail.gmail.com> |
Just some suggestions: 1) Have you thought through why you want to use Schema.org and have you considered other alternatives? The Gist upper model from Semantic Arts is quite good for most ontologies in business and engineering. FYI, I don't think Schema.org is an OWL model, it is an RDF model. According to ChatGPT, after I asked it if Schema.org is an OWL ontology: ------------------------------------ Start ChatGPT------------------------------------------------------------------------ Schema.org is **not an OWL ontology**; it is an **RDF-based model**, specifically built using RDF Schema (RDFS) and some lightweight extensions that borrow concepts from OWL but do not fully leverage its expressivity. ### Key Points: 1. **Core Language**: Schema.org primarily uses **RDFS** and some elements of **OWL Lite**, but it is not a fully-fledged OWL ontology. It uses RDF as its underlying data model to represent structured data. 2. **Focus on Simplicity**: Schema.org prioritizes simplicity and usability for widespread adoption across the web, so it avoids complex constructs from OWL, such as class restrictions, property chains, or logical inferences. 3. **Purpose**: Schema.org is designed for **markup of web content** (e.g., using JSON-LD, Microdata, or RDFa) to improve search engine understanding. Its primary goal is practical rather than formal reasoning. 4. **Limitations**: - Schema.org lacks the full semantic rigor of OWL. - It doesn’t support advanced reasoning tasks (e.g., inferring subclass relationships based on property restrictions) that OWL ontologies are built for. 5. **OWL vs. RDF Schema.org**: - OWL ontologies, like those you work with, are intended for advanced knowledge representation and reasoning, with a strong logical underpinning. - Schema.org, on the other hand, is a schema for organizing structured data for discoverability on the web, not for deep reasoning. If you're looking to use Schema.org in an OWL ontology, you might map Schema.org classes and properties to OWL constructs where applicable, but you'd need to extend or re-engineer it for more formal use cases. ------------------------------------ End ChatGPT------------------------------------------------------------------------ The Gist upper model is a true OWL ontology. I think some people use Schema.org as an OWL upper model anyway. A colleague recommended it to me once, but when I looked at it, it seemed to be an RDF model but that was a while ago which is why I wanted to confirm with ChatGPT. RDF is to OWL as machine code is to C, its the language that OWL models are stored as (although unlike machine code you can edit/query at the OWL or RDF level). Course in schema.org is an rdf:Class not an owl:Class which could cause issues at some point. 2) This is a minor point but regarding: "my thought was first to create a class "myCourse" Classes and instances typically have IRIs like MyCourse or My_Course. Property names typically start with a lower case letter: myProperty. You don't have to follow that convention, everything still works if you don't but unless you have a good reason to not follow it, I think it is always a good idea to use it because it helps people learning your ontology understand things a bit easier if you follow the conventions. 3) "but think i got it now when creating individual "Mathematics" i want to be type schema.org/Course no type myCourse which is type schema.org/Course" I don't follow what "no type" means in that sentence. You want instances like Math101 to be instances of the class schema.org/Course. But all those things have types. A class in OWL still has a type (of owl:Class). And as I mentioned the classes in schema.org have type rdf:Class. 4) You might find my OWL and Protege tutorial a good introduction or review of the basic concepts: https://www.michaeldebellis.com/post/new-protege-pizza-tutorial 5) If you are still having unexplained behavior in your ontology feel free to send it and I can take a quick look. Michael https://www.michaeldebellis.com/blog On Sat, Jan 25, 2025 at 6:46 AM stathoula terzidou <[email protected]> wrote: > just trying to figure out how to use existing vocabularies like schema.org > in my ontology. my thought was first to create a class "myCourse" into my > ontology and then say that its type schema.org/Course but think i got it > now when creating individual "Mathematics" i want to be type > schema.org/Course no type myCourse which is type schema.org/Course thanks > for help > > Στις Παρ 24 Ιαν 2025 στις 9:46 π.μ., ο/η Michael DeBellis < > [email protected]> έγραψε: > >> about the schema/Course how we should declare it i am bit confused in >>> your file you made it like >>> @prefix : < >>> http://www.semanticweb.org/mdebe/ontologies/2025/0/us_geography#> . >>> @prefix scem: <http://www.schema.org/> . >>> scem:Course rdf:type owl:Class . >> >> >> shouldnt we just say >>> :Course rdf:type owl:Class, scem:Course >> >> >> I'm not sure why you think it should be: >> >> :Course rdf:type owl:Class, scem:Course >> >> >> "scem:Course rdf:type owl:Class" is a valid triple but ":Course rdf:type >> owl:Class, scem:Course" is not unless you are trying to say that Course has >> type Course. You can have multiple values for the object of a triple >> separated by a comma. E.g., from that US geography simple ontology you >> could say: :USA :contains :California, :Arizona. But I don't think it makes >> sense to make an instance be an instance of itself. Also, I don't >> understand why you use :Course the first time and scem:Course the second >> time. FYI, when people use just the colon there is still a prefix, it is >> just the empty string. That's what Protege does for the namespace of your >> ontology creates a mapping to the empty string prefix so you can just do >> :Course (although Protege is smart enough that you don't even need the >> ":"). But since I was inserting the IRI for the Course concept from >> schema.org into an existing ontology (which is what I thought you were >> trying to do) I couldn't use the empty string prefix because that would map >> to my ontology iri and be: >> http://www.semanticweb.org/mdebe/ontologies/2025/0/us_geography#Course >> rather than http://www.schema.org/Course which is what I thought you >> wanted. Hope this is making sense, it's late and has been a long day. >> Anyway, let me know what you think and we'll figure it out. >> >> Michael >> >> >> >> >> On Thu, Jan 23, 2025 at 8:07 PM stathoula terzidou <[email protected]> >> wrote: >> >>> about the schema/Course how we should declare it i am bit confused in >>> your file you made it like >>> @prefix : < >>> http://www.semanticweb.org/mdebe/ontologies/2025/0/us_geography#> . >>> @prefix scem: <http://www.schema.org/> . >>> scem:Course rdf:type owl:Class . >>> >>> shouldnt we just say >>> :Course rdf:type owl:Class, scem:Course >>> >>> Στις Παρ 24 Ιαν 2025 στις 5:53 π.μ., ο/η Michael DeBellis < >>> [email protected]> έγραψε: >>> >>>> Thanks, that makes sense. I think your best bet (unless someone else >>>> on the list has ideas) is to create an issue on their GitHub repo: >>>> https://github.com/fekaputra/shacl-plugin I'm also copying Andre who >>>> I think is one of the main developers. Andre, please see thread below: >>>> >>>> On Thu, Jan 23, 2025 at 7:47 PM stathoula terzidou < >>>> [email protected]> wrote: >>>> >>>>> just checked its from the shacl4protege plugin window>views>ontology >>>>> views>turtle rendering >>>>> when i open it it removes all the prefixes i created and also the >>>>> empty one ' : ' >>>>> >>>>> Στις Παρ 24 Ιαν 2025 στις 4:05 π.μ., ο/η Michael DeBellis < >>>>> [email protected]> έγραψε: >>>>> >>>>>> Just realized I didn't answer your second question: >>>>>> >>>>>> also in the turtle rendering tab why it shows me the full IRIs from >>>>>>> all entities and not with the prefix? >>>>>> >>>>>> >>>>>> Not sure what you mean by the "turtle rendering tab". I don't see >>>>>> that tab in the tabs under Window>Tabs Do you mean just the ttl file that >>>>>> gets generated when you save the ontology in Turtle format? I just checked >>>>>> and it does indeed use the full IRIs. Not sure why. My guess is it may be a >>>>>> bit more efficient and since most people seldom edit those ttl files >>>>>> directly having the full IRIs doesn't really matter. The only time (unless >>>>>> you are one of those developers who still thinks "real programmers use vi") >>>>>> you should directly edit those files is when you have some unexplained >>>>>> behavior because some weird character or something krept into your file. >>>>>> >>>>>> If you have a Turtle Rendering Tab in Protege my guess is you are >>>>>> using some plugin that I'm not aware of that creates such a tab. If that's >>>>>> the case please let us know. >>>>>> >>>>>> Michael >>>>>> >>>>>> On Thu, Jan 23, 2025 at 6:14 AM stathoula terzidou < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> i try to add a prefix from the 'Ontology Prefixes' tab and clicking >>>>>>> the + button. At first seems to create it but when switching tabs it >>>>>>> disappears >>>>>>> i have a class Course and want to use the schema.org/Course so i >>>>>>> was thinking to create a prefix sch: <http://www.schema.org/> and >>>>>>> make the class Course a owl:Class, sch:Course . >>>>>>> is this correct? >>>>>>> also in the turtle rendering tab why it shows me the full IRIs from >>>>>>> all entities and not with the prefix? >>>>>>> _______________________________________________ >>>>>>> protege-user mailing list >>>>>>> [email protected] >>>>>>> https://mailman.stanford.edu/mailman/listinfo/protege-user >>>>>>> >>>>>> _______________________________________________ >>>>>> protege-user mailing list >>>>>> [email protected] >>>>>> https://mailman.stanford.edu/mailman/listinfo/protege-user >>>>>> >>>>> _______________________________________________ >>>>> protege-user mailing list >>>>> [email protected] >>>>> https://mailman.stanford.edu/mailman/listinfo/protege-user >>>>> >>>> _______________________________________________ >>>> protege-user mailing list >>>> [email protected] >>>> https://mailman.stanford.edu/mailman/listinfo/protege-user >>>> >>> _______________________________________________ >>> protege-user mailing list >>> [email protected] >>> https://mailman.stanford.edu/mailman/listinfo/protege-user >>> >> _______________________________________________ >> protege-user mailing list >> [email protected] >> https://mailman.stanford.edu/mailman/listinfo/protege-user >> > _______________________________________________ > protege-user mailing list > [email protected] > https://mailman.stanford.edu/mailman/listinfo/protege-user > _______________________________________________ protege-user mailing list [email protected] https://mailman.stanford.edu/mailman/listinfo/protege-user