SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Creating a SADI Service in Perl,[object Object],Using the Protege SADI plug-in,[object Object]
Steps...,[object Object],What data will you consume?,[object Object],What data will you produce?,[object Object],What ontologies will you use?,[object Object],Model your input data v.v. these ontologies,[object Object],Model your output data v.v. these ontologies,[object Object],Create the OWL models for the input and output data in Protege,[object Object],Use the SADI plugin to automatically generate the service code scaffold,[object Object],Add your business logic,[object Object],Deploy,[object Object],Register with the SADI registry,[object Object]
Step 1 & 2,[object Object],My service:  getDragonAllelesByGene,[object Object],The service consumes record identifiers corresponding to Loci from the DragonDB (Antirrhinum majus) genome database, and returns record identifiers for every known allele of those Loci.,[object Object]
Step3,[object Object],What ontologies should I use?,[object Object],(this will vary for every project, and you are free to ,[object Object],use whatever ontology you wish with SADI!),[object Object],LSRN (life science resource names) is an ontology of database records and identifiers,[object Object],http://purl.oclc.org/SADI/LSRN/,[object Object],SIO (SemanticScience Integrated Ontology) is an “upper” ontology specifying how to represent scientific data, including database records. ,[object Object],http://semanticscience.org/ontology/sio-core.owl,[object Object]
Step4 & 5,[object Object],Model your input and output data,[object Object],The SIO best-practices suggests that your data should be modelled as attributes which have an optional unit and value.  The identifier for any given record is an attribute of that record, where the value of that attribute is the ID number of the record.,[object Object],The ontological type of Antirrhinum Locus IDs is “DragonDB_Locus_Identifier” according to the LSRN ontology,[object Object],The ontological type of Antirrhnum Allele IDs is “DragonDB_Allele_Identifier” according to the LSRN ontology,[object Object],			Therefore... Our data models look like this:,[object Object]
Step4,[object Object],Input Data Structure,[object Object],This is the “subject” node of theRDF graph,[object Object],http://purl.oclc.org/SADI/LSRN/DragonDB_Locus_Identifier,[object Object],rdf:type,[object Object],http://lsrn.org/DragonDB_Locus:cho,[object Object],has attribute,[object Object],(SIO:000008),[object Object],has value,[object Object],(SIO:000300),[object Object],CHO,[object Object],'has attribute'   only   (DragonDB_Locus_Identifierand   'has value'   some  string),[object Object]
Step5,[object Object],Output Data Structure,[object Object],http://purl.oclc.org/SADI/LSRN/DragonDB_Allele_Identifier,[object Object],http://lsrn.org/DragonDB_Locus:cho,[object Object],rdf:type,[object Object],has_allele,[object Object],http://lsrn.org/DragonDB_Allele:cho-1,[object Object],has attribute,[object Object],(SIO:000008),[object Object],has value,[object Object],(SIO:000300),[object Object],Red is the incoming subject node (retained in the output as per SADI requirements!),[object Object],Green is the data added to that node,[object Object],cho-1,[object Object],has_allele   some  ('has attribute'   some  (DragonDB_Allele_Identifierand   'has value'  some  string)),[object Object]
Step6,[object Object],Create the OWL Classes representing your Input and Outputdata models using Protege,[object Object]
Step6,[object Object],Start Protege and create a new ontology,[object Object],The IRI that you chose MUST BE REAL AND RESOLVABLE!!  SADI will look for your ontology at that address later, so chose this carefully from the start!,[object Object]
Step6,[object Object],Using Protege, import the ontologies you need,[object Object],Click here and add the LSRNand SIO ontologies as imports,[object Object]
Step6,[object Object]
Step6,[object Object],Create two new classes representingyour Input and Output data(class names are arbitrary),[object Object]
Step6,[object Object],If there are predicates you require that do not exist in any of the imported ontologies, create them now,[object Object],(to maximize interoperability, always TRY to use predicates that already exist, or inherit from a predicate that already exists; however if you MUST make one of your own, then you’re free to do so),[object Object]
Step6,[object Object],Now define your input and output classesNOTE:  you will have to use the Manchester Syntax Editor to do this, since the kinds of restrictions we need to make cannot be created using the Protege GUI (unfortunately  ),[object Object],Switch back to the “Classes” tab in Protege, then click here,[object Object]
Step6,[object Object],Define Input Class...,[object Object],N.B.  You must use Existential restrictions here, NEVER Universal!i.e. Never use “only”, always use “some”,[object Object]
Step6,[object Object],Define Output Class...,[object Object]
Step6,[object Object],DONE!,[object Object],Now clickthe SADITab...,[object Object]
Step7,[object Object],Use the SADI Plugin to write your service code,[object Object]
Step7,[object Object],On the SADI tab, fill-in your service details:,[object Object],[object Object]
 “Service Provider” is some domain that identifies you (NOT A URL!  A DOMAIN NAME!!)
 “Authoritative” is a small annotation to indicate if you are the “owner” of the data that the service will provide, or if you are a mirror or other re-distributor of the data
 “Service Endpoint” is the public URL for your service.  It is only required for asynchronous services behind proxies/redirects.
 “Service Type” is optional.  It is an rdf:type URI indicating the type of service (e.g. http://www.mygrid.org.uk/ontology#retrieving).,[object Object]
  Select “Perl” tab
  Chose a place for the Plug-in to write the code to (you will edit this code shortly)
   Click “Generate”,[object Object]
Step8,[object Object],Edit code to add your business-logic,[object Object]
#-----------------------------------------------------------------,[object Object],# SERVICE IMPLEMENTATION PART,[object Object],#-----------------------------------------------------------------,[object Object],use RDF::Trine::Node::Resource;,[object Object],use RDF::Trine::Node::Literal;,[object Object],use RDF::Trine::Statement;,[object Object],=head2 process_it,[object Object], Function: implements the business logic of a SADI service,[object Object],Args    : $inputs - ref to an array of RDF::Trine::Node::Resource,[object Object],               $input_model - an RDF::Trine::Model containing the input RDF data,[object Object],               $output_model - an RDF::Trine::Model containing the output RDF,[object Object], Returns : nothing (service output is stored in $output_model),[object Object],=cut,[object Object],sub process_it {,[object Object],    my ($self, $inputs, $input_model, $output_model) = @_;,[object Object],foreach my $input (@$inputs) {,[object Object],        # Log4perl 'easy mode' routines: TRACE, DEBUG, INFO, WARN, ERROR,[object Object],        INFO(sprintf('processing input %s', $input->uri));,[object Object],        # Your code goes here...,[object Object],        # For a 'Hello, World!' example, see the SYNOPSIS section of,[object Object],        # http://search.cpan.org/dist/SADI-Simple/lib/SADI/Simple.pm ,[object Object],    },[object Object],},[object Object],GetAllelesByGene.pl,[object Object],Your code is here!,[object Object],It uses RDF::Trine,[object Object],The input data is parsed for you and each input “subject” node is placed into an arrayref,[object Object],You access the input data via the subject node and calls to RDF::Trine to retrieve connected attribute nodes,[object Object],Use the RDF::Trine add_statement method to add your output data to the $output_model,[object Object],Done!,[object Object]
Step8,[object Object],For example...,[object Object],	here I am just going to hard-code the,[object Object],	output data for simplicity, but of course,[object Object],	you would normally use a database call,[object Object],	or algorithm to generate this...,[object Object]
Step8,[object Object],use RDF::Trine::Node::Resource;,[object Object],use RDF::Trine::Node::Literal;,[object Object],use RDF::Trine::Statement;,[object Object],use RDF::SIO::Utils;,[object Object],my $sadi = "http://sadiframework.org/ontologies/AntirrhinumServices.owl";,[object Object],my $lsrn = "http://purl.oclc.org/SADI/LSRN";,[object Object],my $sio = "http://semanticscience.org/resource";,[object Object],I am going to use the RDF::SIO::Utils module from CPAN to help mebuild SIO-compliant data structures more easily...,[object Object],I also like to define URI prefixes as variables to beautify my code. ( NOTE that the trailing “/” or “#” on the prefix is omitted, since this helps us later when we want to use Perl string interpolation. ),[object Object]
Step8,[object Object],sub process_it {,[object Object],    my ($self, $inputs, $input_model, $output_model) = @_;,[object Object],    my $sadi = "http://sadiframework.org/ontologies/AntirrhinumServices.owl";,[object Object],    my $lsrn = "http://purl.oclc.org/SADI/LSRN";,[object Object],    my $sio = "http://semanticscience.org/resource";,[object Object],my $SIO = RDF::SIO::Utils->new();,[object Object],foreach my $input (@$inputs) {,[object Object],        my $loci = $SIO->getAttributesByType(,[object Object],                    model =>$input_model,,[object Object],                    node => $input,,[object Object],attributeType =>"$lsrn/DragonDB_Locus_Identifier" );,[object Object],        my $locus_node = shift @$loci;  # comes back as an arrayref,[object Object],        my ($locus, $null) = $SIO->getUnitValue(model => $input_model, node => $locus_node);,[object Object],Put prefixes here,[object Object],For each of the $inputs we pick up the DragonDB_Locus_Identifier attribute nodesand for each of those (there should only be one, so simply shift it off the array) we get the value of that Identifier. ,[object Object],The “getUnitValue” function works on attributes that have only values, as is the case here, but also on attributes (like quantitative measurements)  that have values and associated measurement units.  In this case, $locus is the value, and $null will be null since there are no units.,[object Object],$locus now contains the identifier of the locus for that input,[object Object]
Step8,[object Object],        # do your database or algorithm on $locus here to set value of  $allele...,[object Object],my $allele = "cho-1";   # here we are just going to hard-code it...,[object Object],        # make an output node to attach to the input subject node,[object Object],my $out_node = $SIO->Trine->iri("http://lsrn.org/DragonDB_Allele:$allele");,[object Object],# decorate it with the output data values,[object Object],        my $attribute = $SIO->addAttribute(,[object Object],                   model => $output_model,  # add to output model,[object Object],                   node => $out_node,                      #,[object Object],                   predicate => "$sio/SIO_000671",  # has identifier,[object Object],attributeType => "$lsrn/DragonDB_Allele_Identifier",,[object Object],                   value => "cho-1",,[object Object],                   );,[object Object],        # SADI outputs must be attached to the subject node with a meaningful predicate,[object Object],        my $service_predicate = $SIO->Trine->iri("$sadi#has_allele");,[object Object],        my $statement = $SIO->Trine->statement($input, $service_predicate, $out_node);,[object Object],        $output_model->add_statement($statement);  # add this to the output model,[object Object],        # DONE!,[object Object],This is the rest of your service code... You need to do nothing more!,[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateKiev ALT.NET
 
Concern of Web Application Security
Concern of Web Application SecurityConcern of Web Application Security
Concern of Web Application SecurityMahmud Ahsan
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Michelangelo van Dam
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & ArraysHenry Osborne
 
Moving a high traffic ZF1 Enterprise Application to SF2 - Lessons learned
Moving a high traffic ZF1 Enterprise Application to SF2 - Lessons learnedMoving a high traffic ZF1 Enterprise Application to SF2 - Lessons learned
Moving a high traffic ZF1 Enterprise Application to SF2 - Lessons learnedBaldur Rensch
 
Learn PHP Basics
Learn PHP Basics Learn PHP Basics
Learn PHP Basics McSoftsis
 
Basic perl programming
Basic perl programmingBasic perl programming
Basic perl programmingThang Nguyen
 
DBIx::Class beginners
DBIx::Class beginnersDBIx::Class beginners
DBIx::Class beginnersleo lapworth
 
PHP Built-in String Validation Functions
PHP Built-in String Validation FunctionsPHP Built-in String Validation Functions
PHP Built-in String Validation FunctionsAung Khant
 
Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Prof. Wim Van Criekinge
 
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"GeeksLab Odessa
 
Object Relational Mapping in PHP
Object Relational Mapping in PHPObject Relational Mapping in PHP
Object Relational Mapping in PHPRob Knight
 
Introduction to Perl - Day 2
Introduction to Perl - Day 2Introduction to Perl - Day 2
Introduction to Perl - Day 2Dave Cross
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentationguest5d87aa6
 
Your code sucks, let's fix it
Your code sucks, let's fix itYour code sucks, let's fix it
Your code sucks, let's fix itRafael Dohms
 

Was ist angesagt? (20)

Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicate
 
Concern of Web Application Security
Concern of Web Application SecurityConcern of Web Application Security
Concern of Web Application Security
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010
 
Sorting arrays in PHP
Sorting arrays in PHPSorting arrays in PHP
Sorting arrays in PHP
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & Arrays
 
Moving a high traffic ZF1 Enterprise Application to SF2 - Lessons learned
Moving a high traffic ZF1 Enterprise Application to SF2 - Lessons learnedMoving a high traffic ZF1 Enterprise Application to SF2 - Lessons learned
Moving a high traffic ZF1 Enterprise Application to SF2 - Lessons learned
 
Learn PHP Basics
Learn PHP Basics Learn PHP Basics
Learn PHP Basics
 
Perl
PerlPerl
Perl
 
Basic perl programming
Basic perl programmingBasic perl programming
Basic perl programming
 
DBIx::Class beginners
DBIx::Class beginnersDBIx::Class beginners
DBIx::Class beginners
 
Intro to Perl and Bioperl
Intro to Perl and BioperlIntro to Perl and Bioperl
Intro to Perl and Bioperl
 
PHP Built-in String Validation Functions
PHP Built-in String Validation FunctionsPHP Built-in String Validation Functions
PHP Built-in String Validation Functions
 
Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013
 
PHP
PHP PHP
PHP
 
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
 
Object Relational Mapping in PHP
Object Relational Mapping in PHPObject Relational Mapping in PHP
Object Relational Mapping in PHP
 
Introduction to Perl - Day 2
Introduction to Perl - Day 2Introduction to Perl - Day 2
Introduction to Perl - Day 2
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
 
Practical Object Oriented Models In Sql
Practical Object Oriented Models In SqlPractical Object Oriented Models In Sql
Practical Object Oriented Models In Sql
 
Your code sucks, let's fix it
Your code sucks, let's fix itYour code sucks, let's fix it
Your code sucks, let's fix it
 

Andere mochten auch

Ontology and the Lexicon.week.5
Ontology and the Lexicon.week.5Ontology and the Lexicon.week.5
Ontology and the Lexicon.week.5shukaihsieh
 
Protégé4US: Harvesting Ontology Authoring Data with Protégé
Protégé4US: Harvesting Ontology Authoring Data with ProtégéProtégé4US: Harvesting Ontology Authoring Data with Protégé
Protégé4US: Harvesting Ontology Authoring Data with ProtégéMarkel Vigo
 
Microsoft Protege Grand Final Pres 6th May
Microsoft Protege Grand Final Pres 6th MayMicrosoft Protege Grand Final Pres 6th May
Microsoft Protege Grand Final Pres 6th Maygthorsley
 
Integration of Web Protégé into DBpedia
Integration of Web Protégé into DBpediaIntegration of Web Protégé into DBpedia
Integration of Web Protégé into DBpediaRalphSchaefermeier
 
Ontology development in protégé-آنتولوژی در پروتوغه
Ontology development in protégé-آنتولوژی در پروتوغهOntology development in protégé-آنتولوژی در پروتوغه
Ontology development in protégé-آنتولوژی در پروتوغهsadegh salehi
 
Semtech web-protege-tutorial
Semtech web-protege-tutorialSemtech web-protege-tutorial
Semtech web-protege-tutorialmatthewhorridge
 
Artikel opleiden in de school in Rotterdam
Artikel opleiden in de school in RotterdamArtikel opleiden in de school in Rotterdam
Artikel opleiden in de school in RotterdamLuc Sluijsmans
 
Sample data and other ur ls
Sample data and other ur lsSample data and other ur ls
Sample data and other ur lsMark Wilkinson
 
¡UNA BOTELLA AGUA....Y QUE!
¡UNA BOTELLA AGUA....Y QUE!¡UNA BOTELLA AGUA....Y QUE!
¡UNA BOTELLA AGUA....Y QUE!pipis397
 
Heapoff memory wtf
Heapoff memory wtfHeapoff memory wtf
Heapoff memory wtfOlivier Lamy
 
Curriculum specification F4
Curriculum specification F4Curriculum specification F4
Curriculum specification F4hajahrokiah
 
82378 andrea bocelli-y_celline_dion-1
82378 andrea bocelli-y_celline_dion-182378 andrea bocelli-y_celline_dion-1
82378 andrea bocelli-y_celline_dion-1pipis397
 

Andere mochten auch (20)

DisGeNET Tutorial SWAT4LS 2015-12-07
DisGeNET Tutorial SWAT4LS 2015-12-07DisGeNET Tutorial SWAT4LS 2015-12-07
DisGeNET Tutorial SWAT4LS 2015-12-07
 
Ontology and the Lexicon.week.5
Ontology and the Lexicon.week.5Ontology and the Lexicon.week.5
Ontology and the Lexicon.week.5
 
Protégé4US: Harvesting Ontology Authoring Data with Protégé
Protégé4US: Harvesting Ontology Authoring Data with ProtégéProtégé4US: Harvesting Ontology Authoring Data with Protégé
Protégé4US: Harvesting Ontology Authoring Data with Protégé
 
Microsoft Protege Grand Final Pres 6th May
Microsoft Protege Grand Final Pres 6th MayMicrosoft Protege Grand Final Pres 6th May
Microsoft Protege Grand Final Pres 6th May
 
ProtegeGx Overview 2016
ProtegeGx Overview 2016ProtegeGx Overview 2016
ProtegeGx Overview 2016
 
Protégé
ProtégéProtégé
Protégé
 
Integration of Web Protégé into DBpedia
Integration of Web Protégé into DBpediaIntegration of Web Protégé into DBpedia
Integration of Web Protégé into DBpedia
 
Ontology development in protégé-آنتولوژی در پروتوغه
Ontology development in protégé-آنتولوژی در پروتوغهOntology development in protégé-آنتولوژی در پروتوغه
Ontology development in protégé-آنتولوژی در پروتوغه
 
Semtech web-protege-tutorial
Semtech web-protege-tutorialSemtech web-protege-tutorial
Semtech web-protege-tutorial
 
Protege tutorial
Protege tutorialProtege tutorial
Protege tutorial
 
Sin ropa
Sin ropaSin ropa
Sin ropa
 
Artikel opleiden in de school in Rotterdam
Artikel opleiden in de school in RotterdamArtikel opleiden in de school in Rotterdam
Artikel opleiden in de school in Rotterdam
 
Sample data and other ur ls
Sample data and other ur lsSample data and other ur ls
Sample data and other ur ls
 
Good library use
Good library useGood library use
Good library use
 
¡UNA BOTELLA AGUA....Y QUE!
¡UNA BOTELLA AGUA....Y QUE!¡UNA BOTELLA AGUA....Y QUE!
¡UNA BOTELLA AGUA....Y QUE!
 
Heapoff memory wtf
Heapoff memory wtfHeapoff memory wtf
Heapoff memory wtf
 
Curriculum specification F4
Curriculum specification F4Curriculum specification F4
Curriculum specification F4
 
82378 andrea bocelli-y_celline_dion-1
82378 andrea bocelli-y_celline_dion-182378 andrea bocelli-y_celline_dion-1
82378 andrea bocelli-y_celline_dion-1
 
Red5 - PHUG Workshops
Red5 - PHUG WorkshopsRed5 - PHUG Workshops
Red5 - PHUG Workshops
 
Cancer Gene Prioritization
Cancer Gene PrioritizationCancer Gene Prioritization
Cancer Gene Prioritization
 

Ähnlich wie SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)

Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
Architecture | Busy Java Developers Guide to NoSQL | Ted NewardArchitecture | Busy Java Developers Guide to NoSQL | Ted Neward
Architecture | Busy Java Developers Guide to NoSQL | Ted NewardJAX London
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
 
Into to DBI with DBD::Oracle
Into to DBI with DBD::OracleInto to DBI with DBD::Oracle
Into to DBI with DBD::Oraclebyterock
 
Oracle Objects And Transactions
Oracle Objects And TransactionsOracle Objects And Transactions
Oracle Objects And Transactionstepsum
 
Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...Andreas Dewes
 
Think Generic - Add API's To Your Custom Modules
Think Generic - Add API's To Your Custom ModulesThink Generic - Add API's To Your Custom Modules
Think Generic - Add API's To Your Custom ModulesJens Sørensen
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalystdwm042
 
Plone For Developers - World Plone Day, 2009
Plone For Developers - World Plone Day, 2009Plone For Developers - World Plone Day, 2009
Plone For Developers - World Plone Day, 2009Core Software Group
 
Perl: Hate it for the Right Reasons
Perl: Hate it for the Right ReasonsPerl: Hate it for the Right Reasons
Perl: Hate it for the Right ReasonsMatt Follett
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applicationschartjes
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...webhostingguy
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practicesmanugoel2003
 
PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applicationselliando dias
 
Questioning the status quo
Questioning the status quoQuestioning the status quo
Questioning the status quoIvano Pagano
 
Compass Framework
Compass FrameworkCompass Framework
Compass FrameworkLukas Vlcek
 
Php Data Objects
Php Data ObjectsPhp Data Objects
Php Data Objectshiren.joshi
 
Working with databases in Perl
Working with databases in PerlWorking with databases in Perl
Working with databases in PerlLaurent Dami
 

Ähnlich wie SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011) (20)

Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
Architecture | Busy Java Developers Guide to NoSQL | Ted NewardArchitecture | Busy Java Developers Guide to NoSQL | Ted Neward
Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
 
Into to DBI with DBD::Oracle
Into to DBI with DBD::OracleInto to DBI with DBD::Oracle
Into to DBI with DBD::Oracle
 
Oracle Objects And Transactions
Oracle Objects And TransactionsOracle Objects And Transactions
Oracle Objects And Transactions
 
Quebec pdo
Quebec pdoQuebec pdo
Quebec pdo
 
Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...
 
Think Generic - Add API's To Your Custom Modules
Think Generic - Add API's To Your Custom ModulesThink Generic - Add API's To Your Custom Modules
Think Generic - Add API's To Your Custom Modules
 
Php frameworks
Php frameworksPhp frameworks
Php frameworks
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
 
working with PHP & DB's
working with PHP & DB'sworking with PHP & DB's
working with PHP & DB's
 
Plone For Developers - World Plone Day, 2009
Plone For Developers - World Plone Day, 2009Plone For Developers - World Plone Day, 2009
Plone For Developers - World Plone Day, 2009
 
Perl: Hate it for the Right Reasons
Perl: Hate it for the Right ReasonsPerl: Hate it for the Right Reasons
Perl: Hate it for the Right Reasons
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applications
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
 
PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applications
 
Questioning the status quo
Questioning the status quoQuestioning the status quo
Questioning the status quo
 
Compass Framework
Compass FrameworkCompass Framework
Compass Framework
 
Php Data Objects
Php Data ObjectsPhp Data Objects
Php Data Objects
 
Working with databases in Perl
Working with databases in PerlWorking with databases in Perl
Working with databases in Perl
 

Mehr von Mark Wilkinson

FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1Mark Wilkinson
 
Introducing the fair evaluator
Introducing the fair evaluatorIntroducing the fair evaluator
Introducing the fair evaluatorMark Wilkinson
 
FAIR Projector Builder
FAIR Projector BuilderFAIR Projector Builder
FAIR Projector BuilderMark Wilkinson
 
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...Mark Wilkinson
 
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th PlenarysmartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th PlenaryMark Wilkinson
 
IBC FAIR Data Prototype Implementation slideshow
IBC FAIR Data Prototype Implementation   slideshowIBC FAIR Data Prototype Implementation   slideshow
IBC FAIR Data Prototype Implementation slideshowMark Wilkinson
 
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...Mark Wilkinson
 
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Mark Wilkinson
 
Example code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web ServiceExample code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web ServiceMark Wilkinson
 
Tutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-servicesTutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-servicesMark Wilkinson
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Mark Wilkinson
 
Force11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, OxfordForce11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, OxfordMark Wilkinson
 
Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014Mark Wilkinson
 
Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...Mark Wilkinson
 
Web Science 2.0 - in silico science
Web Science 2.0 - in silico scienceWeb Science 2.0 - in silico science
Web Science 2.0 - in silico scienceMark Wilkinson
 
Web Science - ISoLA 2012
Web Science - ISoLA 2012Web Science - ISoLA 2012
Web Science - ISoLA 2012Mark Wilkinson
 
Web Science, SADI, and the Singularity
Web Science, SADI, and the SingularityWeb Science, SADI, and the Singularity
Web Science, SADI, and the SingularityMark Wilkinson
 
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...Mark Wilkinson
 

Mehr von Mark Wilkinson (20)

FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1
 
Introducing the fair evaluator
Introducing the fair evaluatorIntroducing the fair evaluator
Introducing the fair evaluator
 
FAIR Projector Builder
FAIR Projector BuilderFAIR Projector Builder
FAIR Projector Builder
 
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
 
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th PlenarysmartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
 
IBC FAIR Data Prototype Implementation slideshow
IBC FAIR Data Prototype Implementation   slideshowIBC FAIR Data Prototype Implementation   slideshow
IBC FAIR Data Prototype Implementation slideshow
 
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
 
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
 
Example code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web ServiceExample code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web Service
 
Sadi service
Sadi serviceSadi service
Sadi service
 
Tutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-servicesTutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-services
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
 
Force11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, OxfordForce11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, Oxford
 
Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014
 
Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...
 
SADI CSHALS 2013
SADI CSHALS 2013SADI CSHALS 2013
SADI CSHALS 2013
 
Web Science 2.0 - in silico science
Web Science 2.0 - in silico scienceWeb Science 2.0 - in silico science
Web Science 2.0 - in silico science
 
Web Science - ISoLA 2012
Web Science - ISoLA 2012Web Science - ISoLA 2012
Web Science - ISoLA 2012
 
Web Science, SADI, and the Singularity
Web Science, SADI, and the SingularityWeb Science, SADI, and the Singularity
Web Science, SADI, and the Singularity
 
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
 

Kürzlich hochgeladen

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 

Kürzlich hochgeladen (20)

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 

SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. “Service Provider” is some domain that identifies you (NOT A URL! A DOMAIN NAME!!)
  • 21. “Authoritative” is a small annotation to indicate if you are the “owner” of the data that the service will provide, or if you are a mirror or other re-distributor of the data
  • 22. “Service Endpoint” is the public URL for your service. It is only required for asynchronous services behind proxies/redirects.
  • 23.
  • 24. Select “Perl” tab
  • 25. Chose a place for the Plug-in to write the code to (you will edit this code shortly)
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.