Thank you Scott for the guide and explanation. What would my ontology miss if I follow my current steps which is the same as yours in basics; start a new ontology, import my super classes first with owl:Class and rdfs:label only columns and in the second step import my subclasses as owl:Class, rdfs:subClassOf (which are ids of the classes in the previous step), and rdfs:label into the ontology I created in the previous step I guess my basic question is what happen if I don't use rdfs:Class in my import process?
On a separate subject, I tried to load the whole 64,000 rows with the above process, I waited an hour in the second step before terminating the thread(pc). I'll try today again with the 64 bit version of TB on a Mac machine to see if it make a difference time wise. Is there any adjustment we can do in TopBraid for memory usage to make the process faster? Sina From: [email protected] [mailto:[email protected]] On Behalf Of Scott Henninger Sent: Thursday, June 10, 2010 4:24 PM To: [email protected] Subject: Re: [topbraid-users] Re: create ontology from spreadsheet Sina; I'm attaching a slight variant of the text file you sent. In the variant, the subClassOf statement and their labels are broken out into individual rows. If the format you gave can't be changed to this, then you will need to import and use some SPARQL queries to define how the columns should be interpreted. The trick (thank you Gokhan) is to import into an existing model. This way the importer knows about namespaces and prefixes for standard RDF/RDFS/OWL definitions, such as owl:Class and rdfs:label. So first create a new model. While that file is open, import the file using the Import Tab-Delimited Spreadsheet importer. On the first page of the wizard, specify the text file to import and choose "Import to the current ontology". On the last page of the wizard, specify "owl:Class" for the Class Name. You'll probably also want to define owl:Class as the Property data type for rdfs:subClassOf". This will import the class and subclass definitions. There are a couple of adjustments you may want to make after that (both of these are optional, depending on your needs): 1. Because rdfs:Class is in the range definition of rdfs:subClassOf, the class at the root will be members of both rdfs:Class and owl:Class. You can either adjust my procedure above and the spreadsheet to use rdfs:Class instead of owl:Class or remove rdfs:Class 2. Composer will infer that any instance of owl:Class that does not have a rdfs:subClassOf statement is a subclass of owl:Thing. This makes it possible to display all class definitions in a tree hierarchy starting at owl:Thing. You may want to assert these. See how that works and let us know if further guidance is needed for making adjustments. -- Scott On 6/10/10 8:45 AM, Madani,Sina wrote: Scott, I attached a sample tab delimited file with the first 9 rows of my master spreadsheet. The desired import in one step is to have a way to assign 2 rdfs:label columns, one label for owl:Class and one label for rdfs:subClassOf For workaround, I first import only column C as owl:Class and column D as rdfs:label (label for supper classes) into my ontology. Then I import the original spreadsheet with column A as owl:Class, Column B as rdfs:label (for sub classes this time), column C as rdfs:subClassOf, and ignore column D, and the rest as annotation data type properties. As I mentioned before, I am a beginner in semantic web and TopBriad, so there maybe something very simple that I am missing. Thanks for the help Sina -----Original Message----- From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Scott Henninger Sent: Wednesday, June 09, 2010 7:39 PM To: TopBraid Suite Users Subject: [topbraid-users] Re: create ontology from spreadsheet Sinha; If you import the table as instances of owl:Class, it will create instances of owl>Class, which are class definition. But I'm not sure about the format provided. Would you be able to send a few rows as an example? -- Scott On Jun 9, 3:38 pm, "Madani,Sina" <[email protected]><mailto:[email protected]> wrote: Thank you Irene, I do have a class in every row but the super class is in the same row as well. That's how I got stuck where I wanted to have a separate rdfs:label for concep1tparentlabel in column 4 Owl:Class, rdfs:lable, rdfs:subClassOf, Concept1, Concept1label, Concept1Parent, Concept1ParentLabel, Concept1Attribute1, Concept1Attribute2, ..... Hopefully SPARQLmotion will solve my issue. Sina -----Original Message----- From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Irene Polikoff Sent: Wednesday, June 09, 2010 3:03 PM To: [email protected]<mailto:[email protected]> Subject: RE: [topbraid-users] Re: create ontology from spreadsheet Sina, Classes are instances of owl:Class, so you can use the importer to get them in. Importer will create a resource for every row. Your rows have two resources - a class and its superclasss Assuming that you have a row for each class irrespective of whether it has children or not, you are fine as is and do not need to worry about the fourth column. Let me explain it by example. Let's say you have: my:Person Person my:Woman Woman my:Person Person my:Man Man my:Person Person The first row will create a class Person, the second row will create a class Woman and make it a subclass of the Person, the third row will create a class Man and make it a subclass of a Person. Thus, you do not need a forth column because there was a row with Person in a first column and its label in the second column. If, on the other hand, you do not have a row for each class, you will then need to write some queries to get these resources created. Regards, Irene -----Original Message----- From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Madani,Sina Sent: Wednesday, June 09, 2010 2:27 PM To: '[email protected]<mailto:[email protected]>' Subject: RE: [topbraid-users] Re: create ontology from spreadsheet I am a beginner with TopBraid Composer ME and not familiar with that tool. I need to create an ontology from a spreadsheet with 64000 rows and columns related to classes, subclasses, label, and some annotation datatype properties. I am considering only is-a (rdf:type) relationships between concepts at this moment (based on the mapping from SNOMED) but will eventually need to handle more relationships. I appreciate your help/hint/advices. Thanks Sina -----Original Message----- From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Scott Henninger Sent: Wednesday, June 09, 2010 1:09 PM To: TopBraid Suite Users Subject: [topbraid-users] Re: create ontology from spreadsheet Sina; I am curious about this: <<because I am defining everything in my ontology as classes>> Why not use Composer's ontology editing tools? -- Scott On Jun 9, 12:43 pm, "Madani,Sina" <[email protected]><mailto:[email protected]> wrote: Thank you Scott, Then I guess spreadsheet import wizard won't be useful for me because I am defining everything in my ontology as classes, there are no instances. Could you please send me a good reading source for SPARQLmotion? Sina -----Original Message----- From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Scott Henninger Sent: Tuesday, June 08, 2010 6:07 PM To: TopBraid Suite Users Subject: [topbraid-users] Re: create ontology from spreadsheet Sina; If the first row has column names with rdfs:label, etc., the Import wizard will recognize the qname and create the properties as desired. If you are doing this through a SPARQLMotion script, don't forget to import system triples, otherwise the script will not know about rdfs:subClassOf, etc. For all spreadsheet importers the rule is that each worksheet defines one class definition. Note that using the Excel importer, you can specify multiple sheets. Each row defines an instance of the class. Each column names a property for instances of that class, not the class itself. So a sheet named "Person" will create the class definition :Person. A column in that sheet named "rdfs:label" will create a label for each instance, such as: ?rowX-Y rdfs:label ?cellValue <<I guess my question is how do I assign labels to classes and subclasses in one spreadsheet?>> This could be done in a SPARQLMotion script where you read in the spreadsheet and interpret the columns as you want with SPARQL queries. But there isn't a way to do this directly with the importers, per the above explanation. -- Scott On Jun 8, 12:53 pm, Sina <[email protected]><mailto:[email protected]> wrote: Hi, how I can assign rdfs:label to a specific column during tab-delimited import process? I have a spreadsheet of 4 columns: owl:Class, rdfs:label, rdfs:subClassOf, rdfs:label how do I assign rdfs:label in the 4th Clim to my superclasses in the third column? Obviously the above format doesn't work. I guess my question is how do I assign labels to classes and subclasses in one spreadsheet? Currently I am doing it with two separate spreadsheets in 2 steps. Thanks Sina -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include TopBraid Composer, TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN. To post to this group, send email to [email protected]<mailto:[email protected]> To unsubscribe from this group, send email to [email protected]<mailto:[email protected]> For more options, visit this group athttp://groups.google.com/group/topbraid-users?hl=en -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include TopBraid Composer, TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN. To post to this group, send email to [email protected]<mailto:[email protected]> To unsubscribe from this group, send email to [email protected]<mailto:[email protected]> For more options, visit this group athttp://groups.google.com/group/topbraid-users?hl=en -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include TopBraid Composer, TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN. To post to this group, send email to [email protected]<mailto:[email protected]> To unsubscribe from this group, send email to [email protected]<mailto:[email protected]> For more options, visit this group athttp://groups.google.com/group/topbraid-users?hl=en -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include TopBraid Composer, TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN. To post to this group, send email to [email protected]<mailto:[email protected]> To unsubscribe from this group, send email to [email protected]<mailto:[email protected]> For more options, visit this group athttp://groups.google.com/group/topbraid-users?hl=en -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include TopBraid Composer, TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/topbraid-users?hl=en -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include TopBraid Composer, TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/topbraid-users?hl=en
